azurite
Version:
An open source Azure Storage API compatible server
33 lines • 1.62 kB
JavaScript
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
;