src/EventSubscriber/User/ContactSubscriber.php line 62

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber\User;
  3. use App\Event\MyProfile\GuestAccountActivatedEvent;
  4. use App\Event\MyProfile\GuestCreatedEvent;
  5. use App\Event\MyProfile\GuestDeletedEvent;
  6. use App\EventSubscriber\AbstractEmailSubscriber;
  7. use App\Manager\MailTypeInterface;
  8. class ContactSubscriber extends AbstractEmailSubscriber
  9. {
  10.     public function onGuestCreated(GuestCreatedEvent $event): void
  11.     {
  12.         $guest $event->getUser();
  13.         $firstname $guest->getMainAccount()->getFirstName();
  14.         $lastname $guest->getMainAccount()->getLastName();
  15.         $subject $this->transEmail('my_profile.guest.created.subject', [
  16.             'firstname' => $firstname,
  17.             'lastname'  => $lastname,
  18.         ]);
  19.         $message $this->templating->render('email/contact/creation.html.twig', [
  20.             'guest' => $guest,
  21.         ]);
  22.         $this->mailer->sendMail([$guest->getEmail()], $subject$messageMailTypeInterface::ACCOUNT_GUEST_CREATED);
  23.     }
  24.     public function onGuestAccountActivated(GuestAccountActivatedEvent $event): void
  25.     {
  26.         $guest $event->getUser();
  27.         $main $guest->getMainAccount();
  28.         $subjectGuest $this->transEmail('my_profile.guest.validation.subject');
  29.         $messageGuest $this->templating->render('email/contact/validation.html.twig', [
  30.             'guest' => $guest,
  31.         ]);
  32.         $subjectMain $this->transEmail('my_profile.guest.activated.subject', [
  33.             'firstname' => $guest->getFirstName(),
  34.             'lastname'  => $guest->getLastName(),
  35.         ]);
  36.         $messageMain $this->templating->render('email/contact/activated.html.twig', [
  37.             'customer' => $main,
  38.             'guest'    => $guest,
  39.         ]);
  40.         $this->mailer->sendMail(
  41.             [$guest->getEmail()],
  42.             $subjectGuest,
  43.             $messageGuest,
  44.             MailTypeInterface::ACCOUNT_GUEST_ACTIVATED_GUEST
  45.         );
  46.         $this->mailer->sendMail(
  47.             [$main->getEmail()],
  48.             $subjectMain,
  49.             $messageMain,
  50.             MailTypeInterface::ACCOUNT_GUEST_ACTIVATED_MAIN
  51.         );
  52.     }
  53.     public function onGuestDeleted(GuestDeletedEvent $event): void
  54.     {
  55.         $guest $event->getUser();
  56.         $main $guest->getMainAccount();
  57.         $subject $this->transEmail('my_profile.guest.deleted.subject', ['firstname' => $guest->getFirstName(), 'lastname' => $guest->getLastName()]);
  58.         $message $this->templating->render('email/contact/delete.html.twig', [
  59.             'customer' => $main,
  60.             'guest'    => $guest,
  61.         ]);
  62.         $this->mailer->sendMail(
  63.             [$main->getEmail()],
  64.             $subject,
  65.             $message,
  66.             MailTypeInterface::ACCOUNT_GUEST_DELETED_MAIN
  67.         );
  68.     }
  69.     public static function getSubscribedEvents(): array
  70.     {
  71.         return [
  72.             GuestCreatedEvent::class          => 'onGuestCreated',
  73.             GuestAccountActivatedEvent::class => 'onGuestAccountActivated',
  74.             GuestDeletedEvent::class          => 'onGuestDeleted',
  75.         ];
  76.     }
  77. }