/** * Set Request context for the package components * * @param string $method * @param string $path * @param string $locale * @param array $parameters * @param array $cookies * @param array $files * @param array $server * @param string $content * @return Response */ protected function setRequestContext($method, $path, $locale = null, $parameters = [], $cookies = [], $files = [], $server = [], $content = null) { $uri = $this->getUri($path, $locale); $request = Request::create($uri, $method, $parameters, $cookies, $files, $server, $content); $this->app->instance('request', $request); app('localization.localize')->detectLocale(); $this->setRoutes(); }
/** * Execute the console command. * * @return mixed */ public function handle() { $request = Request::create('/api/blocknotify', 'GET', ['key' => Mint\Settings::getVal('api_key'), 'blockhash' => $this->argument('blockhash')]); Request::replace($request->input()); $response = Route::dispatch($request)->getContent(); if ($this->option('debug')) { $this->info($response); } }
/** * Call the given URI and return the Response. * * @param string $method * @param string $uri * @param array $parameters * @param array $cookies * @param array $files * @param array $server * @param string $content * * @return \Illuminate\Http\Response */ public function callRoute($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null) { $server = collect(['CONTENT_TYPE' => 'application/json', 'Accept' => 'application/json'])->merge($server)->toArray(); $request = Request::create($uri, $method, $parameters, $cookies, $files, $this->transformHeadersToServerVars($server), $content); $kernel = App::make('Illuminate\\Contracts\\Http\\Kernel'); $response = $kernel->handle($request); $kernel->terminate($request, $response); if (file_exists($file = App::bootstrapPath() . '/app.php')) { $app = (require $file); $app->make('Illuminate\\Contracts\\Console\\Kernel')->bootstrap(); } return $response; }
/** * 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) { if ($this->isHttpException($e)) { $code = $e->getStatusCode(); if ($code !== 500 || App::environment('production') || App::environment('staging')) { $page = Page::findByInternalName($code); if ($page) { $request = Request::create($page->url()->getLocation(), 'GET'); return response(Route::dispatch($request)->getContent(), $code); } } } return parent::render($request, $e); }
/** * Dispatch this request. * * @param string $method * * @return mixed */ public function dispatch($method) { // Save original input. $original_input = Request::input(); // Create request. $request = Request::create($this->uri, $method, $this->params); // Replace input (maintain api auth parameters). Request::replace(array_merge($request->input(), array('client_id' => Request::input('client_id'), 'client_secret' => Request::input('client_secret'), 'access_token' => Request::input('access_token')))); // Dispatch request. $response = Route::dispatch($request); // Restore original input. Request::replace($original_input); $content = $response->getContent(); return empty($content) ? null : json_decode($response->getContent(), true); }
protected function fastRequest($uri, $method, $input = array()) { $uri = $this->config['prefix'] . $uri; $method = strtoupper($method); if ($this->config['local']) { $oldInput = Input::all(); Input::replace($input); $request = Request::create($uri, $method, array()); $response = Route::dispatch($request); $content = $response->getContent(); $code = $response->getStatusCode(); $results = json_decode($content); Input::replace($oldInput); } else { if ($method === 'GET') { $uri .= '?' . urldecode(http_build_query($input)); } $client = new Client($this->config['domain']); $request = $client->createRequest($method, $uri, array(), $method === 'GET' ? array() : $input)->addHeader('Content-Type', 'application/json'); try { $response = $request->send(); } catch (ClientErrorResponseException $e) { $response = $e->getResponse(); } $code = $response->getStatusCode(); $results = $response->json(); } if (!Str::startsWith((string) $code, "2")) { throw new ApiException($results, $code); } return $results; }
/** * Get the pattern filters for a given URI and method. * * @param string $uri * @param string $method * @return array */ protected function getMethodPatterns($uri, $method) { return $this->router->findPatternFilters(Request::create($uri, $method)); }
/** * @return string */ public function last_page() { $lang = null; $collection = $this->router->getRoutes(); $route = $collection->match(Request::create($this->wrappedObject->last_page)); if ($route->getName() != null) { $langOptions = $this->getWioData($route->getName(), $route->parameters()); if (!isset($langOptions['url'])) { $langOptions['url'] = route($route->getName(), $route->parameters()); } if (!isset($langOptions['langString'])) { $langString = 'online.' . $route->getName(); } else { $langString = 'online.' . $langOptions['langString']; unset($langOptions['langString']); } $lang = $this->translator->get($langString, $langOptions); // May happen if we have two routes 'xy.yx.zz' and 'xy.yx' if (is_array($lang)) { $lang = $this->translator->get($langString . '.index', $langOptions); } } if ($lang == null) { // $lang = Lang::get('online.unknown', ['url' => '']); // Used for debugging, should be left here until we have added all routes $lang = 'online.' . $route->getName(); } return $lang; }