From d34776a43cb6243a3a3cc555d997607208bcab9a Mon Sep 17 00:00:00 2001 From: Bastien <bastien.mallet1@gmail.com> Date: Mon, 8 Jan 2024 16:40:34 +0100 Subject: [PATCH] recherche criteres --- backend/src/models/movieDb.js | 30 ++++++++++++++++++++++++++++++ backend/src/models/userDb.js | 1 + 2 files changed, 31 insertions(+) diff --git a/backend/src/models/movieDb.js b/backend/src/models/movieDb.js index 36ee6da..c6ad0c3 100644 --- a/backend/src/models/movieDb.js +++ b/backend/src/models/movieDb.js @@ -41,6 +41,36 @@ exports.searchMovieByTitle = (searchTitle) => { }) }; +exports.searchMovie = (title,dateMin,dateMax,genres,personnes,order,croissant) => { + return new Promise((resolve,reject) => { + let query = 'SELECT * FROM Film WHERE 1=1'; + + if (title) { + query += ' AND primaryTitle LIKE CONCAT("%", ?, "%") OR titleFR LIKE CONCAT("%", ?, "%")'; + } + + if (dateMin) { + query += ' AND startYear >= ?'; + } + + if (dateMax) { + query += ' AND startYear <= ?'; + } + + if (genres) { + query += ' AND EXISTS (SELECT 1 FROM genreFilm gf WHERE gf.tconst = Film.tconst AND gf.idGen IN (?) )'; + } + if (personnes) { + query += ' AND EXISTS (SELECT 1 FROM genreFilm gf WHERE gf.tconst = Film.tconst AND gf.idGen IN (?) )'; + } + + if (!croissant) { + query +='DESC'; + } + }) +} + + /** * Récupère la distribution d'un film en fonction de son identifiant unique (tconst). * diff --git a/backend/src/models/userDb.js b/backend/src/models/userDb.js index 21a64f6..ee73872 100644 --- a/backend/src/models/userDb.js +++ b/backend/src/models/userDb.js @@ -88,6 +88,7 @@ exports.getUserSeenMovies = (username) => { } }) }) + }; -- GitLab