![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/friendsofsymfony/rest-bundle/View/ |
<?php /* * This file is part of the FOSRestBundle package. * * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace FOS\RestBundle\View; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; /** * Implements a custom handler for JSONP leveraging the ViewHandler. * * @author Lukas K. Smith <[email protected]> */ final class JsonpHandler { private $callbackParam; public function __construct(string $callbackParam) { $this->callbackParam = $callbackParam; } /** * Handles wrapping a JSON response into a JSONP response. */ public function createResponse(ViewHandler $handler, View $view, Request $request, string $format): Response { $response = $handler->createResponse($view, $request, 'json'); if ($response->isSuccessful()) { $callback = $this->getCallback($request); $response->setContent(sprintf('/**/%s(%s)', $callback, $response->getContent())); $response->headers->set('Content-Type', $request->getMimeType($format)); } return $response; } private function getCallback(Request $request): string { $callback = $request->query->get($this->callbackParam); $validator = new \JsonpCallbackValidator(); if (!is_string($callback) || !$validator->validate($callback)) { throw new BadRequestHttpException('Invalid JSONP callback value'); } return $callback; } }