UNPKG

@zoranwong/acc-engine.js

Version:

A javascript framework to accelerate your applicatin developement

93 lines (73 loc) 2.78 kB
"use strict"; 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;