DashboardController.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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\Http\JsonResponse;
  7. use Illuminate\Support\Facades\Log;
  8. class DashboardController extends Controller
  9. {
  10. public function __construct(private readonly DashboardService $service) {}
  11. public function dadosDashboardCliente(): JsonResponse
  12. {
  13. try {
  14. $dados = $this->service->dadosDashboardCliente();
  15. return $this->successResponse(
  16. payload: new DashboardClienteResource($dados),
  17. );
  18. } catch (\Exception $e) {
  19. Log::error('Erro ao obter dados do dashboard do cliente: '.$e->getMessage());
  20. return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500);
  21. }
  22. }
  23. public function scheduleClienteDetails(int $id): JsonResponse
  24. {
  25. try {
  26. $dados = $this->service->getScheduleClienteDetails($id);
  27. return $this->successResponse(payload: $dados);
  28. } catch (\Exception $e) {
  29. Log::error('Erro ao obter detalhes do schedule do cliente: '.$e->getMessage());
  30. return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500);
  31. }
  32. }
  33. public function dadosDashboardPrestador(): JsonResponse
  34. {
  35. try {
  36. $dados = $this->service->dadosDashboardPrestador();
  37. return $this->successResponse(
  38. payload: new DashboardPrestadorResource($dados),
  39. );
  40. } catch (\Exception $e) {
  41. Log::error('Erro ao obter dados do dashboard do prestador: '.$e->getMessage());
  42. return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500);
  43. }
  44. }
  45. }