@ -13,6 +13,8 @@ use Symfony\Contracts\HttpClient\HttpClientInterface;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Request;
use App\Repository\EmojiRepository;
use App\Repository\EmojiRepository;
use App\Entity\UserEmojis;
use App\Repository\UserRepository;
#[Route('/emojis', name: 'app_emoji_')]
#[Route('/emojis', name: 'app_emoji_')]
class EmojiController extends AbstractController
class EmojiController extends AbstractController
@ -20,12 +22,15 @@ class EmojiController extends AbstractController
private RarityRepository $rarityRepository;
private RarityRepository $rarityRepository;
private HttpClientInterface $httpClient;
private HttpClientInterface $httpClient;
private EmojiService $emojiService;
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->rarityRepository = $rarityRepository;
$this->httpClient = $httpClient;
$this->httpClient = $httpClient;
$this->emojiService = $emojiService;
$this->emojiService = $emojiService;
$this->userRepository = $userRepository;
}
}
#[Route('/', name: 'emojis')]
#[Route('/', name: 'emojis')]
@ -96,8 +101,15 @@ class EmojiController extends AbstractController
return sprintf('%s%s_%s?size=%d', $baseUrl, $encodedEmoji1, $encodedEmoji2, $size);
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+'])]
#[Route('/fusion/{userId}/{emoji1_id}/{emoji2_id}', name: 'fusion', methods: ['GET'], requirements: ['userId' => '\d+', 'emoji1_id' => '\d+', 'emoji2_id' => '\d+'])]
public function reproduceEmoji(int $emoji1_id, int $emoji2_id, EntityManagerInterface $entityManager, EmojiRepository $emojiRepository): JsonResponse {
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);
$emoji1 = $emojiRepository->find($emoji1_id);
$emoji2 = $emojiRepository->find($emoji2_id);
$emoji2 = $emojiRepository->find($emoji2_id);
@ -171,6 +183,13 @@ class EmojiController extends AbstractController
$child->setParent2($emoji2);
$child->setParent2($emoji2);
$entityManager->persist($child);
$entityManager->persist($child);
$userEmoji = new UserEmojis();
$userEmoji->setUser($user);
$userEmoji->setEmoji($child);
$entityManager->persist($userEmoji);
$entityManager->flush();
$entityManager->flush();
return new JsonResponse([
return new JsonResponse([