DashboardController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Resources\DashboardClienteResource;
  4. use App\Http\Resources\DashboardPrestadorResource;
  5. use App\Services\DashboardService;
  6. use Illuminate\Auth\Access\AuthorizationException;
  7. use Illuminate\Database\Eloquent\ModelNotFoundException;
  8. use Illuminate\Http\JsonResponse;
  9. class DashboardController extends Controller
  10. {
  11. public function __construct(private readonly DashboardService $service) {}
  12. public function dadosDashboardCliente(): JsonResponse
  13. {
  14. try {
  15. $dados = $this->service->dadosDashboardCliente();
  16. return $this->successResponse(
  17. payload: new DashboardClienteResource($dados),
  18. );
  19. } catch (AuthorizationException $e) {
  20. return $this->errorResponse(message: $e->getMessage(), code: 403);
  21. } catch (ModelNotFoundException) {
  22. return $this->errorResponse(message: __('messages.client_not_found'), code: 404);
  23. } catch (\Exception $e) {
  24. return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500, exception: $e);
  25. }
  26. }
  27. public function dadosDashboardPrestador(): JsonResponse
  28. {
  29. try {
  30. $dados = $this->service->dadosDashboardPrestador();
  31. return $this->successResponse(
  32. payload: new DashboardPrestadorResource($dados),
  33. );
  34. } catch (AuthorizationException $e) {
  35. return $this->errorResponse(message: $e->getMessage(), code: 403);
  36. } catch (ModelNotFoundException) {
  37. return $this->errorResponse(message: __('messages.provider_not_found'), code: 404);
  38. } catch (\Exception $e) {
  39. return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500, exception: $e);
  40. }
  41. }
  42. public function scheduleClienteDetails(int $id): JsonResponse
  43. {
  44. try {
  45. $dados = $this->service->getScheduleClienteDetails($id);
  46. return $this->successResponse(payload: $dados);
  47. } catch (\Exception $e) {
  48. return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500, exception: $e);
  49. }
  50. }
  51. }