Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider f4dc94f4 rédigé par Theo LE BAIL's avatar Theo LE BAIL
Parcourir les fichiers

Merge branch 'quantite_minimax' into 'main'

Quantite minimax

See merge request !45
parents 7176e215 c85d38e1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!45Quantite minimax
......@@ -17,7 +17,6 @@ const dbHelper = require('./dbhelper.js');
module.exports = (passport) => {
const app = express();
//fonction qui vérfie si parmis les champs de req.body ou req.params, il y a un champ dont le contenu comprend des attack par injection sql;
const checkInjection = (req, res, next) => {
const regex = /['"=;*]/;
......@@ -41,7 +40,6 @@ module.exports = (passport) => {
}
// Authentification pour accéder aux parties privées de l'api (on n'en a pas dans cet exemple)
// et aux templates privés
// C'est ici qu'on utilise passport pour créer une session utilisateur
......@@ -392,6 +390,14 @@ module.exports = (passport) => {
app.post('/produit',
require('connect-ensure-login').ensureLoggedIn(),
function (req, res) {
if (req.body.quantite_min > req.body.quantite_max) {
res.set('Content-type', 'application/json');
res.status(422).send({ code: 422, desc: 'FORBIDDEN_VALUE', message: 'quantite_min doit être inférieur à quantite_max' });
res.end();
return;
}
console.log("POST /produit", req.body);
// control des paramètres de la requête pour trouver d'éventuelles injections sql
if (!checkInjection(req, res)) return;
......@@ -421,11 +427,22 @@ module.exports = (passport) => {
// PUT PRODUIT
app.put('/produit/:nom_produit',
require('connect-ensure-login').ensureLoggedIn(),
function (req, res) {
async function (req, res) {
console.log("PUT /produit/", req.params.nom_produit, req.body);
// control des paramètres de la requête pour trouver d'éventuelles injections sql
if (!checkInjection(req, res)) return;
const produitToUpdate = await dbHelper.produit.byNom(req.params.nom_produit);
if (req.body.quantite_min) {
if (req.body.quantite_min > produitToUpdate.quantite_max) {
res.set('Content-type', 'application/json');
res.status(422).send({ code: 422, message: 'quantite Minimal supérieur à quantité maximal' });
res.end();
return;
}
}
dbHelper.produit.update(
req.params.nom_produit,
req.body.nom_produit,
......@@ -437,7 +454,7 @@ module.exports = (passport) => {
req.body.quantite_course,
).then(produit => {
res.set('Content-type', 'application/json');
res.status(200).send({ message: 'produit modifié' });
res.status(200).send({ code: 200, desc: 'EDIT', message: 'produit modifié' });
res.end();
return;
}).catch(sqlerr => {
......
......@@ -91,9 +91,12 @@ function submitEditProduit(nomProduit, prixProduit, quantiteMin, maxQuantity, fo
},
body: formBody
}).then(
res => res.json()
res => {
return res.json()
}
).then(
res => {
console.log(res)
alert(res.message)
location.reload()
}
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter