TableUpdateController.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Controllers;
  3. use Libs\ResponseLib;
  4. use Models\TableModel;
  5. use Psr\Http\Message\ServerRequestInterface;
  6. class TableUpdateController
  7. {
  8. private TableModel $model;
  9. public function __construct()
  10. {
  11. $this->model = new TableModel();
  12. }
  13. public function __invoke(ServerRequestInterface $request)
  14. {
  15. $body = json_decode((string)$request->getBody(), true) ?? [];
  16. $tableNumber = $body['table_number'] ?? null;
  17. $companyId = $body['company_id'] ?? null;
  18. $statusStatus = $body['status_status'] ?? null;
  19. if (!$tableNumber || !$companyId || !$statusStatus) {
  20. return ResponseLib::sendFail("Missing required fields", [], "E_VALIDATE")->withStatus(400);
  21. }
  22. $statusId = $this->model->getStatusIdByName($statusStatus);
  23. if ($statusId === null) {
  24. return ResponseLib::sendFail("Invalid status_status: '{$statusStatus}'", [], "E_VALIDATE")->withStatus(400);
  25. }
  26. $updated = $this->model->updateTableByNumber((string)$tableNumber, (int)$companyId, $statusId);
  27. return $updated
  28. ? ResponseLib::sendOk(['updated' => true])
  29. : ResponseLib::sendFail("Failed to update status or table not found", [], "E_DATABASE")->withStatus(404);
  30. }
  31. }