src/EventSubscriber/QuotationChangeManagerEventSubscriber.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Event;
  4. use App\Event\QuotationChangeManagerEvent;
  5. use App\Service\Subscription\SubscriptionService;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class QuotationChangeManagerEventSubscriber implements EventSubscriberInterface
  8. {
  9.     private SubscriptionService $subscriptionService;
  10.     public function __construct(
  11.         SubscriptionService $subscriptionService
  12.     )
  13.     {
  14.         $this->subscriptionService $subscriptionService;
  15.     }
  16.     public static function getSubscribedEvents(): array
  17.     {
  18.         return [
  19.             QuotationChangeManagerEvent::CHANGED => [
  20.                 ['quotationManagerChangedNotify'],
  21.                 ['createManagerSubscriptions'],
  22. //                ['clearPreviousManagerSubs'] todo
  23.             ],
  24.         ];
  25.     }
  26.     public function createManagerSubscriptions(QuotationChangeManagerEvent $event)
  27.     {
  28.         $this->subscriptionService->generateSubscriptions($event->getQuotation(), $event->getQuotation()->getManager());
  29.     }
  30.     public function quotationManagerChangedNotify(QuotationChangeManagerEvent $event)
  31.     {
  32.         $this->subscriptionService->proceedEvent(
  33.             Event::MANAGER_CHANGED,
  34.             $event->getQuotation(),
  35.             [
  36.             'data' => [
  37.                 'uuid' => $event->getQuotation()->getUuid()
  38.             ],
  39.             'action_name' => 'quotationManagerChangedNotify',
  40.             ]
  41.         );
  42.     }
  43. }