<?php
namespace App\EventSubscriber;
use App\Events\UserMoveRankingHandsomeEvent;
use App\Repository\UserMoveRankingHandsomeRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class UserMoveRankingHandsomeSubscriber implements EventSubscriberInterface
{
private EntityManagerInterface $em;
private UserMoveRankingHandsomeRepository $er;
public function __construct(
EntityManagerInterface $em,
UserMoveRankingHandsomeRepository $er
) {
$this->em = $em;
$this->er = $er;
}
public static function getSubscribedEvents(): array
{
return [
UserMoveRankingHandsomeEvent::CREATED => 'onCreated',
];
}
public function onCreated(UserMoveRankingHandsomeEvent $event): void
{
$ranking = $event->getUserMoveRankingHandsome();
$user = $ranking->getUser();
$sum = $this->er->sumPointsBy($user);
$user->setNumPointsRankingHandsome($sum);
$this->em->persist($user);
$this->em->flush();
}
}