src/FMT/Domain/Listener/CampaignTransactionsSubscriber.php line 42

Open in your IDE?
  1. <?php
  2. namespace FMT\Domain\Listener;
  3. use FMT\Domain\Event\TransactionEvent;
  4. use FMT\Domain\Service\CampaignManagerInterface;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. /**
  7.  * Class CampaignTransactionsSubscriber
  8.  * @package FMT\Domain\Listener
  9.  */
  10. class CampaignTransactionsSubscriber implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var CampaignManagerInterface
  14.      */
  15.     private $campaignManager;
  16.     /**
  17.      * CampaignTransactionsSubscriber constructor.
  18.      * @param CampaignManagerInterface $campaignManager
  19.      */
  20.     public function __construct(CampaignManagerInterface $campaignManager)
  21.     {
  22.         $this->campaignManager $campaignManager;
  23.     }
  24.     /**
  25.      * @return array
  26.      */
  27.     public static function getSubscribedEvents()
  28.     {
  29.         return [
  30.             TransactionEvent::TRANSACTION_COMPLETED => 'updateTotalsByTransactions',
  31.         ];
  32.     }
  33.     /**
  34.      * @param TransactionEvent $event
  35.      */
  36.     public function updateTotalsByTransactions(TransactionEvent $event)
  37.     {
  38.         $campaign $event->getTransaction()->getCampaign();
  39.         $this->campaignManager->updateTotalsByTransactions($campaign);
  40.     }
  41. }