diff --git a/package.json b/package.json index 6b93002bd9ec8cae80829c4bb02a85f9df7a2892..298d38e34e75d807d279b78b176494ce2bd11fa6 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "debug": "~2.3.x", "dirty-chai": "^1.2.2", "express": "^4.13.0", + "express-validator": "^3.2.0", "js2xmlparser": "^2.0.2", "jwt-simple": "^0.5.0", "lodash": "^4.17.2", diff --git a/src/libs/app.js b/src/libs/app.js index c5baa172a895cc5b2866d7a3edf202feb4bd62a0..acb4dd1fd352a282e1fb595726c74e69b5f68404 100644 --- a/src/libs/app.js +++ b/src/libs/app.js @@ -22,8 +22,11 @@ const mongoose = require(`${libs}/db/mongoose`); const db = mongoose(); +const expressValidator = require('express-validator'); + app.use(bodyParser.json()); -app.use(bodyParser.urlencoded({ extended: false })); +app.use(bodyParser.urlencoded({ extended: true })); +app.use(expressValidator()); app.use(cookieParser()); // Enable Cross-Origin Resource Sharing (CORS) app.use(cors()); diff --git a/src/libs/routes/message.js b/src/libs/routes/message.js index ff7124b0598b97ef8cc4c31f74f58c97bb083027..308cecb94d8348a1450785c48a802f8452d38a93 100644 --- a/src/libs/routes/message.js +++ b/src/libs/routes/message.js @@ -41,20 +41,29 @@ messageApp.put('/:id', (req, res, next) => { }); messageApp.post('/', (req, res, next) => { - let message = new Message({ - author: { - name: req.body.name, - email: req.body.email - }, - contents: req.body.contents - }); - - message.save((err) => { - if(err) { - res.status(500).json({error: 'Erro do servidor', text: 'O servidor encontrou um erro ao processar a requisição', err}); + req.checkBody('name', 'Nome é um campo obrigatório').notEmpty(); + req.checkBody('email', 'Email é um campo obrigatório').notEmpty(); + req.checkBody('contents', 'O conteúdo da mensagem é um campo obrigatório').notEmpty(); + req.getValidationResult().then(function(result) { + if (!result.isEmpty()) { + res.status(400).send({errors: result.array()}); + return; } - res.json(message); - }) + let message = new Message({ + author: { + name: req.body.name, + email: req.body.email + }, + contents: req.body.contents + }); + + message.save((err) => { + if(err) { + res.status(500).json({error: 'Erro do servidor', text: 'O servidor encontrou um erro ao processar a requisição', err}); + } + res.json(message); + }); + }); }); module.exports = messageApp;