BaseController.php 893 B

12345678910111213141516171819202122232425262728293031323334353637
  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\auth\Principal;
  8. use app\miniapi\http\ApiResponse;
  9. use app\miniapi\http\Input;
  10. use app\miniapi\exception\ApiException;
  11. use app\miniapi\service\Access;
  12. #[DisableDefaultRoute]
  13. abstract class BaseController
  14. {
  15. protected function access(Request $request): Access
  16. {
  17. if (!$request->miniPrincipal instanceof Principal) {
  18. throw new ApiException(40101, '请先登录', 401);
  19. }
  20. return new Access($request->miniPrincipal);
  21. }
  22. protected function id(string $id): int
  23. {
  24. return Input::integer($id, 'id', 1, 2147483647);
  25. }
  26. protected function success(Request $request, mixed $data): Response
  27. {
  28. return ApiResponse::success($request, $data);
  29. }
  30. }