@zoranwong/acc-engine.js
Version:
A javascript framework to accelerate your applicatin developement
93 lines (73 loc) • 2.78 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _underscore = require("underscore");
var Validator = /*#__PURE__*/function () {
function Validator(app, validateRules) {
(0, _classCallCheck2["default"])(this, Validator);
this.app = void 0;
this.validateRules = {};
this.errors = {};
this.app = app;
this.validateRules = validateRules;
}
(0, _createClass2["default"])(Validator, [{
key: "validate",
value: function validate(request) {
var _this = this;
var rules = request.rules();
var messages = request.messages();
var params = request.data;
var passed = true;
(0, _underscore.each)(rules, function (rule, attribute) {
var _this2 = this;
(0, _newArrowCheck2["default"])(this, _this);
var value = params[attribute];
var attributeValidateRules = this.parseRule(rule);
(0, _underscore.each)(attributeValidateRules, function (ruleValidator, rule) {
(0, _newArrowCheck2["default"])(this, _this2);
// console.log(attribute, rule)
if (!ruleValidator.validate(value, attribute, messages, rules, params)) {
passed = false;
this.errors[attribute + '.' + rule] = ruleValidator.message;
}
}.bind(this));
}.bind(this));
return passed;
}
}, {
key: "parseRule",
value: function parseRule(rule) {
var _this3 = this;
var rules = rule;
if ((0, _underscore.isString)(rule)) {
rules = rule.split('|');
}
var validators = {};
(0, _underscore.each)(rules, function (value) {
(0, _newArrowCheck2["default"])(this, _this3);
var key, parameters;
if ((0, _underscore.isString)(value)) {
var _value$split = value.split(':');
var _value$split2 = (0, _slicedToArray2["default"])(_value$split, 2);
key = _value$split2[0];
parameters = _value$split2[1];
} else {
key = value['rule'];
parameters = value['values'];
}
validators[key] = new this.validateRules[key](key, parameters);
}.bind(this));
return validators;
}
}]);
return Validator;
}();
exports["default"] = Validator;