コード例 #1
0
ファイル: Handler.php プロジェクト: stokekld/ssocialRest
 /**
  * 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);
 }
コード例 #2
0
 /**
  * 
  * 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());
 }