Skip to content
Snippets Groups Projects
Commit 073e0460 authored by Bastien's avatar Bastien
Browse files

commentaires fonction db

parent 1bb7e479
No related branches found
No related tags found
No related merge requests found
const db = require('../models/db');
/**
* Récupère les informations d'un film à partir de son identifiant unique (tconst).
*
* @param {string} movieId - L'identifiant unique du film (tconst).
* @returns {Promise<Object>} Une promesse qui se résout avec un objet contenant les informations du film, ou se rejette avec une erreur.
*/
exports.getMovieById = (movieId) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM Film WHERE tconst = ?',
......@@ -13,6 +19,14 @@ exports.getMovieById = (movieId) => {
})
};
/**
* Recherche des films par titre, en prenant en compte le titre principal et le titre en français.
*
* @param {string} searchTitle - Le titre à rechercher.
* @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations des films correspondant à la recherche.
* Chaque objet du tableau correspond à un film et a une structure similaire à celui renvoyé par getMovieById.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.searchMovieByTitle = (searchTitle) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM Film WHERE primaryTitle LIKE CONCAT("%",?,"%") OR titleFR LIKE CONCAT("%",?,"%")',
......@@ -27,6 +41,13 @@ exports.searchMovieByTitle = (searchTitle) => {
})
};
/**
* Récupère la distribution d'un film en fonction de son identifiant unique (tconst).
*
* @param {string} movieId - L'identifiant unique du film (tconst).
* @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations sur les rôles et les personnes associées au film.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getMovieCast = (movieId) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM roles r JOIN personne p on r.nconst=p.nconst WHERE r.tconst = ?',
......@@ -40,10 +61,18 @@ exports.getMovieCast = (movieId) => {
})
};
exports.getMoviesByStyle = (movieId) => {
/**
* Récupère les films associés à un genre particulier en fonction de l'identifiant unique du genre (idGen).
*
* @param {number} styleId - L'identifiant unique du genre (idGen).
* @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations sur les films associés au genre spécifié.
* Chaque objet du tableau a une structure similaire à celui renvoyé par getMovieById.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getMoviesByStyle = (styleId) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM genrefilm gf JOIN film f on gf.tconst = f.tconst WHERE f.tconst = ?',
[movieId], function (error, results, fields) {
db.query('SELECT * FROM genrefilm gf JOIN film f on gf.tconst = f.tconst WHERE f.idGen = ?',
[styleId], function (error, results, fields) {
if (error) {
return reject(error);
} else {
......@@ -53,6 +82,14 @@ exports.getMoviesByStyle = (movieId) => {
})
};
/**
* Récupère les genres associés à un film en fonction de son identifiant unique (tconst).
*
* @param {string} movieId - L'identifiant unique du film (tconst).
* @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations sur les genres associés au film.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getMovieStyles = (movieId) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM genrefilm gf JOIN genre g on gf.idGen = g.idGen WHERE gf.tconst = ?',
......@@ -66,6 +103,14 @@ exports.getMovieStyles = (movieId) => {
})
};
/**
* Récupère la note attribuée par un utilisateur à un film spécifique.
*
* @param {string} movieId - L'identifiant unique du film (tconst).
* @param {string} userId - L'identifiant unique de l'utilisateur (login).
* @returns {Promise<Object|null>} Une promesse qui se résout avec un objet contenant les informations sur la note attribuée par l'utilisateur au film.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getMovieUserRate = (movieId, userId) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM Filmvue WHERE login=? and tconst=?', [userId, movieId],
......@@ -74,12 +119,21 @@ exports.getMovieUserRate = (movieId, userId) => {
return reject(error);
}
else {
return resolve(results);
return resolve(results[0]);
}
})
})
};
/**
* Insère une nouvelle note attribuée par un utilisateur à un film spécifique.
*
* @param {string} movieId - L'identifiant unique du film (tconst).
* @param {string} userId - L'identifiant unique de l'utilisateur (login).
* @param {number} rate - La note attribuée par l'utilisateur au film.
* @returns {Promise<Object>} Une promesse qui se résout avec un objet contenant des informations sur l'opération d'insertion/mise à jour.
* La promesse se rejette avec une erreur si l'opération échoue.
*/
exports.insertMovieUserRate = (movieId, userId, rate) => {
return new Promise((resolve, reject) => {
db.query('INSERT INTO Filmvue VALUES (?,?,?)',
......@@ -95,6 +149,15 @@ exports.insertMovieUserRate = (movieId, userId, rate) => {
})
};
/**
* Met à jour la note attribuée par un utilisateur à un film spécifique dans la table "FilmVue".
*
* @param {string} movieId - L'identifiant unique du film (tconst).
* @param {string} userId - L'identifiant unique de l'utilisateur (login).
* @param {number} rate - La nouvelle note attribuée par l'utilisateur au film.
* @returns {Promise<Object>} Une promesse qui se résout avec un objet contenant des informations sur l'opération de mise à jour.
* La promesse se rejette avec une erreur si l'opération échoue.
*/
exports.updateMovieUserRate = (movieId, userId, rate) => {
return new Promise((resolve, reject) => {
db.query('UPDATE Filmvue SET note=? WHERE login=? and tconst=?', [rate, userId, movieId],
......@@ -109,6 +172,14 @@ exports.updateMovieUserRate = (movieId, userId, rate) => {
})
};
/**
* Supprime la note attribuée par un utilisateur à un film spécifique dans la table "FilmVue".
*
* @param {string} movieId - L'identifiant unique du film (tconst).
* @param {string} userId - L'identifiant unique de l'utilisateur (login).
* @returns {Promise<Object>} Une promesse qui se résout avec un objet contenant des informations sur l'opération de suppression.
* La promesse se rejette avec une erreur si l'opération échoue.
*/
exports.deleteMovieUserRate = (movieId, userId) => {
return new Promise((resolve, reject) => {
db.query('DELETE FROM Filmvue WHERE login=? and tconst=?', [userId, movieId],
......
const db = require('../models/db');
exports.getPersonInformations = (personId) => {
/**
* Récupère les informations sur une personne (acteur, réalisateur, etc.) en fonction de son identifiant unique.
*
* @param {string} personId - L'identifiant unique de la personne (nconst).
* @returns {Promise<Object|null>} Une promesse qui se résout avec un objet contenant les informations sur la personne.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getPersonById = (personId) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM Personne WHERE nconst = ?',
......@@ -15,6 +22,14 @@ exports.getPersonInformations = (personId) => {
})
};
/**
* Récupère les films associés à une personne (acteur, réalisateur, etc.) en fonction de son identifiant unique.
*
* @param {string} personId - L'identifiant unique de la personne (nconst).
* @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations sur les films associés à la personne.
* Chaque objet du tableau a une structure similaire à celui renvoyé par getPersonMovies.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getPersonMovies = (personId) => {
return new Promise((resolve, reject) => {
......
const db = require('../models/db');
/**
* Insère un nouvel utilisateur dans la table "Utilisateur".
*
* @param {string} username - Le nom d'utilisateur du nouvel utilisateur.
* @param {string} lastname - Le nom de famille du nouvel utilisateur.
* @param {string} firstname - Le prénom du nouvel utilisateur.
* @param {string} hash - Le hash du mot de passe du nouvel utilisateur.
* @param {string} birthdate - La date de naissance du nouvel utilisateur (au format "YYYY-MM-DD").
* @returns {Promise<Object>} Une promesse qui se résout avec un objet contenant des informations sur l'opération d'insertion.
* La promesse se rejette avec une erreur si l'opération échoue.
*/
exports.insertUser = (username, lastname, firstname, hash, birthdate) => {
return new Promise((resolve, reject) => {
db.query('INSERT INTO Utilisateur VALUES(?,?,?,?,?)',
......@@ -15,6 +26,13 @@ exports.insertUser = (username, lastname, firstname, hash, birthdate) => {
})
};
/**
* Récupère les informations d'un utilisateur en fonction de son nom d'utilisateur.
*
* @param {string} username - Le nom d'utilisateur de l'utilisateur dont les informations sont récupérées.
* @returns {Promise<Object|null>} Une promesse qui se résout avec un objet contenant les informations sur l'utilisateur.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getuserInformations = (username) => {
return new Promise((resolve, reject) => {
db.query('SELECT login,nom,prenom,dateNais FROM Utilisateur WHERE login = ?',
......@@ -29,6 +47,13 @@ exports.getuserInformations = (username) => {
})
};
/**
* Récupère le nom d'utilisateur et le hash du mot de passe d'un utilisateur en fonction de son nom d'utilisateur.
*
* @param {string} username - Le nom d'utilisateur de l'utilisateur dont le hash du mot de passe est récupéré.
* @returns {Promise<Object|null>} Une promesse qui se résout avec un objet contenant le nom d'utilisateur et le hash du mot de passe.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getuserPasswordHash = (username) => {
return new Promise((resolve, reject) => {
db.query('SELECT login, mdp FROM Utilisateur WHERE login=?',
......@@ -38,12 +63,20 @@ exports.getuserPasswordHash = (username) => {
return reject(error);
}
else {
return resolve(results);
return resolve(results[0]);
}
});
})
};
/**
* Récupère les films que l'utilisateur a déjà visionnés en fonction de son nom d'utilisateur.
*
* @param {string} username - Le nom d'utilisateur de l'utilisateur dont les films visionnés sont récupérés.
* @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations
* sur les films visionnés par l'utilisateur ainsi que la note qui leur est attribuée.
* La promesse se rejette avec une erreur si la requête échoue.
*/
exports.getUserSeenMovies = (username) => {
return new Promise((resolve, reject) => {
db.query('SELECT * FROM filmvue fv JOIN film f on fv.tconst = f.tconst WHERE fv.login = ?',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment