diff --git a/backend/src/models/movieDb.js b/backend/src/models/movieDb.js index 36ee6da91c57420b4d34cba57ebf0c167af6ed5c..c6ad0c33e380683761e94d0144f6ef75edddc73b 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 21a64f65928274aa79df1898f67b69960126d0b3..ee738726e032835cb10ba411d32068f54fba6b1c 100644 --- a/backend/src/models/userDb.js +++ b/backend/src/models/userDb.js @@ -88,6 +88,7 @@ exports.getUserSeenMovies = (username) => { } }) }) + };