From 7267e0d074609c75b1096b83d4b6918b9316ab68 Mon Sep 17 00:00:00 2001 From: sacha <sachaterrasson@gmail.com> Date: Thu, 2 Nov 2023 13:33:37 +0100 Subject: [PATCH] debut recommendation --- backend/src/class_film.js | 8 +++++++ backend/src/class_user.js | 12 ++++++++++ backend/src/controllers/recommendation.js | 29 ++++++++++++++++++++--- backend/src/controllers/userController.js | 26 ++++++++++++++++++++ 4 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 backend/src/class_film.js create mode 100644 backend/src/class_user.js diff --git a/backend/src/class_film.js b/backend/src/class_film.js new file mode 100644 index 0000000..29be0d2 --- /dev/null +++ b/backend/src/class_film.js @@ -0,0 +1,8 @@ +// jsp ou le ranger mdr +class Movie{ + constructor(name, author, note){ + this.name = name; + this.author = author; + this.note = note; + } +} \ No newline at end of file diff --git a/backend/src/class_user.js b/backend/src/class_user.js new file mode 100644 index 0000000..8767afb --- /dev/null +++ b/backend/src/class_user.js @@ -0,0 +1,12 @@ +// jsp ou le ranger mdr +class User{ + constructor(login){ + this.login = login; + } + + addMovies(movieSeen){ + this.movies.append(movieSeen); + } + + +} \ No newline at end of file diff --git a/backend/src/controllers/recommendation.js b/backend/src/controllers/recommendation.js index 6a008ad..f1e8e6d 100644 --- a/backend/src/controllers/recommendation.js +++ b/backend/src/controllers/recommendation.js @@ -1,4 +1,27 @@ -//1) recuperer 3 films les mieux notés -//2) recuperer 3 films les mieux notés du meilleur auteur de l'utilisateur -//3) recuperer 3 films les mieux notés du meilleur style de l'utilisateur +/** + * Cette fonction selectionne les 3 meilleurs movies d'une liste de film. + * + * @param {Movie[]} movies - Liste de film. + * @returns {Movie[]} - La liste des 3 films. + */ + +function top3(movies) { + let highestNotes = [movies[0], movies[0], movies[0]]; + for (let i = 1; i < movies.length; i++) { + if(movies[i].note >= highestNotes[0].note){ + highestNotes[2] = highestNotes[1]; + highestNotes[1] = highestNotes[0]; + highestNotes[0] = movies[i]; + }else if(movies[i].note >= highestNotes[1].note){ + highestNotes[2] = highestNotes[1]; + highestNotes[1] = movies[i]; + }else if(movies[i].note >= highestNotes[2].note){ + highestNotes[2] = movies[i]; + } + + } + return highestNotes; +} + + diff --git a/backend/src/controllers/userController.js b/backend/src/controllers/userController.js index 1552b7f..4f09706 100644 --- a/backend/src/controllers/userController.js +++ b/backend/src/controllers/userController.js @@ -75,3 +75,29 @@ exports.login = (req, res, next) => { }; + +/** + * Cette fonction Récupere les films d'un auteur. + * + * @param {string} author - L'auteur cherché. + * @param {boolean} isOrdered - Faut il trier la liste. + * @param {int} length - La taille de la liste (-1 = max). + * @returns {Film[]} - La liste des films en type Film. + */ + +function getFilmsByAuthor(author, isOrdered = false, length = -1){ + return true; +} + +/** + * Cette fonction Récupere les films d'un Style. + * + * @param {string} style - Le style cherché. + * @param {boolean} isOrdered - Faut il trier la liste. + * @param {int} length - La taille de la liste (-1 = max). + * @returns {Film[]} - La liste des films en type Film. + */ + +function getFilmsByStyle(style, isOrdered = false, length = -1){ + return true; +} \ No newline at end of file -- GitLab