- Favoris qui s'affiche dans les recherches

This commit is contained in:
2025-01-29 18:58:04 +01:00
parent 2e3783399e
commit 5ad47bb626
3 changed files with 157 additions and 135 deletions

View File

@ -29,41 +29,47 @@ class APISearchController extends AbstractController
}
#[Route('/toggleLike/{idGoogle}', name: 'like', methods: "POST")]
public function addFavoris (FavorisRepository $favorisRepository, String $idGoogle)
public function addFavoris(FavorisRepository $favorisRepository, String $idGoogle)
{
$favoris = new Favoris();
$user = $this->getUser();
$favoris->setUser($user);
$favoris->setIdGoogle($idGoogle);
return $this->json($favorisRepository->addFavoris($favoris));
return $this->json(['success' => true, 'message' => 'Favoris ajouté']);
}
#[Route('/untoggleLike/{idGoogle}', name: 'unlike', methods: "POST")]
public function removeFavoris (FavorisRepository $favorisRepository, String $idGoogle)
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($favorisRepository->removeFavoris($user, $idGoogle));
return $this->json(['success' => true, 'message' => 'Favoris supprimé']);
}
#[Route('/api/search', name: 'api_search')]
public function index(Request $request): Response
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,
]);
}
}

View File

@ -43,33 +43,42 @@ class FavorisRepository extends ServiceEntityRepository
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();
// Supprimer l'entité favoris de la base de données
$entityManager->remove($favoris);
$entityManager->flush();
}
// /**
// * @return Favoris[] Returns an array of Favoris objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('f')
// ->andWhere('f.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('f.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
public function getFavorisByUser($userId): array
{
return $this->createQueryBuilder('f')
->andWhere('f.user = :userId')
->setParameter('userId', $userId)
->getQuery()
->getResult();
}
// public function findOneBySomeField($value): ?Favoris
// {
// return $this->createQueryBuilder('f')
// ->andWhere('f.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
// /**
// * @return Favoris[] Returns an array of Favoris objects
// */
// public function findByExampleField($value): array
// {
// return $this->createQueryBuilder('f')
// ->andWhere('f.exampleField = :val')
// ->setParameter('val', $value)
// ->orderBy('f.id', 'ASC')
// ->setMaxResults(10)
// ->getQuery()
// ->getResult()
// ;
// }
// public function findOneBySomeField($value): ?Favoris
// {
// return $this->createQueryBuilder('f')
// ->andWhere('f.exampleField = :val')
// ->setParameter('val', $value)
// ->getQuery()
// ->getOneOrNullResult()
// ;
// }
}