diff --git a/src/Controller/APISearchController.php b/src/Controller/APISearchController.php index 1e5c31d..360fb83 100644 --- a/src/Controller/APISearchController.php +++ b/src/Controller/APISearchController.php @@ -40,6 +40,18 @@ class APISearchController extends AbstractController } + #[Route('/untoggleLike/{idGoogle}', name: 'unlike', methods: "POST")] + public function removeFavoris (FavorisRepository $favorisRepository, String $idGoogle) + { + $favoris = new Favoris(); + $user = $this->getUser(); + $favoris->setUser($user); + $favoris->setIdGoogle($idGoogle); + + return $this->json($favorisRepository->removeFavoris($user, $idGoogle)); + + } + #[Route('/api/search', name: 'api_search')] public function index(Request $request): Response { diff --git a/src/Repository/FavorisRepository.php b/src/Repository/FavorisRepository.php index 9bd45ec..49a186b 100644 --- a/src/Repository/FavorisRepository.php +++ b/src/Repository/FavorisRepository.php @@ -28,6 +28,26 @@ class FavorisRepository extends ServiceEntityRepository $entityManager->flush(); } + public function removeFavoris($userId, $idGoogle): void + { + // Récupérer l'entity manager + $entityManager = $this->getEntityManager(); + + // Trouver le favoris de cet utilisateur pour le livre donné + $favoris = $this->findOneBy([ + 'user' => $userId, + 'id_google' => $idGoogle + ]); + + if (!$favoris) { + throw new \Exception($idGoogle . ' n\'est pas dans les favoris de cet utilisateur' . $userId); + } + + // Supprimer l'entité favoris de la base de données + $entityManager->remove($favoris); + $entityManager->flush(); + } + // /** // * @return Favoris[] Returns an array of Favoris objects // */ diff --git a/templates/apiSearch/index.html.twig b/templates/apiSearch/index.html.twig index 8a6368e..dd5e0e8 100644 --- a/templates/apiSearch/index.html.twig +++ b/templates/apiSearch/index.html.twig @@ -38,44 +38,72 @@ - - {{ dump(book.id) }} + - + @click="toggleLike('{{ book.id }} ', liked); liked = !liked"> + {% endif %} + + {% endfor %} + {% endblock %} \ No newline at end of file