<?php
namespace App\Subscriber\User\AmateurUpgrade;
use App\Dictionary\MailPriority;
use App\Event\User\AmateurUpgradeCompleteEvent;
use App\Subscriber\AbstractMailSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class MailSubscriber extends AbstractMailSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
AmateurUpgradeCompleteEvent::class => [
['sendEmailAfterSuccessfulUpgrade', 3],
],
];
}
public function sendEmailAfterSuccessfulUpgrade(AmateurUpgradeCompleteEvent $event)
{
if ($event->isRejected()) {
return;
}
$account = $event->getAmateurUpgrade()->getAccount();
$mail = new \Swift_Message('Amateur-Upgrade abgeschlossen');
$mail->addTo($account->getEmail());
$mail->setFrom('amateursupport@frivol.com', 'Frivol.com Amateursupport');
$mail->setBody($this->getTwigEnvironment()->render('emails/amateur-welcome.html.twig', [
'member' => $account->getMember(),
'login' => $this->getAccountService()->getAutologinParameter($account),
]), 'text/html');
$this->getMailService()->queueMessage($mail, MailPriority::AMATEUR_UPGRADE_COMPLETE);
}
}