UNPKG

voucher-validator

Version:

This lib provide validator to check business rules for a voucher

67 lines 3.24 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IsNotUseVoucherSpecification = exports.IsValidProductSpecification = exports.IsValidDocumentSpecification = exports.IsNominalSpecification = exports.IsNotDeletedSpecification = exports.IsOnRangeDateSpecification = void 0; const types_ddd_1 = require("types-ddd"); const is_deleted_voucher_1 = __importDefault(require("../utils/is-deleted-voucher")); const is_expired_voucher_1 = __importDefault(require("../utils/is-expired-voucher")); const is_nominal_voucher_1 = __importDefault(require("../utils/is-nominal-voucher")); const is_on_date_voucher_1 = __importDefault(require("../utils/is-on-date-voucher")); const is_used_voucher_1 = __importDefault(require("../utils/is-used-voucher")); const is_valid_doc_voucher_1 = __importDefault(require("../utils/is-valid-doc-voucher")); const is_valid_product_voucher_1 = __importDefault(require("../utils/is-valid-product-voucher")); const is_valid_voucher_1 = __importDefault(require("../utils/is-valid-voucher")); class IsOnRangeDateSpecification extends types_ddd_1.SpecificationComposite { isSatisfiedBy(voucher) { const isOnDate = (0, is_on_date_voucher_1.default)(voucher); const isNotExpired = (0, is_expired_voucher_1.default)(voucher); return isOnDate && isNotExpired; } } exports.IsOnRangeDateSpecification = IsOnRangeDateSpecification; class IsNotDeletedSpecification extends types_ddd_1.SpecificationComposite { isSatisfiedBy(voucher) { const isDeleted = (0, is_deleted_voucher_1.default)(voucher); return !isDeleted; } } exports.IsNotDeletedSpecification = IsNotDeletedSpecification; class IsNominalSpecification extends types_ddd_1.SpecificationComposite { isSatisfiedBy(voucher) { const isNominal = (0, is_nominal_voucher_1.default)(voucher); return isNominal; } } exports.IsNominalSpecification = IsNominalSpecification; class IsValidDocumentSpecification extends types_ddd_1.SpecificationComposite { constructor(document) { super(); this.document = document; } isSatisfiedBy(voucher) { const isValidDocument = (0, is_valid_doc_voucher_1.default)(voucher, this.document); return isValidDocument; } } exports.IsValidDocumentSpecification = IsValidDocumentSpecification; class IsValidProductSpecification extends types_ddd_1.SpecificationComposite { constructor(product) { super(); this.product = product; } isSatisfiedBy(voucher) { const isValidProduct = (0, is_valid_product_voucher_1.default)(voucher, this.product); return isValidProduct; } } exports.IsValidProductSpecification = IsValidProductSpecification; class IsNotUseVoucherSpecification extends types_ddd_1.SpecificationComposite { isSatisfiedBy(voucher) { const isUsed = (0, is_valid_voucher_1.default)(voucher) && !(0, is_used_voucher_1.default)(voucher); return isUsed; } } exports.IsNotUseVoucherSpecification = IsNotUseVoucherSpecification; //# sourceMappingURL=voucher.specification.js.map