From 2431e9282bc757b0b3729fc0d53d5806b2f067c0 Mon Sep 17 00:00:00 2001 From: Dimitri Gritsajuk Date: Mon, 10 Feb 2025 18:33:17 +0100 Subject: [PATCH] [Event] persist live view action --- src/Controller/Renaissance/LiveStreamController.php | 5 ++++- src/History/UserActionHistoryHandler.php | 13 +++++++++++++ src/History/UserActionHistoryTypeEnum.php | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Controller/Renaissance/LiveStreamController.php b/src/Controller/Renaissance/LiveStreamController.php index c3a2dcd6a7..92930046ea 100644 --- a/src/Controller/Renaissance/LiveStreamController.php +++ b/src/Controller/Renaissance/LiveStreamController.php @@ -5,6 +5,7 @@ use App\Entity\Adherent; use App\Entity\Event\Event; use App\Entity\LiveStream; +use App\History\UserActionHistoryHandler; use App\OAuth\OAuthAuthenticator; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -32,7 +33,7 @@ public function liveStreamAction(LiveStream $liveStream, UserInterface $user): R } #[Route('/live-event/{slug}', name: 'app_live_event', methods: ['GET'])] - public function liveEventAction(Request $request, OAuthAuthenticator $authAuthenticator, Event $event): Response + public function liveEventAction(Request $request, UserActionHistoryHandler $userActionHistoryHandler, OAuthAuthenticator $authAuthenticator, Event $event): Response { if (!($user = $this->getUser()) instanceof Adherent) { $newRequest = $request->duplicate([]); @@ -48,6 +49,8 @@ public function liveEventAction(Request $request, OAuthAuthenticator $authAuthen return $this->redirectToRoute('app_adhesion_index'); } + $userActionHistoryHandler->createLiveParticipation($user, $event); + return $this->render('renaissance/live_event.html.twig', [ 'event' => $event, ]); diff --git a/src/History/UserActionHistoryHandler.php b/src/History/UserActionHistoryHandler.php index dc2c910cd5..744a89fc37 100644 --- a/src/History/UserActionHistoryHandler.php +++ b/src/History/UserActionHistoryHandler.php @@ -4,6 +4,7 @@ use App\Entity\Adherent; use App\Entity\Administrator; +use App\Entity\Event\Event; use App\Entity\Geo\Zone; use App\History\Command\UserActionHistoryCommand; use Symfony\Bundle\SecurityBundle\Security; @@ -128,6 +129,18 @@ public function createRoleRemove(Adherent $adherent, string $role, array $zones, ); } + public function createLiveParticipation(Adherent $adherent, Event $event): void + { + $this->dispatch( + $adherent, + UserActionHistoryTypeEnum::LIVE_VIEW, + [ + 'event' => $event->getName(), + 'event_id' => $event->getId(), + ] + ); + } + private function getImpersonator(): ?Administrator { $token = $this->security->getToken(); diff --git a/src/History/UserActionHistoryTypeEnum.php b/src/History/UserActionHistoryTypeEnum.php index 263a40334c..04fd0fb809 100644 --- a/src/History/UserActionHistoryTypeEnum.php +++ b/src/History/UserActionHistoryTypeEnum.php @@ -15,4 +15,5 @@ enum UserActionHistoryTypeEnum: string case EMAIL_CHANGE_VALIDATE = 'email_change_validate'; case ROLE_ADD = 'role_add'; case ROLE_REMOVE = 'role_remove'; + case LIVE_VIEW = 'live_view'; }