Esempio n. 1
0
 /**
  * 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)
 {
     $debug = env('APP_DEBUG', false);
     $message = $e->getMessage();
     if (!$message) {
         $message = 'An error occurred';
     }
     $debugData = ['exception' => get_class($e), 'message' => $e->getMessage(), 'code' => $e->getCode(), 'file' => $e->getFile(), 'line' => $e->getLine(), 'trace' => explode("\n", $e->getTraceAsString())];
     $responseData = ['message' => $message];
     if ($e instanceof HttpExceptionInterface) {
         if (method_exists($e, 'getResponse')) {
             if ($e instanceof TransformableInterface) {
                 $responseData = $e->transform(app(ValidationExceptionTransformer::class));
             } else {
                 $responseData = $e->getResponse();
             }
         }
     }
     if ($debug) {
         $responseData['debug'] = $debugData;
     }
     $response = parent::render($request, $e);
     $response = new JsonResponse($responseData, $response->getStatusCode(), $response->headers->all(), JSON_PRETTY_PRINT);
     $response->exception = $e;
     app('Asm89\\Stack\\CorsService')->addActualRequestHeaders($response, $request);
     return $response;
 }
Esempio n. 2
0
 /**
  * Make an API response from an existing JSON response.
  *
  * @param \Illuminate\Http\JsonResponse $json
  *
  * @return \Dingo\Api\Http\Response
  */
 public static function makeFromJson(JsonResponse $json)
 {
     $new = static::create(json_decode($json->getContent(), true), $json->getStatusCode());
     $new->headers = $json->headers;
     return $new;
 }