/** * @param string $middleware * @param bool $isAjax * @return \Illuminate\Http\RedirectResponse */ protected function failedResponse($middleware, $isAjax = false) { if ($isAjax) { return $this->response->make($this->getErrorMessage($middleware), 403); } return $this->redirector->back()->exceptInput('_guard_pot', '_guard_opened')->withErrors($this->getErrorMessage($middleware)); }
/** * Generic response. * * @api * @param array|null $payload * @return \Illuminate\Contracts\Http\Response */ public function respond($payload) { if ($meta = $this->getMeta()) { $payload = array_merge($payload, ['meta' => $meta]); } return !($callback = $this->request->input('callback')) ? $this->response->json($payload, $this->getStatusCode(), $this->getHeaders()) : $this->response->jsonp($callback, $payload, $this->getStatusCode(), $this->getHeaders()); }
/** * Bootstrap the application services. * * @return void */ public function boot(ResponseFactory $factory) { $factory->macro('validation_error', function ($messageBag, $defaultFullErrorMessage = null) use($factory) { $errorId = 'validation_error'; $jsonResponse = ["id" => $errorId, "fields" => []]; $fullErrorMessage = $messageBag->get('full_error_message'); if ($fullErrorMessage) { $jsonResponse['message'] = $fullErrorMessage[0]; } else { if ($defaultFullErrorMessage != null) { $jsonResponse['message'] = $defaultFullErrorMessage; } else { $jsonResponse['message'] = 'Los datos enviados contienen errores'; } } foreach ($messageBag->getMessages() as $key => $fieldMessages) { if (strcmp($key, 'full_error_message') != 0) { $jsonResponse["fields"][] = [$key => $fieldMessages[0]]; } } return $factory->make($jsonResponse, 400); }); $factory->macro('not_found', function ($message) use($factory) { $errorId = 'not_found'; $jsonResponse = ["id" => $errorId, "message" => $message]; return $factory->make($jsonResponse, 404); }); }
protected function process($data) { if ('json' == $this->type) { return $this->responseFactory->json($data, $this->code); } throw new \Exception('no processer for api maker'); }
/** * Serialize the data and wrap it in a JSON response object. * * @param int|null $statusCode * @param array $headers * @return \Illuminate\Http\JsonResponse */ public function respond(int $statusCode = null, array $headers = []) : JsonResponse { if (!is_null($statusCode)) { $this->setStatus($statusCode); } $data = $this->includeStatusCode($this->toArray()); return $this->responseFactory->json($data, $this->statusCode, $headers); }
/** * Index handler. * * @param \Psr\Http\Message\ServerRequestInterface $psrRequest * @param \Laravel\Passport\ClientRepository $clients * * @return \Illuminate\Http\Response */ public function index(ServerRequestInterface $psrRequest, ClientRepository $clients) { return $this->withErrorHandling(function () use($psrRequest, $clients) { $this->request->session()->put('authRequest', $authRequest = $this->server->validateAuthorizationRequest($psrRequest)); $scopes = $this->parseScopes($authRequest); return $this->response->view('passport::authorize', ['client' => $clients->find($authRequest->getClient()->getIdentifier()), 'user' => $this->request->user(), 'scopes' => $scopes, 'request' => $this->request]); }); }
/** * @inheritdoc */ public function make($data, $statusCode = 200, array $headers = []) { $acceptedMediaType = $this->requestParser->acceptedMediaType(); $mediaType = $this->versionFactory->makeMediaType($acceptedMediaType); $representation = $mediaType->format($data); $headers = $this->setContentTypeHeader($headers, $acceptedMediaType); return $this->response->make($representation, $statusCode, $headers); }
/** * @param int $tagId * @param string $tagName * * @throws \Illuminate\Database\Eloquent\ModelNotFoundException * * @return \Illuminate\Contracts\View\View|\Illuminate\Http\RedirectResponse */ public function viewAction(int $tagId, string $tagName) { $tag = $this->tagRepository->loadById($tagId); if ($tag->name !== $tagName) { return $this->responseFactory->redirectToRoute('tag.view', ['id' => $tag->id, $tag->name]); } return $this->viewFactory->make('customer.tag.view', compact('tag')); }
/** * Redirect to specific locale page and set cookie to remember their * setting. * * @param string $locale * @param bool $autoDetect * @return Response */ protected function redirect($locale, $autoDetect = false) { $response = $this->response->redirectTo($this->url->urlFor($locale)); if ($autoDetect) { $response = $this->manager->setCookieLocale($response, $locale); } return $response; }
/** * Generic response. * * @api * @param array|null $payload * @return \Illuminate\Contracts\Http\Response */ public function respond($payload = []) { if ($meta = $this->getMeta()) { $payload = array_merge($payload, ['meta' => $meta]); } $statusCode = config('api.suppress_response_code') === true ? StatusCode::OK : $this->getStatusCode(); return !($callback = $this->request->input('callback')) ? $this->response->json($payload, $statusCode, $this->getHeaders(), JSON_PRETTY_PRINT) : $this->response->jsonp($callback, $payload, $statusCode, $this->getHeaders()); }
/** * Bootstrap the application services. * * @return void */ public function boot(ResponseFactory $factory) { // macroメソッドは登録名を第1引数、クロージャーを第2引数に取ります。 // マクロのクロージャーはResponseFactoryの実装か、responseヘルパーに対し、登録名で呼び出すことで、実行されます。 // return response()->caps('foo'); $factory->macro('çsv', function ($value) use($factory) { // CSV download 処理を追加する }); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { $as = $request->input('_as'); if ($this->authorize() && !is_null($as)) { $this->auth->loginUsingId($as); return $this->response->redirectTo($request->url()); } return $next($request); }
/** * Run the request filter. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ public function filter(Route $route, Request $request) { if ($this->auth->guest()) { if ($request->ajax()) { return $this->response->make('Unauthorized', 401); } else { return $this->response->redirectGuest('auth/login'); } } }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($this->auth->guest()) { if ($request->ajax()) { return $this->response->make('Unauthorized', 401); } else { return $this->response->redirectGuest('auth/login'); } } return $next($request); }
/** * @param int $productId * @param string $slug * * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException * * @return \Illuminate\Contracts\View\View|\Illuminate\Http\Response */ public function viewAction(int $productId, string $slug) { $product = $this->productRepository->loadAlone($productId); if (!$product->id) { throw new NotFoundHttpException(); } if ($product->slug !== $slug) { return $this->responseFactory->redirectToRoute('product::view', ['id' => $product->id, 'slug' => $product->slug], 301); } return $this->view->make('customer.product.view', ['product' => $this->view->getProduct($product), 'meta' => $this->view->productMeta($product), 'similar' => $this->view->similarProducts($product)]); }
/** * Authorize the user * * @param ResponseFactory $response * @return array|\Illuminate\Http\Response */ public function authorize(ResponseFactory $response) { $credentials = array_merge($this->request->only(['username', 'password']), ['status' => 'active']); if (!$this->auth->once($credentials)) { return $response->make('Invalid credentials', 401); } /* if (!$this->isAuthorized($userRoles)) { return $response->make('Unauthorized user', 401); }*/ return ['token' => $this->getUserToken($this->auth->user())]; }
/** * Perform post-registration booting of services. * * @param ResponseFactory $factory * @return void */ public function boot(ResponseFactory $factory) { $factory->macro('calculatePercent', function ($num_amount, $num_total) use($factory) { if ($num_total == 0) { return '0%'; } $count1 = $num_amount / $num_total; $count2 = $count1 * 100; $count = number_format($count2, 0); return $count . ' %'; }); }
public function act(Request $request, ResponseFactory $response, $number = 5) { $status = 200; try { $cages = $this->cageRepo->getRandomCageImages($number); $data = ['cages' => $cages]; } catch (\InvalidArgumentException $e) { $status = 400; $data = ['error' => $e->getMessage()]; } return $response->json($data, $status); }
/** * Bootstrap the application services. */ public function boot(ResponseFactory $factory, Request $request) { $factory->macro('yaml', function ($value, $status = 200, array $headers = [], $style = YamlResponse::MULTILINE_YAML) use($factory) { YamlResponse::prepareHeaders($headers); return $factory->make(YamlResponse::dump($value, $style), $status, $headers); }); $request->macro('wantsYaml', function () use($request) { return YamlRequest::wantsYaml($request); }); $request->macro('isYaml', function () use($request) { return YamlRequest::isYaml($request); }); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request Request * @param \Closure $next Closure * * @return mixed */ public function handle($request, Closure $next) { if ($this->auth->check()) { $admin = 0; if ($this->auth->user()->admin == 1) { $admin = 1; } if ($admin == 0) { return $this->response->redirectTo('/'); } return $next($request); } return $this->response->redirectTo('/'); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($this->auth->check()) { $user = 0; if ($this->auth->user()->role_id == 2) { $user = 2; } if ($user == 0) { return $this->response->redirectTo('/'); } return $next($request); } return $this->response->redirectTo('/'); }
/** * Handle the file upload. * * @param DiskRepositoryInterface $disks * @param ResponseFactory $response * @param MountManager $manager * @param Request $request * @return \Symfony\Component\HttpFoundation\Response */ public function handle(DiskRepositoryInterface $disks, ResponseFactory $response, MountManager $manager, Request $request) { $path = trim($request->get('path'), '.'); $file = $request->file('upload'); $disk = $request->get('disk'); if (is_numeric($disk)) { $disk = $disks->find($disk); } elseif (is_string($disk)) { $disk = $disks->findBySlug($disk); } $file = $manager->putStream($disk->path(ltrim(trim($path, '/') . '/' . $file->getClientOriginalName(), '/')), fopen($file->getRealPath(), 'r+')); /* @var FileInterface $file */ return $response->json($file->getAttributes()); }
function it_makes_a_response(\LaraPackage\Api\Contracts\Request\Parser $requestParser, ResponseFactory $response, \LaraPackage\Api\Contracts\Factory\VersionFactory $versionFactory, \LaraPackage\Api\Contracts\MediaType\Json $media, \Illuminate\Http\Response $illuminateResponse, \LaraPackage\Api\Contracts\Config\ApiVersion $versionInfoRetriever) { $mediaType = 'json'; $version = 4; $vendor = 'vnd.wps_api.'; $versionDesignator = 'v4'; $dataArray = ['data' => 'array']; $jsonData = json_encode($dataArray); $requestParser->acceptedMediaType()->shouldBeCalled()->willReturn($mediaType); $versionInfoRetriever->vendor($version)->shouldBeCalled()->willReturn($vendor); $versionInfoRetriever->versionDesignator($version)->shouldBeCalled()->willReturn($versionDesignator); $versionFactory->makeMediaType($mediaType)->shouldBeCalled()->willReturn($media); $media->format($dataArray)->shouldBeCalled()->willReturn($jsonData); $response->make($jsonData, 200, ['Content-Type' => 'application/' . $vendor . $versionDesignator . '+' . $mediaType])->shouldBeCalled()->willReturn($illuminateResponse); $this->make($dataArray)->shouldReturn($illuminateResponse); }
/** * Create a response instance from the given parameters. * * @param mixed $data * @param int $status * @param BaseTransformer $transformer * @return mixed */ public function create($data = [], $status = null, $transformer = null) { $this->setContent($data); if (!isset($data)) { $this->setContent('')->setStatusCode(HttpResponse::HTTP_NO_CONTENT); } elseif ($data instanceof LengthAwarePaginator) { $this->setContent($this->handlePagination($data, $transformer)); } elseif ($data instanceof Collection) { $this->setContent($this->handleCollection($data, $transformer)); } elseif ($data instanceof Model) { $this->setContent($this->handleItem($data, $transformer)); } elseif ($data instanceof ResourceException || get_parent_class($data) == ResourceException::class) { $this->setContent($this->handleError($data, $transformer, ResourceException::class))->setStatusCode($data->getStatusCode()); } elseif ($data instanceof HttpException || get_parent_class($data) == HttpException::class) { $this->setContent($this->handleError($data, $transformer, HttpException::class))->setStatusCode($data->getStatusCode()); } elseif ($data instanceof ValidationException || get_parent_class($data) == ValidationException::class) { // Create new ResourceException with the given errors if it is a ValidationException $resourceException = new ResourceException($data->getMessage(), $data->validator->errors()); $this->setContent($this->handleError($resourceException, $transformer))->setStatusCode($resourceException->getStatusCode()); } elseif ($data instanceof Exception || get_parent_class($data) == Exception::class) { $this->setContent($this->handleError($data, $transformer, Exception::class))->setStatusCode(HttpResponse::HTTP_INTERNAL_SERVER_ERROR); } elseif ($data instanceof FatalErrorException) { $this->setContent($this->handleError($data, $transformer, Exception::class))->setStatusCode(HttpResponse::HTTP_INTERNAL_SERVER_ERROR); } // Override status code if (isset($status)) { $this->setStatusCode($status); } return $this->response->json($this->getContent(), $this->getStatusCode()); }
/** * @param \Illuminate\Http\Request $request * @param \Illuminate\Auth\AuthenticationException $exception * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ protected function unauthenticated($request, AuthenticationException $exception) { if ($request->expectsJson()) { return $this->response->json(['error' => 'Unauthenticated.'], 401); } return $this->redirector->guest('login'); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($this->auth->check()) { $admin = 0; $user_roles = AssignedRoles::join('roles', 'role_user.role_id', '=', 'roles.id')->where('user_id', $this->auth->user()->id)->select('roles.is_admin')->get(); foreach ($user_roles as $item) { if ($item->is_admin == 1) { $admin = 1; } } if ($admin == 0) { return $this->response->redirectTo('/'); } return $next($request); } return $this->response->redirectTo('/'); }
/** * receiveSync. * * @method receiveSync * * @param \Illuminate\Http\Request $request * @param string $payumToken * * @return mixed */ public function receiveSync(Request $request, $payumToken) { return $this->send($request, $payumToken, function ($gateway, $token, $httpRequestVerifier) { $gateway->execute(new Sync($token)); $httpRequestVerifier->invalidate($token); return $this->responseFactory->redirectTo($token->getAfterUrl()); }); }
/** * Response on authorized request. * * @param \Illuminate\Http\Request $request * * @return mixed */ protected function responseOnUnauthorized($request) { if ($request->ajax()) { return $this->response->make('Unauthorized', 401); } $type = $this->auth->guest() ? 'guest' : 'user'; $url = $this->config->get("orchestra/foundation::routes.{$type}"); return $this->response->redirectTo($this->foundation->handles($url)); }
/** * Handle an incoming request. * * @return null * @throws Exception * @throws HttpResponseException */ public function validate() { if (!$this->isThisValid()) { $errorList = null; switch ($this->errorFormat) { case self::ERROR_FORMAT_RULES: $errorList = $this->getFailedRules(); break; case self::ERROR_FORMAT_MESSAGES: $errorList = $this->getMessageBag()->all(); break; default: throw new Exception("Unknown error format: {$this->errorFormat}"); } $result = $this->makeResponse($errorList); throw new HttpResponseException($this->responseFactory->json($result, $this->errorResponseStatus)); } return null; }
/** * media. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Filesystem\Filesystem $filesystem * @param \Illuminate\Contracts\Routing\ResponseFactory $request * @param string $file * * @return \Illuminate\Http\Response */ public function media(Request $request, Filesystem $filesystem, ResponseFactory $responseFactory, $file) { $filename = __DIR__ . '/../../../public/' . $file; $mimeType = strpos($filename, '.css') !== false ? 'text/css' : 'application/javascript'; $lastModified = $filesystem->lastModified($filename); $eTag = sha1_file($filename); $headers = ['content-type' => $mimeType, 'last-modified' => date('D, d M Y H:i:s ', $lastModified) . 'GMT']; if (@strtotime($request->server('HTTP_IF_MODIFIED_SINCE')) === $lastModified || trim($request->server('HTTP_IF_NONE_MATCH'), '"') === $eTag) { $response = $responseFactory->make(null, 304, $headers); } else { $response = $responseFactory->stream(function () use($filename) { $out = fopen('php://output', 'wb'); $file = fopen($filename, 'rb'); stream_copy_to_stream($file, $out, filesize($filename)); fclose($out); fclose($file); }, 200, $headers); } return $response->setEtag($eTag); }