86 lines
3.0 KiB
PHP
86 lines
3.0 KiB
PHP
<?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");
|
|
}
|
|
|
|
}
|