src/Event/OpportunityContactStatusUpdateSubscriber.php line 27

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Event;
  4. use App\Event\OpportunityContactStatusUpdateEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use App\Services\Opportunity\OpportunityService;
  7. use App\Services\Contact\ContactSalesActionService;
  8. class OpportunityContactStatusUpdateSubscriber implements EventSubscriberInterface
  9. {
  10.     public function __construct(
  11.         private OpportunityService $opportunityService,
  12.         private ContactSalesActionService $contactSalesActionService
  13.     ) {
  14.     }
  15.     public static function getSubscribedEvents()
  16.     {
  17.         return [
  18.             OpportunityContactStatusUpdateEvent::NAME => 'onOpportunityUpdate',
  19.         ];
  20.     }
  21.     public function onOpportunityUpdate(OpportunityContactStatusUpdateEvent $event): void
  22.     {
  23.         $this->opportunityService->updateContactsStatusOnOpportunityUpdate(
  24.             $event->getOpportunity()
  25.         );
  26.         $this->contactSalesActionService->saveOpportunitySalesAction(
  27.             $event->getOpportunity()
  28.         );
  29.     }
  30. }