/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */ public function render($request, Exception $e) { // var_dump($e -> errorInfo[1]); if ($e instanceof \Core\Exception\RestException) { return response()->json($e->getResponse(), $e->getCode()); } // var_dump($e); // if ($e instanceof ModelNotFoundException) { // $e = new NotFoundHttpException($e->getMessage(), $e); // } if ($e instanceof \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException) { Log::addException(__FILE__, $e->getMessage(), $e->getStatusCode()); return response()->json(['error' => true, 'httpCode' => $e->getStatusCode(), 'type' => 'MethodNotAllowedHttpException'], $e->getStatusCode()); } if ($e instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException) { Log::addException(__FILE__, $e->getMessage(), $e->getStatusCode()); return response()->json(['error' => true, 'httpCode' => $e->getStatusCode(), 'type' => 'NotFoundHttpException'], $e->getStatusCode()); } if ($e instanceof \PDOException) { Log::addException(__FILE__, $e->getMessage(), $e->getCode()); $message = ""; if ($e->errorInfo[1] == 1062) { $message = "Elemento duplicado."; } return response()->json(['error' => true, 'httpCode' => 500, 'type' => 'PDOException', 'message' => $message], 409); } return parent::render($request, $e); // return response()->json(['error' => true, 'type' => 'desconocido', 'message' => $e -> getMessage()], 500); }
/** * * Contructor de la clase. * * @param string $file Contiene el archivo donde fue lanzada la excepción. * @param string $message Contiene el mensaje a guardar en el log. * @param int $httpCode Contiene el código http a enviar al usuario. * @param array $response Contiene el array a ser enviado al usuario. * */ function __construct($file, $message, $httpCode, $response = []) { Log::addException($file, $message, $httpCode); $this->code = $httpCode; $this->response = array_merge(['error' => true, 'httpCode' => $httpCode], $response); parent::__construct($message, $this->getCode()); }