UNPKG

ravendb

Version:
85 lines 3.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ToggleDatabasesStateOperation = void 0; const TypeUtil_js_1 = require("../../Utility/TypeUtil.js"); const index_js_1 = require("../../Exceptions/index.js"); const RavenCommand_js_1 = require("../../Http/RavenCommand.js"); const RaftIdGenerator_js_1 = require("../../Utility/RaftIdGenerator.js"); class ToggleDatabasesStateOperation { _disable; _parameters; constructor(databaseOrParameters, disable) { this._disable = disable; if (!databaseOrParameters) { (0, index_js_1.throwError)("InvalidArgumentException", "Databases cannot be null"); } if (TypeUtil_js_1.TypeUtil.isString(databaseOrParameters)) { this._parameters = { databaseNames: [databaseOrParameters] }; } else if (TypeUtil_js_1.TypeUtil.isArray(databaseOrParameters)) { this._parameters = { databaseNames: databaseOrParameters }; } else { this._parameters = { databaseNames: databaseOrParameters.databaseNames }; } if (!this._parameters.databaseNames || !this._parameters.databaseNames.length) { (0, index_js_1.throwError)("InvalidArgumentException", "Please provide at least one database name"); } } get resultType() { return "CommandResult"; } getCommand(conventions) { return new ToggleDatabaseStateCommand(this._parameters, this._disable); } } exports.ToggleDatabasesStateOperation = ToggleDatabasesStateOperation; class ToggleDatabaseStateCommand extends RavenCommand_js_1.RavenCommand { _disable; _parameters; constructor(parameters, disable) { super(); if (!parameters) { (0, index_js_1.throwError)("InvalidArgumentException", "Parameters cannot be null"); } this._disable = disable; this._parameters = parameters; } createRequest(node) { const toggle = this._disable ? "disable" : "enable"; const uri = node.url + "/admin/databases/" + toggle; const body = this._serializer.serialize(this._parameters); return { uri, method: "POST", headers: this._headers().typeAppJson().build(), body }; } get isReadRequest() { return false; } async setResponseAsync(bodyStream, fromCache) { if (!bodyStream) { this._throwInvalidResponse(); } let body = null; const results = await this._defaultPipeline(_ => body = _).process(bodyStream); const status = results["status"]; if (!TypeUtil_js_1.TypeUtil.isArray(status)) { this._throwInvalidResponse(); } this.result = status[0]; return body; } getRaftUniqueRequestId() { return RaftIdGenerator_js_1.RaftIdGenerator.newId(); } } //# sourceMappingURL=ToggleDatabasesStateOperation.js.map