UNPKG

ravendb

Version:
81 lines 2.72 kB
import { TypeUtil } from "../../Utility/TypeUtil.js"; import { throwError } from "../../Exceptions/index.js"; import { RavenCommand } from "../../Http/RavenCommand.js"; import { RaftIdGenerator } from "../../Utility/RaftIdGenerator.js"; export class ToggleDatabasesStateOperation { _disable; _parameters; constructor(databaseOrParameters, disable) { this._disable = disable; if (!databaseOrParameters) { throwError("InvalidArgumentException", "Databases cannot be null"); } if (TypeUtil.isString(databaseOrParameters)) { this._parameters = { databaseNames: [databaseOrParameters] }; } else if (TypeUtil.isArray(databaseOrParameters)) { this._parameters = { databaseNames: databaseOrParameters }; } else { this._parameters = { databaseNames: databaseOrParameters.databaseNames }; } if (!this._parameters.databaseNames || !this._parameters.databaseNames.length) { throwError("InvalidArgumentException", "Please provide at least one database name"); } } get resultType() { return "CommandResult"; } getCommand(conventions) { return new ToggleDatabaseStateCommand(this._parameters, this._disable); } } class ToggleDatabaseStateCommand extends RavenCommand { _disable; _parameters; constructor(parameters, disable) { super(); if (!parameters) { 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.isArray(status)) { this._throwInvalidResponse(); } this.result = status[0]; return body; } getRaftUniqueRequestId() { return RaftIdGenerator.newId(); } } //# sourceMappingURL=ToggleDatabasesStateOperation.js.map