86 lines
3.0 KiB
PHP
Raw Normal View History

2020-05-15 12:27:34 +02:00
<?php
require_once $GLOBALS['app_path'].'Framework/Model.php';
require_once $GLOBALS['app_path'].'Model/Entity/Camera.php';
class ModelCamera extends Model{
public function getCamera($camera_id, $user_id)
{
$sql = "select * from camera where id=?";
$result = $this->executeRequest($sql, array($camera_id));
if ( $result->rowCount() == 1)
{
$result = $result->fetch();
$name = $this->getNameCameraByUser($user_id, $camera_id);
return new Camera($result['id'], $name, $result['product_key'],$result['available'],$result['enabled'],$result['rtmp_handle']);
}
else
throw new Exception("Aucune caméra ne correspond à cet identifiant");
}
public function getNameCameraByUser($user_id, $camera_id)
{
$sql = "select name from user_camera where user_id=? and camera_id=?";
$result = $this->executeRequest($sql, array($user_id, $camera_id));
if($result->rowCount() == 1)
return $result->fetch()['name'];
else
throw new Exception("Cet utilisateur n'as pas accès à cet caméra");
}
public function addCamera($id, $product_key, $available, $enabled, $rtmp_handle)
{
$sql = "insert into camera values(?,?,?,?,?)";
$this->executeRequest($sql, array($id, $product_key, $available, $enabled, $rtmp_handle));
}
public function getAllCameraByUser($user_id)
{
$sql = "select * from user_camera where user_id=?";
$result = $this->executeRequest($sql, array($user_id));
$result = $result->fetchAll();
$cameras = null;
foreach($result as $cam)
{
$cameras[] = $this->getCamera($cam['camera_id'], $user_id);
}
return $cameras;
}
public function userCanAccessCam($user_id, $camera_id)
{
$sql = "select name from user_camera where user_id=? and camera_id=?";
$result = $this->executeRequest($sql, array($user_id, $camera_id));
return $result->rowCount() == 1;
}
public function delete($id)
{
$sql = "delete from camera where id=?";
$this->executeRequest($sql,array($id));
}
public function exist($camera_id)
{
$sql = "select * from camera where id=? ";
$result = $this->executeRequest($sql, array($camera_id));
return ($result->rowCount() == 1);
}
public function getCameraOnly($camera_id)
{
$sql = "select * from camera where id=?";
$result = $this->executeRequest($sql, array($camera_id));
if ( $result->rowCount() == 1)
{
$result = $result->fetch();
return new Camera($result['id'], "", $result['product_key'],$result['available'],$result['enabled'],$result['rtmp_handle']);
}
else
throw new Exception("Aucune caméra ne correspond à cet identifiant");
}
}