From 41649579baa838e1ca7b29c52dd891537d82052d Mon Sep 17 00:00:00 2001 From: Baptiste Leduc Date: Wed, 15 May 2024 09:50:46 +0200 Subject: [PATCH] Clear after any EM flush --- app/src/Command/EventCommand.php | 1 + app/src/Discord/Command/CreateTransportCommand.php | 3 ++- app/src/Discord/Command/DropTravelerFromTransportCommand.php | 1 + app/src/Discord/Command/JoinTransportCommand.php | 1 + app/src/Discord/Command/QuitTransportCommand.php | 1 + app/src/Discord/Command/RemoveTransportCommand.php | 1 + app/src/Entity/Transport.php | 2 +- app/src/Repository/User/FindOrCreateUser.php | 1 + 8 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/Command/EventCommand.php b/app/src/Command/EventCommand.php index e316454..3bb5d3c 100644 --- a/app/src/Command/EventCommand.php +++ b/app/src/Command/EventCommand.php @@ -106,6 +106,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int ); $this->entityManager->persist($event); $this->entityManager->flush(); + $this->entityManager->clear(); $io->success($this->translator->trans('command.create_event.created', ['name' => $eventName])); return Command::SUCCESS; diff --git a/app/src/Discord/Command/CreateTransportCommand.php b/app/src/Discord/Command/CreateTransportCommand.php index ea5c79c..54fbfc4 100644 --- a/app/src/Discord/Command/CreateTransportCommand.php +++ b/app/src/Discord/Command/CreateTransportCommand.php @@ -137,7 +137,7 @@ public function callback(Discord $discord): void private function createTransport(Interaction $interaction, Event $event, User $user, int $seats, string $postalCode, \DateTimeImmutable $when, Direction $direction): void { if (!$this->checkTransportDateIsValid($when, $event, $direction)) { - $interaction->updateMessage(MessageBuilder::new()->setContent($this->translator->trans('discord.create_transport.error.too_far_date', ['date_start' => $event->startAt->format('j F Y'), 'date_end' => $event->finishAt->format('j F Y')])), true); + $interaction->updateMessage(MessageBuilder::new()->setContent($this->translator->trans('discord.create_transport.error.too_far_date', ['date_start' => $event->startAt->format('j F Y'), 'date_end' => $event->finishAt->format('j F Y')]))); return; } @@ -154,6 +154,7 @@ private function createTransport(Interaction $interaction, Event $event, User $u $this->entityManager->persist($transport); $this->entityManager->persist($traveler); $this->entityManager->flush(); + $this->entityManager->clear(); $interaction->updateMessage(MessageBuilder::new()->setContent($this->translator->trans('discord.create_transport.created', ['transport_id' => $transport->shortId]))->setComponents([])->setEmbeds([])); } diff --git a/app/src/Discord/Command/DropTravelerFromTransportCommand.php b/app/src/Discord/Command/DropTravelerFromTransportCommand.php index 2132b70..ada50e5 100644 --- a/app/src/Discord/Command/DropTravelerFromTransportCommand.php +++ b/app/src/Discord/Command/DropTravelerFromTransportCommand.php @@ -134,6 +134,7 @@ private function validateTravelerToDrop(Discord $discord, Interaction $interacti $transport = $traveler->transport; $this->entityManager->remove($traveler); $this->entityManager->flush(); + $this->entityManager->clear(); $interaction->updateMessage(MessageBuilder::new()->setContent($this->translator->trans('discord.drop_traveler_from_transport.confirm_label'))->setComponents([])->setEmbeds([])); $discord->users->fetch((string) $travelerUser->userId)->then(function (User $user) use ($transport) { diff --git a/app/src/Discord/Command/JoinTransportCommand.php b/app/src/Discord/Command/JoinTransportCommand.php index 56be41e..8fddf31 100644 --- a/app/src/Discord/Command/JoinTransportCommand.php +++ b/app/src/Discord/Command/JoinTransportCommand.php @@ -97,6 +97,7 @@ public function callback(Discord $discord): void $traveler = new Traveler($transport, $user, TravelerType::PASSENGER); $this->entityManager->persist($traveler); $this->entityManager->flush(); + $this->entityManager->clear(); $transportDriver = $transport->getDriver(); $interaction->respondWithMessage(MessageBuilder::new()->setContent($this->translator->trans('discord.join_transport.validation_direct', ['transport_id' => $transport->shortId])), true); diff --git a/app/src/Discord/Command/QuitTransportCommand.php b/app/src/Discord/Command/QuitTransportCommand.php index 2218493..bb2f07d 100644 --- a/app/src/Discord/Command/QuitTransportCommand.php +++ b/app/src/Discord/Command/QuitTransportCommand.php @@ -103,6 +103,7 @@ private function validateRemoval(Discord $discord, Interaction $interaction, Tra $transport = $traveler->transport; $this->entityManager->remove($traveler); $this->entityManager->flush(); + $this->entityManager->clear(); $interaction->updateMessage(MessageBuilder::new()->setContent($this->translator->trans('discord.quit_transport.confirm_label'))->setComponents([])->setEmbeds([])); $discord->users->fetch((string) $transport->getDriver()->userId)->then(function (User $user) use ($transport) { diff --git a/app/src/Discord/Command/RemoveTransportCommand.php b/app/src/Discord/Command/RemoveTransportCommand.php index f0a93bd..92485fb 100644 --- a/app/src/Discord/Command/RemoveTransportCommand.php +++ b/app/src/Discord/Command/RemoveTransportCommand.php @@ -113,6 +113,7 @@ private function validateRemoval(Discord $discord, Interaction $interaction, Tra ->then(function () use ($transport) { $this->entityManager->remove($transport); $this->entityManager->flush(); + $this->entityManager->clear(); }); }, $discord)) ->addComponent(Button::new(Button::STYLE_SECONDARY)->setLabel($this->translator->trans('discord.remove_transport.button_cancel'))->setEmoji('❌')->setListener(function (Interaction $interaction): void { diff --git a/app/src/Entity/Transport.php b/app/src/Entity/Transport.php index d4f96e1..94acac3 100644 --- a/app/src/Entity/Transport.php +++ b/app/src/Entity/Transport.php @@ -28,7 +28,7 @@ class Transport public string $shortId; /** @var Collection */ - #[ORM\OneToMany(targetEntity: Traveler::class, mappedBy: 'transport', cascade: ['remove'], fetch: 'EAGER')] + #[ORM\OneToMany(targetEntity: Traveler::class, mappedBy: 'transport', cascade: ['remove'])] #[ORM\JoinColumn(nullable: false)] public Collection $travelers; diff --git a/app/src/Repository/User/FindOrCreateUser.php b/app/src/Repository/User/FindOrCreateUser.php index 00d1616..1076f44 100644 --- a/app/src/Repository/User/FindOrCreateUser.php +++ b/app/src/Repository/User/FindOrCreateUser.php @@ -24,6 +24,7 @@ public function __invoke(int $userId): User $user = new User($userId); $this->entityManager->persist($user); $this->entityManager->flush(); + $this->entityManager->clear(); } return $user;