/**
  * 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();
 }
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #4
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)
 {
     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);
 }
Beispiel #5
0
 /**
  * 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);
 }
Beispiel #6
0
 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;
 }
Beispiel #7
0
 /**
  * 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));
 }
Beispiel #8
0
 /**
  * @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;
 }