googleBooksService = $googleBooksService; } public function search(Request $request): array { // Récupérer le paramètre "q" depuis la requête $query = $request->query->get('q'); // Appeler le service GoogleBooks avec la requête return $this->googleBooksService->searchBooks($query); } #[Route('/toggleLike/{idGoogle}', name: 'like', methods: "POST")] public function addFavoris(FavorisRepository $favorisRepository, String $idGoogle) { $favoris = new Favoris(); $user = $this->getUser(); $favoris->setUser($user); $favoris->setIdGoogle($idGoogle); return $this->json(['success' => true, 'message' => 'Favoris ajouté']); } #[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); $favorisRepository->removeFavoris($user, $idGoogle); return $this->json(['success' => true, 'message' => 'Favoris supprimé']); } #[Route('/api/search', name: 'api_search')] public function index(Request $request, FavorisRepository $favorisRepository): Response { ini_set('memory_limit', '512M'); // Appeler la méthode search et récupérer les résultats $datas = $this->search($request); $query = $request->query->get('q'); $user = $this->getUser(); $favoris = $favorisRepository->getFavorisByUser($user); // Afficher les résultats dans le template return $this->render('apiSearch/index.html.twig', [ 'controller_name' => 'APISearchController', 'datas' => $datas, 'query' => $query, 'favoris' => $favoris, ]); } }