voucher-validator
Version:
This lib provide validator to check business rules for a voucher
67 lines • 3.24 kB
JavaScript
;
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