| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- namespace App\Http\Controllers;
- use App\Http\Resources\DashboardClienteResource;
- use App\Http\Resources\DashboardPrestadorResource;
- use App\Services\DashboardService;
- use Illuminate\Auth\Access\AuthorizationException;
- use Illuminate\Database\Eloquent\ModelNotFoundException;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Support\Facades\Log;
- class DashboardController extends Controller
- {
- public function __construct(private readonly DashboardService $service) {}
- public function dadosDashboardCliente(): JsonResponse
- {
- try {
- $dados = $this->service->dadosDashboardCliente();
- return $this->successResponse(
- payload: new DashboardClienteResource($dados),
- );
- } catch (AuthorizationException $e) {
- return $this->errorResponse(message: $e->getMessage(), code: 403);
- } catch (ModelNotFoundException) {
- return $this->errorResponse(message: 'Cliente não encontrado.', code: 404);
- } catch (\Exception $e) {
- Log::error('Erro ao obter dados do dashboard do cliente: '.$e->getMessage());
- return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500);
- }
- }
- public function scheduleClienteDetails(int $id): JsonResponse
- {
- try {
- $dados = $this->service->getScheduleClienteDetails($id);
- return $this->successResponse(payload: $dados);
- } catch (\Exception $e) {
- Log::error('Erro ao obter detalhes do schedule do cliente: '.$e->getMessage());
- return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500);
- }
- }
- public function dadosDashboardPrestador(): JsonResponse
- {
- try {
- $dados = $this->service->dadosDashboardPrestador();
- return $this->successResponse(
- payload: new DashboardPrestadorResource($dados),
- );
- } catch (AuthorizationException $e) {
- return $this->errorResponse(message: $e->getMessage(), code: 403);
- } catch (ModelNotFoundException) {
- return $this->errorResponse(message: 'Prestador não encontrado.', code: 404);
- } catch (\Exception $e) {
- Log::error('Erro ao obter dados do dashboard do prestador: '.$e->getMessage());
- return $this->errorResponse(message: __('messages.error_fetching_data'), code: 500);
- }
- }
- }
|