From 9e90ed6ea48f3ac98f27adb8ea43c7276b677e31 Mon Sep 17 00:00:00 2001 From: Damien <damien.armillon@gmail.com> Date: Fri, 3 May 2019 17:02:33 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20la=20validation=20de=20cr=C3=A9?= =?UTF-8?q?ation=20de=20toucan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routes/routesToucan.js | 47 ++++++++++++++++++---------------- backend/utils/schema.js | 4 ++- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/backend/routes/routesToucan.js b/backend/routes/routesToucan.js index 743518c..f3336de 100644 --- a/backend/routes/routesToucan.js +++ b/backend/routes/routesToucan.js @@ -29,28 +29,31 @@ router.route("/toucans") upload.fields([{name:"toucan", maxCount:1 }, {name:"cover", maxCount:1 }]), celebrate({body:newToucan}), function(req,res) { - var toucan = new Toucan(req.body); - var id = (toucan._id).toString(); - var index; - // On renome les fichier avec la clé de l'entrée dans la database - for (index in req.files) { - var file = req.files[index][0]; - var extension = path.extname(file.path); - var newPath = file.destination+"/"+id+extension; - fs.rename(file.path,newPath, err => { + if(req.files.length!=2){ + res.status(400).send("Il manque un fichier"); + } else { + var toucan = new Toucan(req.body); + var id = (toucan._id).toString(); + var index; + // On renome les fichier avec la clé de l'entrée dans la database + for (index in req.files) { + var file = req.files[index][0]; + var extension = path.extname(file.path); + var newPath = file.destination+"/"+id+extension; + fs.rename(file.path,newPath, err => { + if (err) { + res.err(err); + } + }); + } + toucan.save(function(err) { if (err) { - res.err(err); + res.status(400).send(err); + } else { + res.send({message: "Toucan ajouté !", id: id}); } }); - } - toucan.save(function(err) { - if (err) { - res.send(err); - } else { - res.send({message: "Toucan ajouté !", id: id}); - } - }); - }); + }}); // Renvoie le pdf du toucan avec l'id donné router.route("/pdf/:id") .get(celebrate({params: validId}), function (req,res) { @@ -84,7 +87,7 @@ router.route("/delete/:id") Toucan.deleteOne({_id:req.params.id}, function(err) { if (err) { - res.send(err); + res.send(500).send(err); } else { // Si on a supprimée l'entrée, on supprime le pdf var pdfPath = path.format({ dir: env.savedExtensions[1].path, @@ -93,7 +96,7 @@ router.route("/delete/:id") }); fs.unlink(pdfPath, (err) => { if (err) { - res.send(err); + res.status(500).send(err); } else { // Si on a supprimé le pdf on supprime l'image var imgPath = path.join(env.savedExtensions[0].path,"/",req.params.id); env.savedExtensions[0].extensions.forEach(ext => { @@ -101,7 +104,7 @@ router.route("/delete/:id") imgPath = imgPath+ext; fs.unlink(imgPath, (err) => { if (err) { - res.send(err); + res.status(500).send(err); } else { res.send("Toucan supprimé"); } diff --git a/backend/utils/schema.js b/backend/utils/schema.js index cdd8ce1..2ad2ada 100644 --- a/backend/utils/schema.js +++ b/backend/utils/schema.js @@ -1,7 +1,9 @@ var { Joi } = require("celebrate"); var newToucan = Joi.object({ - title: Joi.string().alphanum().required(), + title: Joi.string() + .regex(/^[a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ._\s-]{1,60}$/) //Autorise la plupart des acents + .required(), date: Joi.date().required() }); -- GitLab