From b438056687d1f8c64adf56ce6e4ea083b724035b Mon Sep 17 00:00:00 2001
From: Lucas Gabriel Lima <lgl15@inf.ufpr.br>
Date: Fri, 13 Jan 2017 10:31:25 -0200
Subject: [PATCH] moved validations from route to model

---
 src/libs/routes/user.js | 93 +++++++----------------------------------
 1 file changed, 16 insertions(+), 77 deletions(-)

diff --git a/src/libs/routes/user.js b/src/libs/routes/user.js
index eb1732b1..f29766ae 100644
--- a/src/libs/routes/user.js
+++ b/src/libs/routes/user.js
@@ -21,83 +21,17 @@ function emailSyntax(email) {
 }
 
 userApp.post('/', (req, res, next) => {
-    if (!req.body.email) {
-        res.json({success: false, msg: 'O campo Email é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.password) {
-        res.json({success: false, msg: 'O campo Senha é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if(!emailSyntax(req.body.email)){
-        res.json({success: false, msg: 'O email informado é inválido.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.name) {
-        res.json({success: false, msg: 'O campo Nome é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.cpf) {
-        res.json({success: false, msg: 'O campo CPF é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.schooling) {
-        res.json({success: false, msg: 'O campo Escolaridade é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.segment) {
-        res.json({success: false, msg: 'O campo Segmento é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.role) {
-        res.json({success: false, msg: 'O campo Função é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.institution_name) {
-        res.json({success: false, msg: 'O campo Instituição em que trabalha é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.city) {
-        res.json({success: false, msg: 'O campo Cidade é obrigatório.'});
-    } else {
-        next();
-    }
-
-}, (req, res, next) => {
-    if (!req.body.state) {
-        res.json({success: false, msg: 'O campo Estado é obrigatório.'});
+    if(req.body.email){
+        if(!emailSyntax(req.body.email)){
+            res.json({success: false, msg: 'O email informado é inválido.'});
+        } else {
+            next();
+        }
     } else {
         next();
     }
-
-}, (req, res, next) => {
+},
+ (req, res, next) => {
     User.count({'email': req.body.email}, function(err, count){
         if (err){
             log.error('MongoDB error: ' + err);
@@ -141,9 +75,14 @@ userApp.post('/', (req, res, next) => {
 
     // save the user
     newUser.save((err) => {
-        if (err) {
-            res.json({success: false, msg: 'Um erro ocorreu no banco de dados.'});
-        } else {
+        if (err){
+            let errMsg = [];
+            for (var e in err.errors) {
+                    errMsg.push(err.errors[`${e}`].message);
+            }
+            res.json({success: false, msg: errMsg[0]});
+        }
+         else {
             res.json({success: true, msg: 'Usuário cadastrado com sucesso!'});
         }
     });
-- 
GitLab