DriverController.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. declare(strict_types=1);
  3. namespace app\miniapi\controller;
  4. use support\Request;
  5. use support\Response;
  6. use support\annotation\route\DisableDefaultRoute;
  7. use app\miniapi\http\Input;
  8. use app\miniapi\http\Fields;
  9. use app\miniapi\exception\ApiException;
  10. use app\miniapi\service\DriverService;
  11. #[DisableDefaultRoute]
  12. final class DriverController extends BaseController
  13. {
  14. public function driver(Request $request, string $driver, string $section): Response
  15. {
  16. $service = new DriverService($this->access($request));
  17. $id = $this->id($driver);
  18. return $this->success($request, match($section) {
  19. 'dashboard' => $service->dashboard($id),
  20. 'tasks' => $service->tasks($id, $request->get()),
  21. 'routes' => $service->routes($id),
  22. default => throw new ApiException(40401, '接口不存在', 404)
  23. });
  24. }
  25. public function task(Request $request, string $driver, string $id): Response
  26. {
  27. return $this->success($request, (new DriverService($this->access($request)))->detail($this->id($driver), $this->id($id)));
  28. }
  29. public function taskCommand(Request $request, string $driver, string $id, string $action): Response
  30. {
  31. return $this->success($request, (new DriverService($this->access($request)))->command($this->id($driver), $this->id($id), $action, Input::json($request)));
  32. }
  33. public function photoUpload(Request $request, string $driver, string $id): Response
  34. {
  35. return $this->success($request, (new DriverService($this->access($request)))->photo($this->id($driver), $this->id($id), Input::json($request)));
  36. }
  37. public function deviceCheck(Request $request, string $driver, string $id): Response
  38. {
  39. return $this->success($request, (new DriverService($this->access($request)))->deviceCheck($this->id($driver), $this->id($id), Fields::text($request->get(), 'sn', 80)));
  40. }
  41. }