<?phpnamespace App\EventSubscriber;use ApiPlatform\Core\EventListener\EventPriorities;use App\Entity\Submodality;use App\Message\CreateInsurerLimitsBySubmodality;use App\Message\UpdateInsurerLimitsBySubmodality;use App\Message\CreateInsuredLimitsBySubmodality;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpFoundation\Request;// use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;use Symfony\Component\HttpKernel\Event\ViewEvent;use Symfony\Component\HttpKernel\KernelEvents;use Symfony\Component\Messenger\MessageBusInterface;// use App\Entity\User;final class SubmodalitySubscriber implements EventSubscriberInterface{ public function __construct( // TokenStorageInterface $tokenStorage, MessageBusInterface $messageBus, ) { // $this->tokenStorage = $tokenStorage; $this->messageBus = $messageBus; } public static function getSubscribedEvents(): array { return [ KernelEvents::VIEW => [ ['createInsurerLimits', EventPriorities::POST_WRITE], ['updateInsurerLimits', EventPriorities::POST_WRITE], ['createInsuredLimits', EventPriorities::POST_WRITE], ], ]; } public function createInsurerLimits(ViewEvent $event): void { $submodality = $event->getControllerResult(); $method = $event->getRequest()->getMethod(); if (!$submodality instanceof Submodality || Request::METHOD_POST !== $method) { return; } // $token = $this->tokenStorage->getToken(); // if (!$token) { // return; // } // $user = $token->getUser(); // if (!$user instanceof User) { // return; // } $message = new CreateInsurerLimitsBySubmodality(); $message->setSubmodalityId($submodality->getId()); $this->messageBus->dispatch($message); } public function updateInsurerLimits(ViewEvent $event): void { $submodality = $event->getControllerResult(); $method = $event->getRequest()->getMethod(); if (!$submodality instanceof Submodality || Request::METHOD_PUT !== $method) { return; } // $token = $this->tokenStorage->getToken(); // if (!$token) { // return; // } // $user = $token->getUser(); // if (!$user instanceof User) { // return; // } $message = new UpdateInsurerLimitsBySubmodality(); $message->setSubmodalityId($submodality->getId()); $this->messageBus->dispatch($message); } public function createInsuredLimits(ViewEvent $event): void { $submodality = $event->getControllerResult(); $method = $event->getRequest()->getMethod(); if (!$submodality instanceof Submodality || Request::METHOD_POST !== $method) { return; } // $token = $this->tokenStorage->getToken(); // if (!$token) { // return; // } // $user = $token->getUser(); // if (!$user instanceof User) { // return; // } $message = new CreateInsuredLimitsBySubmodality(); $message->setSubmodalityId($submodality->getId()); $this->messageBus->dispatch($message); }}