UNPKG

voucher-validator

Version:

This lib provide validator to check business rules for a voucher

32 lines 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VoucherValidator = void 0; const types_ddd_1 = require("types-ddd"); const voucher_specification_1 = require("../specification/voucher.specification"); const voucher_specification_2 = require("../specification/voucher.specification"); const voucher_specification_3 = require("../specification/voucher.specification"); class VoucherValidator extends types_ddd_1.SpecificationComposite { constructor(props) { super(); this.props = props; } isSatisfiedBy(voucher) { const isNominal = voucher.tipoCupom === 'NOMINAL'; if (!isNominal) return new voucher_specification_1.IsOnRangeDateSpecification() .and(new voucher_specification_3.IsNotUseVoucherSpecification()) .and(new voucher_specification_3.IsValidProductSpecification(this.props.product)) .and(new voucher_specification_2.IsNotDeletedSpecification()) .isSatisfiedBy(voucher); return new voucher_specification_2.IsNominalSpecification() .and(new voucher_specification_1.IsOnRangeDateSpecification()) .and(new voucher_specification_3.IsNotUseVoucherSpecification()) .and(new voucher_specification_1.IsValidDocumentSpecification(this.props.userDocument)) .and(new voucher_specification_3.IsValidProductSpecification(this.props.product)) .and(new voucher_specification_2.IsNotDeletedSpecification()) .isSatisfiedBy(voucher); } } exports.VoucherValidator = VoucherValidator; exports.default = VoucherValidator; //# sourceMappingURL=voucher-validator.js.map