azurite
Version:
An open source Azure Storage API compatible server
29 lines • 1.41 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 ContainerReadLeaseValidator {
constructor(leaseAccessConditions) {
this.leaseAccessConditions = leaseAccessConditions;
}
validate(lease, context) {
// check only when input Leased Id is not empty
if (this.leaseAccessConditions !== undefined &&
this.leaseAccessConditions.leaseId !== undefined &&
this.leaseAccessConditions.leaseId !== "") {
// return error when lease is unlocked
if (lease.leaseStatus === models_1.LeaseStatusType.Unlocked) {
throw StorageErrorFactory_1.default.getContainerLeaseLost(context.contextId);
}
else if (lease.leaseId !== undefined &&
this.leaseAccessConditions.leaseId.toLowerCase() !==
lease.leaseId.toLowerCase()) {
// return error when lease is locked but lease ID not match
throw StorageErrorFactory_1.default.getContainerLeaseIdMismatchWithContainerOperation(context.contextId);
}
}
}
}
exports.default = ContainerReadLeaseValidator;
//# sourceMappingURL=ContainerReadLeaseValidator.js.map
;