Sora952

Get detail wild quest !

May 30th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.   Express 6 - GET en détail
  3.   Etudiant : Christophe Crébier, Wild Code School Lyon 2020.03
  4.  */
  5.  
  6. const express = require('express');
  7. const app = express();
  8. const connection = require('./conf');
  9. const port = 3000;
  10.  
  11. // écoute de l'url "/api/movies" => GET ALL
  12. app.get('/api/movies', (req, res) => {
  13.   let sql = 'SELECT * FROM movie';
  14.   const sqlValues = [];
  15.  
  16.   // Si le paramètre rating est founi
  17.   if (req.query.rating) {
  18.     sql += ' WHERE rating = ?';
  19.     sqlValues.push(req.query.rating);
  20.   }
  21.  
  22.   // Si le paramètre genre est fourni
  23.   if (req.query.genre) {
  24.     if (req.query.rating) {
  25.       // Losque que rating est aussi fourni
  26.       sql += ' AND genre = ?';
  27.     } else {
  28.       // Seulement si genre est fourni
  29.       sql += ' WHERE genre = ?';
  30.     }
  31.     sqlValues.push(req.query.genre);
  32.   }
  33.  
  34.   // send an SQL query to get all movies
  35.   connection.query(sql, sqlValues, (err, results) => {
  36.     if (err) {
  37.       // If an error has occurred, then the client is informed of the error
  38.       res.status(500).send(`An error occurred: ${err.message}`);
  39.     } else {
  40.       // If everything went well, we send the result of the SQL query as JSON
  41.       res.json(results);
  42.     }
  43.   });
  44. });
  45.  
  46. // écoute de l'url "/api/movies/:id" => GET ONE
  47. app.get('/api/movies/:id', (req, res) => {
  48.   const idMovie = req.params.id;
  49.  
  50.   // connection à la base de données, et sélection des films
  51.   connection.query('SELECT * FROM movie WHERE id = ?', [idMovie], (err, results) => {
  52.     if (err) {
  53.       // Si une erreur est survenue, alors on informe l'utilisate
  54.       res.status(500).send('Erreur lors de la récupération des films');
  55.     } else if (results.length === 0) {
  56.       // si l'id n'existe pas : erreur 404 + message
  57.       res.status(404).send('Movie not found');
  58.     } else {
  59.       // Si tout s'est bien passé, on envoie le résultat de la requête SQL en tant que JSON.
  60.       res.json(results);
  61.     }
  62.   });
  63. });
  64.  
  65. // écoute de l'url "/api/movies/names"
  66. app.get('/api/movies/names', (req, res) => {
  67.   connection.query('SELECT name FROM movie', (err, results) => {
  68.     if (err) {
  69.       res.status(500).send('Erreur lors de la récupération des noms des films');
  70.     } else {
  71.       res.json(results);
  72.     }
  73.   });
  74. });
  75.  
  76. app.listen(port, (err) => {
  77.   if (err) {
  78.     throw new Error('Something bad happened...');
  79.   }
  80.  
  81.   console.log((`Server is listening on ${port}`));
  82. });
Add Comment
Please, Sign In to add comment