will005

Untitled

Jan 17th, 2014
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var userValidationSchema = {
  2.   properties: {
  3.     name: {
  4.       type: 'object',
  5.       properties: {
  6.         firstName: {
  7.           type: 'string',
  8.           required: true
  9.         },
  10.         lastName: {
  11.           type: 'string',
  12.           required: true
  13.         }
  14.       }
  15.     },
  16.     username: {
  17.       type: 'string',
  18.       required: true,
  19.       minLength: 3,
  20.       maxLength: 20,
  21.       messages: {
  22.         minLength: 'username must be at least 3 characters long',
  23.         maxLength: 'username must be shorter than 20 characters'
  24.       }
  25.     },
  26.     email: {
  27.       type: 'string',
  28.       required: true,
  29.       format: 'email',
  30.       messages: {
  31.         format: 'this is not a valid email'
  32.       }
  33.     }
  34.   }
  35. };
  36.  
  37. exports.update = function(req, res) {
  38.   logger.info('PUT /users/:id');
  39.  
  40.   var validator = revalidator.validate(req.body.user, userValidationSchema);
  41.  
  42.   if (validator.valid) {
  43.     var userId = req.params.id;
  44.     delete req.body._id;
  45.  
  46.     User.findByIdAndUpdateQ(userId, req.body.user)
  47.       .then(function() {
  48.         res.send();
  49.       })
  50.       .fail(error)
  51.       .done();
  52.   } else {
  53.     var myUser = req.body.user;
  54.     var errorResponse = {
  55.       'errors': []
  56.     };
  57.  
  58.     validator.errors.forEach(function(err) {
  59.       var property = err.property;
  60.       var message = err.message;
  61.  
  62.       errorResponse.errors.push({
  63.         property: [message]
  64.       });
  65.     });
  66.  
  67.     res.json(null);
  68.     res.json({
  69.       user: myUser
  70.     });
  71.     res.json(422, errorResponse);
  72.     res.send();
  73.   }
  74. };
Advertisement
Add Comment
Please, Sign In to add comment