vendor/api-platform/core/src/Symfony/EventListener/JsonApi/TransformFilteringParametersListener.php line 27

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the API Platform project.
  4.  *
  5.  * (c) Kévin Dunglas <dunglas@gmail.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace ApiPlatform\Symfony\EventListener\JsonApi;
  12. use Symfony\Component\HttpKernel\Event\RequestEvent;
  13. /**
  14.  * @see http://jsonapi.org/format/#fetching-filtering
  15.  * @see http://jsonapi.org/recommendations/#filtering
  16.  *
  17.  * @author Héctor Hurtarte <hectorh30@gmail.com>
  18.  * @author Baptiste Meyer <baptiste.meyer@gmail.com>
  19.  */
  20. final class TransformFilteringParametersListener
  21. {
  22.     public function onKernelRequest(RequestEvent $event): void
  23.     {
  24.         $request $event->getRequest();
  25.         $filterParameter $request->query->all()['filter'] ?? null;
  26.         if (
  27.             !$filterParameter ||
  28.             !\is_array($filterParameter) ||
  29.             'jsonapi' !== $request->getRequestFormat()
  30.         ) {
  31.             return;
  32.         }
  33.         $filters $request->attributes->get('_api_filters', []);
  34.         $request->attributes->set('_api_filters'array_merge($filterParameter$filters));
  35.     }
  36. }
  37. class_alias(TransformFilteringParametersListener::class, \ApiPlatform\Core\JsonApi\EventListener\TransformFilteringParametersListener::class);