UNPKG

ravendb

Version:
81 lines 3.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SetIndexLockCommand = exports.SetIndexesLockOperation = void 0; const RavenCommand_js_1 = require("../../../Http/RavenCommand.js"); const index_js_1 = require("../../../Exceptions/index.js"); const TypeUtil_js_1 = require("../../../Utility/TypeUtil.js"); const RaftIdGenerator_js_1 = require("../../../Utility/RaftIdGenerator.js"); class SetIndexesLockOperation { _parameters; constructor(paramsOrIndexName, mode) { if (TypeUtil_js_1.TypeUtil.isString(paramsOrIndexName)) { const indexName = paramsOrIndexName; if (!indexName) { (0, index_js_1.throwError)("InvalidArgumentException", "IndexName cannot be null."); } this._parameters = { indexNames: [indexName], mode }; } else { const parameters = paramsOrIndexName; if (!parameters) { (0, index_js_1.throwError)("InvalidArgumentException", "Parameters cannot be null."); } if (!parameters.indexNames || !parameters.indexNames.length) { (0, index_js_1.throwError)("InvalidArgumentException", "IndexNames cannot be null or empty."); } this._parameters = parameters; } this._filterAutoIndexes(); } _filterAutoIndexes() { // Check for auto-indexes - we do not set lock for auto-indexes if (this._parameters.indexNames.some(x => x.toLocaleLowerCase().startsWith("auto/"))) { (0, index_js_1.throwError)("InvalidArgumentException", "Indexes list contains Auto-Indexes. " + "Lock Mode is not set for Auto-Indexes."); } } getCommand(conventions) { return new SetIndexLockCommand(conventions, this._parameters); } get resultType() { return "CommandResult"; } } exports.SetIndexesLockOperation = SetIndexesLockOperation; class SetIndexLockCommand extends RavenCommand_js_1.RavenCommand { _parameters; constructor(conventions, parameters) { super(); if (!conventions) { (0, index_js_1.throwError)("InvalidArgumentException", "Conventions cannot be null"); } if (!parameters) { (0, index_js_1.throwError)("InvalidArgumentException", "Parameters cannot be null"); } this._responseType = "Empty"; this._parameters = conventions.objectMapper.toObjectLiteral(parameters); } createRequest(node) { const uri = node.url + "/databases/" + node.database + "/indexes/set-lock"; const body = this._serializer.serialize(this._parameters); const headers = this._headers() .typeAppJson().build(); return { uri, method: "POST", body, headers }; } get isReadRequest() { return false; } getRaftUniqueRequestId() { return RaftIdGenerator_js_1.RaftIdGenerator.newId(); } } exports.SetIndexLockCommand = SetIndexLockCommand; //# sourceMappingURL=SetIndexesLockOperation.js.map