<?php
namespace App\EventSubscriber;
use App\Entity\SurveyResult;
use Doctrine\ORM\EntityManagerInterface;
use App\Event\SurveyResultPrePersistEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class SurveyResultSubscriber implements EventSubscriberInterface
{
public function __construct(
private EntityManagerInterface $_em,
) {
}
public static function getSubscribedEvents(): array
{
return [
SurveyResultPrePersistEvent::NAME => 'prePersist',
];
}
public function prePersist(SurveyResultPrePersistEvent $event)
{
$object = $event->getObject();
$user = $object->getUser();
$surveyQuestion = $object->getSurveyQuestion();
if ($user && $surveyQuestion) {
$this->_em->getRepository(SurveyResult::class)
->deleteByQuestionIds([$surveyQuestion->getId()], $user->getId());
}
}
}