getStatusCode(); $message = Response::$statusTexts[$code]; return $this->errorResponse($message, $code); } if ($exception instanceof ModelNotFoundException) { $model = strtolower(class_basename($exception->getModel())); return $this->errorResponse(trans('errors.model_not_found', ['model' => $model]), Response::HTTP_NOT_FOUND); } if ($exception instanceof AuthorizationException) { return $this->errorResponse($exception->getMessage(), Response::HTTP_UNAUTHORIZED); } if ($exception instanceof ValidationException) { $errors = $exception->validator->errors()->getMessages(); $message = ''; foreach ($errors as $key => $val) { foreach ($val as $validation) { $message .= trans('errors.validation_error', ['field' => $key, 'validation' => $validation]); } $message .= "\n"; } return $this->errorResponse($message, Response::HTTP_UNPROCESSABLE_ENTITY); } if ($exception instanceof AuthenticationException) { return $this->errorResponse($exception->getMessage(), Response::HTTP_UNAUTHORIZED); } if ($exception instanceof QueryException) { return $this->errorResponse($exception->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); } if ($exception instanceof ServerException) { return $this->errorResponse($exception->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); } if ($exception instanceof \ErrorException) { return $this->errorResponse($exception->getMessage(), Response::HTTP_INTERNAL_SERVER_ERROR); } if ($exception instanceof ClientException) { $message = $exception->getResponse()->getBody()->getContents(); $error = json_decode($message); $code = $exception->getCode(); if ($error) { if (isset($error->message)) { $message = json_decode($error->message); if (isset($message->errorMessage)) return $this->errorResponse($message->errorMessage, $code); return $this->errorResponse($error->message, $code); } if (isset($error->error)) { try { $message = json_decode($error->error); if (isset($message->message)) return $this->errorResponse($message->message, $code); } catch (\Exception $e) { Log::error($e->getMessage()); } return $this->errorResponse(json_encode($error->error), $code); } } return $this->errorResponse($message, $code); } if (env('APP_DEBUG', false)) { return parent::render($request, $exception); } return $this->errorResponse(trans('errors.unexpected_error'), Response::HTTP_INTERNAL_SERVER_ERROR); } }