authService->login(credentials: AuthDTO::fromRequest(request: $request)); if (!$tokens) { return $this->errorResponse(message: __(key: 'auth.failed'), code: 401); } return $this->successResponse(payload: new AuthResource(resource: $tokens), message: __(key: 'auth.logged_in')); } public function logout(): JsonResponse { $this->authService->logout(); return $this->successResponse(message: __(key: 'auth.logout')); } public function refresh(RefreshTokenRequest $request): JsonResponse { $tokens = $this->authService->refresh(refreshToken: RefreshTokenDTO::fromRequest(request: $request)); if (is_null(value: $tokens)) { // It should never reach this point, but just in case Log::error(message: 'Unauthorized'); return $this->errorResponse(message: __(key: 'auth.unauthorized'), code: 403); } return $this->successResponse(payload: new AuthResource(resource: $tokens)); } }