kpiplus
Version:
KPI+
1 lines • 767 B
JavaScript
var async=require("async"),underscore=require("underscore"),valid=function(a,e,r){r||(r=a.id_app),a.schema.validate?async.map(underscore.keys(a.schema.validate),function(e,n){var c=a.schema.validate[e],i=a[e];if(!i)return n();var t=c[0],u=c[1];t(r,i,function(a){return!1===a?(u=(u=u.replace("{PATH}",e)).replace("{VALUE}",i),n(u)):n()})},function(a,r){if(a)return e(a);e()}):e()};module.exports=function(a,e){var r=a.id_app;valid(a,function(n){if(n)return e(n);var c=[],i=function(a){c.push(a)};for(var t in a.schema.paths){var u=a.schema.paths[t];if(u.schema&&u.schema.validate){var s=a.get(t);underscore.isArray(s)?s.forEach(i):c.push(s)}}c.length>0?async.each(c,function(a,e){valid(a,function(a){if(a)return e(a);e()},r)},function(a){if(a)return e(a);e()}):e()})};