UNPKG

azurite

Version:

An open source Azure Storage API compatible server

33 lines 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const StorageErrorFactory_1 = tslib_1.__importDefault(require("../errors/StorageErrorFactory")); const models_1 = require("../generated/artifacts/models"); class ContainerDeleteLeaseValidator { constructor(leaseAccessConditions) { this.leaseAccessConditions = leaseAccessConditions; } validate(lease, context) { // Check Lease status if (lease.leaseStatus === models_1.LeaseStatusType.Locked) { if (this.leaseAccessConditions === undefined || this.leaseAccessConditions.leaseId === undefined || this.leaseAccessConditions.leaseId === null) { throw StorageErrorFactory_1.default.getContainerLeaseIdMissing(context.contextId); } else if (lease.leaseId !== undefined && this.leaseAccessConditions.leaseId.toLowerCase() !== lease.leaseId.toLowerCase()) { throw StorageErrorFactory_1.default.getContainerLeaseIdMismatchWithContainerOperation(context.contextId); } } else if (this.leaseAccessConditions !== undefined && this.leaseAccessConditions.leaseId !== undefined && this.leaseAccessConditions.leaseId !== null && this.leaseAccessConditions.leaseId !== "") { throw StorageErrorFactory_1.default.getContainerLeaseLost(context.contextId); } } } exports.default = ContainerDeleteLeaseValidator; //# sourceMappingURL=ContainerDeleteLeaseValidator.js.map