From b7e08bb775ab435888304405104d9cbbc0679189 Mon Sep 17 00:00:00 2001 From: "mathis.moulin" Date: Wed, 11 Jun 2025 14:12:46 +0200 Subject: [PATCH] Oublie fichier --- public/js/home.js | 4 +++- src/Controller/EmojiController.php | 25 ++++++++++++++++++++++--- templates/home/index.html.twig | 4 +++- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/public/js/home.js b/public/js/home.js index d53561f..1600d74 100644 --- a/public/js/home.js +++ b/public/js/home.js @@ -51,9 +51,11 @@ document.addEventListener('DOMContentLoaded', () => { const id1 = selectedCards[0].dataset.id; const id2 = selectedCards[1].dataset.id; + const idUser = document.getElementById('user-data').dataset.userId; + if (type === 'reproduction') { try { - const response = await fetch(`/emojis/fusion/${encodeURIComponent(id1)}/${encodeURIComponent(id2)}`, { + const response = await fetch(`/emojis/fusion/${encodeURIComponent(idUser)}/${encodeURIComponent(id1)}/${encodeURIComponent(id2)}`, { method: 'GET', headers: { 'Accept': 'application/json' diff --git a/src/Controller/EmojiController.php b/src/Controller/EmojiController.php index a90c148..9de8891 100644 --- a/src/Controller/EmojiController.php +++ b/src/Controller/EmojiController.php @@ -13,6 +13,8 @@ use Symfony\Contracts\HttpClient\HttpClientInterface; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\Request; use App\Repository\EmojiRepository; +use App\Entity\UserEmojis; +use App\Repository\UserRepository; #[Route('/emojis', name: 'app_emoji_')] class EmojiController extends AbstractController @@ -20,12 +22,15 @@ class EmojiController extends AbstractController private RarityRepository $rarityRepository; private HttpClientInterface $httpClient; private EmojiService $emojiService; + private UserRepository $userRepository; - public function __construct(RarityRepository $rarityRepository, HttpClientInterface $httpClient, EmojiService $emojiService) + public function __construct(RarityRepository $rarityRepository, HttpClientInterface $httpClient, EmojiService $emojiService, + UserRepository $userRepository) { $this->rarityRepository = $rarityRepository; $this->httpClient = $httpClient; $this->emojiService = $emojiService; + $this->userRepository = $userRepository; } #[Route('/', name: 'emojis')] @@ -96,8 +101,15 @@ class EmojiController extends AbstractController return sprintf('%s%s_%s?size=%d', $baseUrl, $encodedEmoji1, $encodedEmoji2, $size); } - #[Route('/fusion/{emoji1_id}/{emoji2_id}', name: 'fusion', methods: ['GET'], requirements: ['emoji1_id' => '\d+', 'emoji2_id' => '\d+'])] - public function reproduceEmoji(int $emoji1_id, int $emoji2_id, EntityManagerInterface $entityManager, EmojiRepository $emojiRepository): JsonResponse { + #[Route('/fusion/{userId}/{emoji1_id}/{emoji2_id}', name: 'fusion', methods: ['GET'], requirements: ['userId' => '\d+', 'emoji1_id' => '\d+', 'emoji2_id' => '\d+'])] + public function reproduceEmoji(int $userId, int $emoji1_id, int $emoji2_id, EntityManagerInterface $entityManager, EmojiRepository $emojiRepository): JsonResponse { + + $user = $this->userRepository->findOneBy(['id' => $userId]); + + if (!$user) { + return new JsonResponse(['error' => 'User not found'], 404); + } + $emoji1 = $emojiRepository->find($emoji1_id); $emoji2 = $emojiRepository->find($emoji2_id); @@ -171,6 +183,13 @@ class EmojiController extends AbstractController $child->setParent2($emoji2); $entityManager->persist($child); + + $userEmoji = new UserEmojis(); + $userEmoji->setUser($user); + $userEmoji->setEmoji($child); + + $entityManager->persist($userEmoji); + $entityManager->flush(); return new JsonResponse([ diff --git a/templates/home/index.html.twig b/templates/home/index.html.twig index 1859464..099ad8e 100644 --- a/templates/home/index.html.twig +++ b/templates/home/index.html.twig @@ -14,6 +14,8 @@ + +
{% endif %}

🧬 Ma collection de créatures 🐾

@@ -173,5 +175,5 @@ {% endblock %} {% block javascripts %} - + {% endblock %} \ No newline at end of file