back()->with('error', trans('general.token_expired')); } // Handle Ajax requests that fail because the model doesn't exist if ($request->ajax() || $request->wantsJson()) { if ($e instanceof \Illuminate\Database\Eloquent\ModelNotFoundException) { $className = last(explode('\\', $e->getModel())); return response()->json(Helper::formatStandardApiResponse('error', null, $className . ' not found'), 200); } if ($e instanceof \Illuminate\Validation\ValidationException) { return response()->json(Helper::formatStandardApiResponse('error', $e->response['messages'], $e->getMessage(), 400)); } if ($this->isHttpException($e)) { $statusCode = $e->getStatusCode(); switch ($e->getStatusCode()) { case '404': return response()->json(Helper::formatStandardApiResponse('error', null, $statusCode . ' endpoint not found'), 404); case '405': return response()->json(Helper::formatStandardApiResponse('error', null, 'Method not allowed'), 405); default: return response()->json(Helper::formatStandardApiResponse('error', null, $statusCode), 405); } } // Try to parse 500 Errors ina bit nicer way when debug is enabled. if (config('app.debug')) { return response()->json(Helper::formatStandardApiResponse('error', null, "An Error has occured! " . $e->getMessage()), 500); } } if ($this->isHttpException($e) && (isset($statusCode)) && ($statusCode == '404' )) { return response()->view('layouts/basic', [ 'content' => view('errors/404') ]); } return parent::render($request, $e); } /** * Convert an authentication exception into an unauthenticated response. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Auth\AuthenticationException $exception * @return \Illuminate\Http\Response */ protected function unauthenticated($request, AuthenticationException $exception) { if ($request->expectsJson()) { return response()->json(['error' => 'Unauthorized.'], 401); } return redirect()->guest('login'); } }