src/Service/Subscription/Subscribers/SendTrialStartEmailSubscriber.php line 43

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Harmonizely\Service\Subscription\Subscribers;
  4. use FOS\UserBundle\Event\GetResponseUserEvent;
  5. use FOS\UserBundle\FOSUserEvents;
  6. use Harmonizely\Service\Subscription\Contract\ISendTrialStartEmailService;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. final class SendTrialStartEmailSubscriber implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var ISendTrialStartEmailService
  12.      */
  13.     private ISendTrialStartEmailService $sendTrialStartEmailService;
  14.     /**
  15.      * @param ISendTrialStartEmailService $sendTrialStartEmailService
  16.      */
  17.     public function __construct(
  18.         ISendTrialStartEmailService $sendTrialStartEmailService
  19.     )
  20.     {
  21.         $this->sendTrialStartEmailService $sendTrialStartEmailService;
  22.     }
  23.     /**
  24.      * @return string[]
  25.      */
  26.     public static function getSubscribedEvents(): array
  27.     {
  28.         return [
  29.             FOSUserEvents::REGISTRATION_CONFIRM => 'onRegistrationConfirm',
  30.         ];
  31.     }
  32.     /**
  33.      * @param GetResponseUserEvent $event
  34.      * @return void
  35.      */
  36.     public function onRegistrationConfirm(GetResponseUserEvent $event): void
  37.     {
  38.         $user $event->getUser();
  39.         $this->sendTrialStartEmailService->perform($user);
  40.     }
  41. }