Created
December 9, 2019 11:08
-
-
Save jervalles/7d6119767dc40e0be8988d5a7c523bea to your computer and use it in GitHub Desktop.
index
This file contains 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 app = express(); | |
const port = 3000; | |
const connection = require("./conf"); | |
const bodyParser = require("body-parser"); | |
// Support JSON-encoded bodies | |
app.use(bodyParser.json()); | |
// Support URL-encoded bodies | |
app.use( | |
bodyParser.urlencoded({ | |
extended: true | |
}) | |
); | |
app.get("/", (request, response) => { | |
response.send("Bienvenue sur Express"); | |
}); | |
// (1) GET : écoute de l'url "/api/games" | |
app.get("/api/games", (req, res) => { | |
// connection à la base de données, et sélection des employés | |
connection.query("SELECT * from game", (err, results) => { | |
if (err) { | |
// Si une erreur est survenue, alors on informe l'utilisateur de l'erreur | |
res.status(500).send("Erreur lors de la récupération des employés"); | |
} else { | |
// Si tout s'est bien passé, on envoie le résultat de la requête SQL en tant que JSON. | |
res.json(results); | |
} | |
}); | |
}); | |
// (2) GET (light) : écoute de l'url "/api/games" | |
app.get("/api/games/name", (req, res) => { | |
connection.query("SELECT name from game", (err, results) => { | |
if (err) { | |
res | |
.status(500) | |
.send("Erreur lors de la récupération des id des personnages"); | |
} else { | |
res.json(results); | |
} | |
}); | |
}); | |
// (3) : Un filtre "contient ..." dans mon exemple un "3". | |
app.get("/api/games/toto", (req, res) => { | |
connection.query( | |
'SELECT name from game WHERE name LIKE"%3%"', | |
(err, results) => { | |
if (err) { | |
res.status(500).send("Erreur lors de la récupération des jeux"); | |
} else { | |
res.json(results); | |
} | |
} | |
); | |
}); | |
// (4) : Un filtre "Commence par ..." dans mon exemple un "T". | |
app.get("/api/games/startt", (req, res) => { | |
connection.query( | |
'SELECT name from game WHERE name LIKE"T%"', | |
(err, results) => { | |
if (err) { | |
res.status(500).send("Erreur lors de la récupération des jeux"); | |
} else { | |
res.json(results); | |
} | |
} | |
); | |
}); | |
// (5) : Un filtre "Supérieur à ..." dans mon exemple suppérieur à 15. | |
app.get("/api/games/bestscore2", (req, res) => { | |
connection.query('SELECT * from game WHERE score < "11"', (err, results) => { | |
if (err) { | |
res.status(500).send("Erreur lors de la récupération des jeux"); | |
} else { | |
res.json(results); | |
} | |
}); | |
}); | |
// (6) : GET - ascendant, descendant | |
app.get("/api/games/order:id", (req, res) => { | |
const order = req.params.id; | |
connection.query( | |
`SELECT name, score from game ORDER BY name ${order}`, | |
(err, results) => { | |
if (err) { | |
// Si une erreur est survenue, alors on informe l'utilisateur de l'erreur | |
res.status(500).send("Erreur lors de la récupération des jeux"); | |
} else { | |
// Si tout s'est bien passé, on envoie le résultat de la requête SQL en tant que JSON. | |
res.json(results); | |
} | |
} | |
); | |
}); | |
// (7) : POST - Sauvegarde d'une nouvelle entité | |
app.post("/api/games", (req, res) => { | |
const formData = req.body; | |
connection.query("INSERT INTO game SET ?", formData, (err, results) => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Erreur lors de la sauvegarde d'un jeu"); | |
} else { | |
res.sendStatus(200); | |
} | |
}); | |
}); | |
// (8) : PUT - Modification d'une entité | |
app.put("/api/games/:id", (req, res) => { | |
// récupération des données envoyées | |
const idGame = req.params.id; | |
const formData = req.body; | |
// connection à la base de données, et insertion du film | |
connection.query( | |
"UPDATE game SET ? WHERE id = ?", | |
[formData, idGame], | |
err => { | |
if (err) { | |
// Si une erreur est survenue, alors on informe l'utilisateur de l'erreur | |
console.log(err); | |
res.status(500).send("Erreur lors de la modification d'un film"); | |
} else { | |
// Si tout s'est bien passé, on envoie un statut "ok". | |
res.sendStatus(200); | |
} | |
} | |
); | |
}); | |
// (9) : PUT - Toggle du booléen | |
app.put("/api/games/booleen/:id", (req, res) => { | |
const idBooleen = req.params.id; | |
const formData = req.body; | |
connection.query( | |
"UPDATE game SET isGood = !isGood WHERE id = ?", | |
[formData, idBooleen], | |
err => { | |
if (err) { | |
console.log(err); | |
res | |
.status(500) | |
.send("Erreur lors de la modification des postes des personnages"); | |
} else { | |
res.sendStatus(200); | |
} | |
} | |
); | |
}); | |
// (10) : DELETE - Suppression d'une entité | |
app.delete("/api/games/byebye/:id", (req, res) => { | |
const idByebye = req.params.id; | |
connection.query("DELETE FROM game WHERE id = ?", [idByebye], err => { | |
if (err) { | |
console.log(err); | |
res.status(500).send("Erreur lors de la suppression d'un jeu"); | |
} else { | |
res.sendStatus(200); | |
} | |
}); | |
}); | |
// (11) : DELETE - Suppression de toutes les entités dont le booléen est false | |
app.delete("/api/games/delete", (req, res) => { | |
connection.query('DELETE FROM game WHERE isGood = "1"', (err, results) => { | |
if (err) { | |
res.status(500).send("Erreur lors de la suppression des jeux de merde"); | |
} else { | |
res.json(results); | |
} | |
}); | |
}); | |
app.listen(port, err => { | |
if (err) { | |
throw new Error("Something bad happened..."); | |
} | |
console.log(`Server is listening on ${port}`); | |
}); | |
// http://localhost:3000/api/employee?name=test (for test) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment