UNPKG

@configurator/ravendb

Version:
81 lines 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ToggleDatabasesStateOperation = void 0; const TypeUtil_1 = require("../../Utility/TypeUtil"); const Exceptions_1 = require("../../Exceptions"); const RavenCommand_1 = require("../../Http/RavenCommand"); const RaftIdGenerator_1 = require("../../Utility/RaftIdGenerator"); class ToggleDatabasesStateOperation { constructor(databaseOrParameters, disable) { this._disable = disable; if (!databaseOrParameters) { (0, Exceptions_1.throwError)("InvalidArgumentException", "Databases cannot be null"); } if (TypeUtil_1.TypeUtil.isString(databaseOrParameters)) { this._parameters = { databaseNames: [databaseOrParameters] }; } else if (TypeUtil_1.TypeUtil.isArray(databaseOrParameters)) { this._parameters = { databaseNames: databaseOrParameters }; } else { this._parameters = { databaseNames: databaseOrParameters.databaseNames }; } if (!this._parameters.databaseNames || !this._parameters.databaseNames.length) { (0, Exceptions_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_1.RavenCommand { constructor(parameters, disable) { super(); if (!parameters) { (0, Exceptions_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_1.TypeUtil.isArray(status)) { this._throwInvalidResponse(); } this.result = status[0]; return body; } getRaftUniqueRequestId() { return RaftIdGenerator_1.RaftIdGenerator.newId(); } } //# sourceMappingURL=ToggleDatabasesStateOperation.js.map