src/EventSubscriber/ModalitySubscriber.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use ApiPlatform\Core\EventListener\EventPriorities;
  4. use App\Entity\Modality;
  5. use App\Message\CreateInsurerLimitsByModality;
  6. use App\Message\UpdateInsurerLimitsByModality;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\HttpFoundation\Request;
  9. // use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  10. use Symfony\Component\HttpKernel\Event\ViewEvent;
  11. use Symfony\Component\HttpKernel\KernelEvents;
  12. use Symfony\Component\Messenger\MessageBusInterface;
  13. // use App\Entity\User;
  14. final class ModalitySubscriber implements EventSubscriberInterface
  15. {
  16.     public function __construct(
  17.         // TokenStorageInterface $tokenStorage,
  18.         MessageBusInterface $messageBus,
  19.     ) {
  20.         // $this->tokenStorage = $tokenStorage;
  21.         $this->messageBus $messageBus;
  22.     }
  23.     public static function getSubscribedEvents(): array
  24.     {
  25.         return [
  26.             KernelEvents::VIEW => [
  27.                 ['createInsurerLimits'EventPriorities::POST_WRITE],
  28.                 ['updateInsurerLimits'EventPriorities::POST_WRITE],
  29.             ],
  30.         ];
  31.     }
  32.     public function createInsurerLimits(ViewEvent $event): void
  33.     {
  34.         $modality $event->getControllerResult();
  35.         $method $event->getRequest()->getMethod();
  36.         if (!$modality instanceof Modality || Request::METHOD_POST !== $method) {
  37.             return;
  38.         }
  39.         // $token = $this->tokenStorage->getToken();
  40.         // if (!$token) {
  41.         //     return;
  42.         // }
  43.         // $user = $token->getUser();
  44.         // if (!$user instanceof User) {
  45.         //     return;
  46.         // }
  47.         $message = new CreateInsurerLimitsByModality();
  48.         $message->setModalityId($modality->getId());
  49.         $this->messageBus->dispatch($message);
  50.     }
  51.     public function updateInsurerLimits(ViewEvent $event): void
  52.     {
  53.         $modality $event->getControllerResult();
  54.         $method $event->getRequest()->getMethod();
  55.         if (!$modality instanceof Modality || Request::METHOD_PUT !== $method) {
  56.             return;
  57.         }
  58.         // $token = $this->tokenStorage->getToken();
  59.         // if (!$token) {
  60.         //     return;
  61.         // }
  62.         // $user = $token->getUser();
  63.         // if (!$user instanceof User) {
  64.         //     return;
  65.         // }
  66.         $message = new UpdateInsurerLimitsByModality();
  67.         $message->setModalityId($modality->getId());
  68.         $this->messageBus->dispatch($message);
  69.     }
  70. }