Advertisement
Guest User

services/validator.js

a guest
Sep 29th, 2013
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Validator
  3.  *
  4.  * @module      :: Validator
  5.  * @description :: Contains helper for validation.
  6.  */
  7. var check = require('validator').check;
  8.  
  9. module.exports = {
  10.     /**
  11.      * Check an entire object using Validator module. DON'T WORKS.
  12.      * @param params
  13.      * @param callback
  14.      * @param env
  15.      * @returns {{messages: Array, status: boolean}}
  16.      *
  17.      * @example validator.check([{
  18.                 value: req.params.email,
  19.                 check: [{
  20.                         function: 'isNumeric',
  21.                         message: 'This is not a number',
  22.                         args: []
  23.                     }, {
  24.                         function: 'contains',
  25.                         message: 'The value doesn\'t have a 0 in it',
  26.                         args: ['0']
  27.                     }
  28.                 ]
  29.             }], function(result){
  30.                 res.json({message: 'Result validation', data: {result: result}, status: result.status});
  31.             });
  32.      */
  33.     check: function(params, callback, env){
  34.         // Define default environnment.
  35.         if(!env){
  36.             env = 'production';
  37.         }
  38.  
  39.         // Errors.
  40.         var errors = {
  41.             messages: [],
  42.             status: true// No error.
  43.         };
  44.  
  45.         // Check params object content.
  46.         if((!params || params.length === 0) && env === 'development'){
  47.             errors.messages.push({
  48.                 type: 'Debug',
  49.                 file: 'validator.js',
  50.                 method: 'check',
  51.                 message: 'The first arg must be an array which must contains at least one object.'
  52.             });
  53.             errors.status = false;
  54.         }
  55.  
  56.         if(errors.status){
  57.             // Check each rule.
  58.             for(var i = 0; i < params.length; i++){
  59.                 try{
  60.                     var value = params[i].value;
  61.                     var rule = params[i].check;
  62.                     for(var j = 0; j < rule.length; j++){
  63.                         try{
  64.                             console.log('VAL: '+value);
  65.                             console.log('MESSAGE: '+rule[j].message);
  66.                             console.log('FUNCTION: '+rule[j]['function']);
  67.                             // I have a problem here because this line don't works.
  68.                             check(value, rule[j].message).rule[j]['function']();
  69.                         }catch(e){
  70.                             errors.messages.push({
  71.                                 type: 'Error',
  72.                                 message: (e.message ? e.message : e)// Default is e.message, if exists, else the entire message.
  73.                             });
  74.                         }
  75.                     }
  76.                 }catch(e){
  77.                     errors.messages.push({
  78.                         type: 'Debug',
  79.                         message: (e.message ? e.message : e)// Default is e.message, if exists, else the entire message.
  80.                     });
  81.                 }
  82.             }
  83.         }
  84.  
  85.         // Do callback or return results.
  86.         if(callback){
  87.             callback(errors);
  88.         }else{
  89.             return errors;
  90.         }
  91.  
  92.     }
  93. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement