Skip to content

Commit

Permalink
Debug QuitTransport
Browse files Browse the repository at this point in the history
  • Loading branch information
Korbeil committed May 17, 2024
1 parent f68e83d commit 1c91c3a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 3 deletions.
7 changes: 6 additions & 1 deletion app/src/Discord/Command/Helper/UserHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,22 @@
namespace Afup\Hermes\Discord\Command\Helper;

use Afup\Hermes\Entity\User;
use Afup\Hermes\Repository\User\FindOrCreateUserDebug;
use Discord\Builders\MessageBuilder;
use Discord\Parts\Interactions\Interaction;
use Discord\Parts\User\User as DiscordUser;

trait UserHelper
{
public function getUserForInteraction(Interaction $interaction): User
{
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('AAAA'));
/** @var DiscordUser $discordUser */
$discordUser = $interaction->user;
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('BBBB'));
$userId = (int) $discordUser->id;
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('CCCC'));

return ($this->findOrCreateUser)($userId);
return ($this->findOrCreateUser)($userId, $interaction);
}
}
12 changes: 11 additions & 1 deletion app/src/Discord/Command/QuitTransportCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use Afup\Hermes\Repository\Event\FindEventByChannel;
use Afup\Hermes\Repository\Traveler\GetTravelerListForUserAndEvent;
use Afup\Hermes\Repository\User\FindOrCreateUser;
use Afup\Hermes\Repository\User\FindOrCreateUserDebug;
use Discord\Builders\CommandBuilder;
use Discord\Builders\Components\ActionRow;
use Discord\Builders\Components\Button;
Expand Down Expand Up @@ -59,15 +60,22 @@ public function callback(Discord $discord): void
return;
}

$user = $this->getUserForInteraction($interaction);
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('A'));
try {
$user = $this->getUserForInteraction($interaction);
} catch (\Throwable $e) {
$interaction->channel->sendMessage(MessageBuilder::new()->setContent($e->getMessage()));
}

$interaction->channel->sendMessage(MessageBuilder::new()->setContent('B'));
$travelers = ($this->getTravelerListForUserAndEvent)($user, $event, TravelerType::PASSENGER);
if (0 === \count($travelers)) {
$interaction->respondWithMessage(MessageBuilder::new()->setContent($this->translator->trans('discord.quit_transport.error.no_transport')), true);

return;
}

$interaction->channel->sendMessage(MessageBuilder::new()->setContent('C'));
if (1 === \count($travelers)) {
$this->validateRemoval($discord, $interaction, $travelers[0]);
} else {
Expand All @@ -89,13 +97,15 @@ public function callback(Discord $discord): void
$message->addComponent($chooseAction);
}

$interaction->channel->sendMessage(MessageBuilder::new()->setContent('D'));
$interaction->respondWithMessage($message, true);
}
});
}

private function validateRemoval(Discord $discord, Interaction $interaction, Traveler $traveler): void
{
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('E'));
$embed = new Embed($discord);
$embed->setTitle($this->translator->trans('discord.quit_transport.confirmation'));

Expand Down
8 changes: 7 additions & 1 deletion app/src/Repository/User/FindOrCreateUser.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
namespace Afup\Hermes\Repository\User;

use Afup\Hermes\Entity\User;
use Discord\Builders\MessageBuilder;
use Discord\Parts\Interactions\Interaction;
use Doctrine\ORM\EntityManagerInterface;

final readonly class FindOrCreateUser
Expand All @@ -14,17 +16,21 @@ public function __construct(
) {
}

public function __invoke(int $userId): User
public function __invoke(int $userId, Interaction $interaction): User
{
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('Début'));
$userRepository = $this->entityManager->getRepository(User::class);
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('Repository'));

/** @var User|null $user */
$user = $userRepository->findOneBy(['userId' => $userId]);
$interaction->channel->sendMessage(MessageBuilder::new()->setContent($user instanceof User ? 'OK' : 'KO'));
if (null === $user) {
$user = new User($userId);
$this->entityManager->persist($user);
$this->entityManager->flush();
}
$interaction->channel->sendMessage(MessageBuilder::new()->setContent('return'));

return $user;
}
Expand Down

0 comments on commit 1c91c3a

Please sign in to comment.