Corriger la logique de filtrage des DLCs dans l'endpoint `/search_game`
Description :
L'endpoint /search_game
actuel ne peut pas différencier correctement les jeux autonomes des DLCs, car les deux peuvent avoir des tableaux dlcs vides dans la base de données. Cela entraîne un comportement incorrect lors de l'utilisation du filtre "Inclure les DLCs".
Étapes pour reproduire :
- Décochez la case "Inclure les DLCs" dans le filtre du frontend.
- Observez que les DLCs sont toujours inclus dans les résultats.
Solution proposée :
Ajouter la propriété manquante: dlcs
app.get("/search_game", async (req, res) => {
const {
title,
page_number = 1,
genres,
platforms,
game_modes,
player_perspectives,
game_engines,
themes,
dlcs
} = req.query;
Modifier la logique de la requête :
- Lorsque
dlcs
=true
: Inclure les jeux autonomes et les DLCs. - Lorsque
dlcs
=false
: Exclure tous les DLCs en s'assurant que le titre du jeu n'est pas dans un tableau dlcs ($nin
).
if (dlcs === "false") {
const allDLCs = await Game.distinct("dlcs");
query.title = { $nin: allDLCs }; // Exclude all titles that are DLCs
}