vendor/roothirsch/core-bundle/Translation/EventSubscriber/TranslationScopeReadSubscriber.php line 32

Open in your IDE?
  1. <?php
  2. namespace Roothirsch\CoreBundle\Translation\EventSubscriber;
  3. use ApiPlatform\Core\EventListener\EventPriorities;
  4. use Roothirsch\CoreBundle\Translation\Entity\TranslationScope;
  5. use Roothirsch\CoreBundle\Translation\Repository\TranslationScopeRepository;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  8. use Symfony\Component\HttpKernel\Event\RequestEvent;
  9. use Symfony\Component\HttpKernel\KernelEvents;
  10. final class TranslationScopeReadSubscriber implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var TranslationScopeRepository
  14.      */
  15.     protected $translationScopeRepository;
  16.     public function __construct(TranslationScopeRepository $translationScopeRepository)
  17.     {
  18.         $this->translationScopeRepository $translationScopeRepository;
  19.     }
  20.     public static function getSubscribedEvents()
  21.     {
  22.         return [
  23.             KernelEvents::REQUEST => ['handle'EventPriorities::PRE_READ],
  24.         ];
  25.     }
  26.     public function handle(RequestEvent $event)
  27.     {
  28.         if ($event->getRequest()->attributes->get('_api_resource_class') !== TranslationScope::class) {
  29.             return;
  30.         }
  31.         $translationScope $this->translationScopeRepository->findOneBy(['namespace' => $event->getRequest()->attributes->get('id')]);
  32.         if ($translationScope instanceof TranslationScope) {
  33.             $event->getRequest()->attributes->set('id'$translationScope->getId());
  34.         }
  35.         $translationScope $this->translationScopeRepository->findOneBy(['pushToken' => $event->getRequest()->attributes->get('id')]);
  36.         if ($translationScope instanceof TranslationScope) {
  37.             $event->getRequest()->attributes->set('id'$translationScope->getId());
  38.         }
  39.     }
  40. }