You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CamerasBusiness.php 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Http\Business;
  3. use App\Http\DataAccess\Models\EntityTypes;
  4. use Luticate\Utils\LuBusiness;
  5. use App\Http\DataAccess\CamerasDataAccess;
  6. use App\Http\DBO\CamerasDbo;
  7. class CamerasBusiness extends LuBusiness {
  8. protected static function getDataAccess()
  9. {
  10. return new CamerasDataAccess();
  11. }
  12. protected static function checkCamera(CamerasDbo $camera, $camera_id = null)
  13. {
  14. $existingCamera = CamerasDataAccess::getByName($camera->getName());
  15. if (!is_null($existingCamera) && $camera_id != $existingCamera->getId()) {
  16. self::badInput("Camera name already exists");
  17. }
  18. if (is_null($camera->getName()) || strlen($camera->getName()) == 0) {
  19. self::badInput("Missing camera name");
  20. }
  21. HostsBusiness::getById($camera->getHostId());
  22. $type = EntityTypesBusiness::getById($camera->getEntityTypeId());
  23. if ($type->getType() != EntityTypesBusiness::ENTITY_CAMERA) {
  24. self::badInput("Bad camera type");
  25. }
  26. if (is_null($camera->getDescription())) {
  27. $camera->setDescription("");
  28. }
  29. if (is_null($camera->getData()) || strlen($camera->getData()) == 0) {
  30. $camera->setData("{}");
  31. }
  32. $json = json_decode($camera->getData());
  33. if (is_null($json)) {
  34. self::badInput("Camera data could not be converted to json");
  35. }
  36. }
  37. public static function add(CamerasDbo $camera)
  38. {
  39. self::checkCamera($camera);
  40. return CamerasDataAccess::addId($camera);
  41. }
  42. public static function edit(CamerasDbo $camera, $camera_id)
  43. {
  44. self::getById($camera_id);
  45. self::checkCamera($camera, $camera_id);
  46. $camera->setId($camera_id);
  47. return CamerasDataAccess::editById($camera_id, $camera);
  48. }
  49. }