<?php
namespace App\EventListener;
use App\Service\MailerService;
use ApiPlatform\Core\EventListener\EventPriorities;
use App\Entity\User;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\ViewEvent;
use Symfony\Component\HttpKernel\KernelEvents;
// use App\Security\EmailVerifier;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Mime\Address;
class UserCreatedListener implements EventSubscriberInterface
{
private $mailerService;
// private EmailVerifier $emailVerifier;
public function __construct(MailerService $mailerService/*, EmailVerifier $emailVerifier*/)
{
$this->mailerService = $mailerService;
// $this->emailVerifier = $emailVerifier;
}
public static function getSubscribedEvents()
{
return [
KernelEvents::VIEW => ['sendRegistrationEmail', EventPriorities::POST_WRITE],
];
}
public function sendRegistrationEmail(ViewEvent $event)
{
$user = $event->getControllerResult();
$method = $event->getRequest()->getMethod();
if (!$user instanceof User || Request::METHOD_POST !== $method) {
return;
}
// $this->emailVerifier->sendEmailConfirmation('app_verify_email', $user,
// (new TemplatedEmail())
// ->from(new Address('innetiad6@gmail.com', 'AcmeMailBot'))
// ->to($user->getEmail())
// ->subject('Please Confirm your Email')
// ->htmlTemplate('registration/confirmation_email.html.twig')
// );
// $userEmail = $user->getEmail(); // Отримати email з вашого об'єкта користувача
// $subject = 'Реєстрація пройшла успішно';
// $body = 'Вітаємо, ви були успішно зареєстровані! Ваш логін: ' . $user->getUsername();
// $this->mailerService->sendRegistrationEmail($userEmail, $subject, $body);
}
}