DashboardController.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Services\DashboardService;
  4. use App\Http\Resources\DashboardClienteResource;
  5. use App\Http\Resources\DashboardPrestadorResource;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Log;
  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 (\Exception $e) {
  20. Log::error("Erro ao obter dados do dashboard do cliente: " . $e->getMessage());
  21. return $this->errorResponse(message: __("messages.error_fetching_data"), code: 500);
  22. }
  23. }
  24. public function buscaPrestadores(Request $request): JsonResponse
  25. {
  26. try {
  27. $dados = $this->service->buscaPrestadores($request->query('name'), $request->query('date'));
  28. return $this->successResponse(payload: $dados);
  29. } catch (\Exception $e) {
  30. Log::error("Erro ao buscar prestadores: " . $e->getMessage());
  31. return $this->errorResponse(message: __("messages.error_fetching_data"), code: 500);
  32. }
  33. }
  34. public function dadosDashboardPrestador(): JsonResponse
  35. {
  36. try {
  37. $dados = $this->service->dadosDashboardPrestador();
  38. return $this->successResponse(
  39. payload: new DashboardPrestadorResource($dados),
  40. );
  41. } catch (\Exception $e) {
  42. Log::error("Erro ao obter dados do dashboard do prestador: " . $e->getMessage());
  43. return $this->errorResponse(message: __("messages.error_fetching_data"), code: 500);
  44. }
  45. }
  46. }