Created
December 7, 2020 23:30
-
-
Save gaetan-cordonnier/31bb56601f6ed0458ee67300b857fea6 to your computer and use it in GitHub Desktop.
Express Quest #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require("express"); | |
const movies = require("./movies"); | |
const connection = require("./config"); | |
const port = 3000; | |
const app = express(); | |
// connexion à la Database | |
connection.connect(function (err) { | |
if (err) { | |
console.error("error connecting: " + err.stack); | |
return; | |
} | |
console.log("connected as id " + connection.threadId); | |
}); | |
// utilisation du middleware pour lire un json par la requête body | |
app.use(express.json()); | |
// route Main | |
app.get("/", (req, res) => { | |
res.send("Welcome to my favorite movie list"); | |
}); | |
// renvoyer tous les movies | |
app.get("/api/movies", (req, res) => { | |
connection.query("SELECT * from movies", (err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error retrieving data"); | |
} else { | |
res.status(200).json(results); | |
} | |
}); | |
}); | |
// renvoyer tous les movies par id | |
app.get("/api/movies/:id", (req, res) => { | |
connection.query( | |
"SELECT * from movies WHERE id=?", | |
[req.params.id], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error retrieving data"); | |
} else { | |
res.status(200).json(results); | |
} | |
} | |
); | |
}); | |
// rechercher tous les movies par durée | |
app.get("/api/search", (req, res) => { | |
connection.query( | |
"SELECT * from movies WHERE duration<=?", | |
[req.query.durationMax], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("No movies found for this duration"); | |
} else { | |
res.status(200).json(results); | |
} | |
} | |
); | |
}); | |
// créer nouveau movie dans la Database | |
app.post("/api/movies", (req, res) => { | |
const { title, director, year, color, duration } = req.body; | |
connection.query( | |
"INSERT INTO movies(title, director, year, color, duration) VALUES(?, ?, ?, ?, ?)", | |
[title, director, year, color, duration], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error saving a movie"); | |
} else { | |
res.status(200).send("Successfully saved"); | |
} | |
} | |
); | |
}); | |
// mise à jour de movies in the DB | |
app.put("/api/movies/:id", (req, res) => { | |
// l'ID est passé en paramètre de la route: | |
const idMovie = req.params.id; | |
// on envoie les données par la requête "req.body" | |
const newMovie = req.body; | |
// écriture de la mise à jour dans la DB | |
connection.query( | |
"UPDATE movies SET ? WHERE id = ?", | |
[newMovie, idMovie], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error updating a movie"); | |
} else { | |
res.status(200).send("Movie updated successfully 🎉"); | |
} | |
} | |
); | |
}); | |
// renvoyer tous les users | |
app.get("/api/users", (req, res) => { | |
connection.query("SELECT * from users", (err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error retrieving data"); | |
} else { | |
res.status(200).json(results); | |
} | |
}); | |
}); | |
// créer nouveau movie dans la Database | |
app.post("/api/users", (req, res) => { | |
const { firstname, lastname, email } = req.body; | |
connection.query( | |
"INSERT INTO users(firstname, lastname, email) VALUES(?, ?, ?)", | |
[firstname, lastname, email], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error saving a user"); | |
} else { | |
res.status(200).send("Successfully saved"); | |
} | |
} | |
); | |
}); | |
// mise à jour de user in the DB | |
app.put("/api/users/:id", (req, res) => { | |
// l'ID est passé en paramètre de la route: | |
const idUser = req.params.id; | |
// on envoie les données par la requête "req.body" | |
const newUser = req.body; | |
// écriture de la mise à jour dans la DB | |
connection.query( | |
"UPDATE users SET ? WHERE id = ?", | |
[newUser, idUser], | |
(err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Error updating a user"); | |
} else { | |
res.status(200).send("User updated successfully 🎉"); | |
} | |
} | |
); | |
}); | |
app.listen(port, () => { | |
console.log(`Server is runing on 3000`); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment