path() != 'get_started') { // https://gist.github.com/jrmadsen67/bd0f9ad0ef1ed6bb594e return redirect() ->back() ->withInput($request->except('password', '_token')) ->with([ 'warning' => trans('texts.token_expired'), ]); } } if ($this->isHttpException($e)) { switch ($e->getStatusCode()) { // not found case 404: if ($request->header('X-Ninja-Token') != '') { //API request which has hit a route which does not exist $error['error'] = ['message' => 'Route does not exist']; $error = json_encode($error, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); return response()->make($error, 404, $headers); } break; // internal error case '500': if ($request->header('X-Ninja-Token') != '') { //API request which produces 500 error $error['error'] = ['message' => 'Internal Server Error']; $error = json_encode($error, JSON_PRETTY_PRINT); $headers = Utils::getApiHeaders(); return response()->make($error, 500, $headers); } break; } } // In production, except for maintenance mode, we'll show a custom error screen if (Utils::isNinjaProd() && ! Utils::isDownForMaintenance() && ! ($e instanceof HttpResponseException) && ! ($e instanceof ValidationException)) { $data = [ 'error' => get_class($e), 'hideHeader' => true, ]; return response()->view('error', $data); } else { return parent::render($request, $e); } } }