src/EventSubscriber/Security/PassportUpdateSubscriber.php line 24
<?php
namespace App\EventSubscriber\Security;
use App\Entity\Security\Token;
use App\Event\Security\PassportUpdateEvent;
use DateTime;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
final readonly class PassportUpdateSubscriber implements EventSubscriberInterface
{
public function __construct(
private EntityManagerInterface $entityManager,
) {}
public static function getSubscribedEvents(): array
{
return [
PassportUpdateEvent::IDENTIFIER => 'process'
];
}
public function process(PassportUpdateEvent $event): void
{
$passport = $event->getPassport();
// Only verify main passport
if (!$passport->isMain()) {
return;
}
$token = (new Token())
->setPassport($passport)
->setCreatedAt(new DateTime());
$this->entityManager->persist($token);
$this->entityManager->flush();
}
}