diff --git a/backend/src/controllers/movieController.js b/backend/src/controllers/movieController.js index 5270b3fe922df8d9fba7bceff5bd75f4f7c81997..3e03efb30c2b6e53b5af663b57c3f2323af2e06c 100644 --- a/backend/src/controllers/movieController.js +++ b/backend/src/controllers/movieController.js @@ -7,7 +7,7 @@ exports.getMovieInformations = async (req, res, next) => { let result = await movieServices.getMovieById(filmId); res.status(200).json(result); } catch (error) { - res.status(500).json({ error : error.toString()}); + res.status(500).json({ error: error.toString() }); } }; @@ -18,7 +18,7 @@ exports.searchMovie = async (req, res, next) => { let result = await movieServices.searchMovie(search); res.status(200).json(result); } catch (error) { - res.status(500).json({ error : error.toString()}); + res.status(500).json({ error: error.toString() }); } }; @@ -42,7 +42,7 @@ exports.getMovieCast = async (req, res, next) => { let result = await movieServices.getMovieCast(filmId); res.status(200).json(result); } catch (error) { - res.status(500).json({ error : error.toString()}); + res.status(500).json({ error: error.toString() }); } }; @@ -51,37 +51,46 @@ exports.getMovieNote = async (req, res, next) => { let username = req.session.username; try { - let result = await movieServices.getMovieUserRate(filmId,username); + let result = await movieServices.getMovieUserRate(filmId, username); res.status(200).json(result); } catch (error) { - res.status(500).json({ error : error.toString()}); + res.status(500).json({ error: error.toString() }); } }; -exports.addMovieNote = async (req,res,next) => { +exports.addMovieNote = async (req, res, next) => { let filmId = req.query.id; let username = req.session.username; let note = req.query.note; try { - let result = await movieServices.insertOrUpdateMovieUserRate(filmId,username,note); + let result = await movieServices.insertOrUpdateMovieUserRate(filmId, username, note); res.status(200).json({ message: 'Note ajoutée ou modifiée' }); } catch (error) { - res.status(500).json({ error : error.toString()}); + res.status(500).json({ error: error.toString() }); } -} +}; -exports.deleteMovieNote = async (req,res,next) => { +exports.deleteMovieNote = async (req, res, next) => { let filmId = req.params.id; let username = req.session.username; try { - let result = await movieServices.deleteMovieUserRate(filmId,username); + let result = await movieServices.deleteMovieUserRate(filmId, username); res.status(200).json({ message: 'Note supprimée' }); } catch (error) { - res.status(500).json({ error : error.toString()}); + res.status(500).json({ error: error.toString() }); } -} +}; + +exports.getAllStyles = async (req, res, next) => { + try { + let result = await movieServices.getAllStyles(); + res.status(200).json(result); + } catch (error) { + res.status(500).json({ error: error.toString() }); + } +}; diff --git a/backend/src/models/movieDb.js b/backend/src/models/movieDb.js index c6b2d7b89f2537216d9efe33b3a8a32b8b0ae47a..36ee6da91c57420b4d34cba57ebf0c167af6ed5c 100644 --- a/backend/src/models/movieDb.js +++ b/backend/src/models/movieDb.js @@ -194,3 +194,22 @@ exports.deleteMovieUserRate = (movieId, userId) => { }) }; +/** + * Récupère tous les genres depuis la base de données. + * + * @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations sur tous les genres. + * La promesse se rejette avec une erreur si l'opération échoue. + */ +exports.getAllStyles = () => { + return new Promise((resolve, reject) => { + db.query('SELECT * FROM genre', + function (error, results, fields) { + if (error) { + return reject(error); + } + else { + return resolve(results); + } + }) + }) +}; \ No newline at end of file diff --git a/backend/src/routes/movies.js b/backend/src/routes/movies.js index 1ed6fff0d29266f943e643d6ac79e8fe134a6137..b2d65f23109b829dd2af35000351bd96a83f78a6 100644 --- a/backend/src/routes/movies.js +++ b/backend/src/routes/movies.js @@ -10,6 +10,7 @@ router.get('/cast/:id(tt\\d+)',controller.getMovieCast); router.get('/addmovienote',auth.auth,controller.addMovieNote); router.get('/getMovieNote',auth.auth,controller.getMovieNote); router.delete('/:id(tt\\d+)',controller.deleteMovieNote); +router.get('/getAllStyles',controller.getAllStyles); module.exports = router; \ No newline at end of file diff --git a/backend/src/services/movies.js b/backend/src/services/movies.js index dc283446789b0638d5344dc616f09c4ae57d4af6..1f72263ed8fa64740160f544732c1ba7552d0aa6 100644 --- a/backend/src/services/movies.js +++ b/backend/src/services/movies.js @@ -130,4 +130,18 @@ exports.getMovieStyles = async (movieId) => { } catch (error) { throw new Error(error); } +} + +/** + * Récupère tous les genres depuis la base de données. + * + * @returns {Promise<Array<Object>>} Une promesse qui se résout avec un tableau d'objets contenant les informations sur tous les genres. + * La promesse se rejette avec une erreur si l'opération échoue. + */ +exports.getAllStyles = async () => { + try { + return await moviesDb.getAllStyles(); + } catch (error) { + throw new Error(error); + } } \ No newline at end of file