UNPKG

ravendb

Version:
60 lines 1.87 kB
import { RavenCommand } from "../../../../Http/RavenCommand.js"; import { revivePeriodicBackupStatus } from "../GetPeriodicBackupStatusOperation.js"; export class GetShardedPeriodicBackupStatusOperation { _taskId; constructor(taskId) { this._taskId = taskId; } get resultType() { return "CommandResult"; } getCommand(conventions) { return new GetShardedPeriodicBackupStatusCommand(this._taskId, conventions); } } class GetShardedPeriodicBackupStatusCommand extends RavenCommand { _taskId; _conventions; constructor(taskId, conventions) { super(); this._taskId = taskId; this._conventions = conventions; } get isReadRequest() { return true; } createRequest(node) { const uri = node.url + "/periodic-backup/status?name=" + node.database + "&taskId=" + this._taskId; return { uri, method: "GET" }; } async setResponseAsync(bodyStream, fromCache) { if (!bodyStream) { this._throwInvalidResponse(); } let body = null; const results = await this._defaultPipeline(_ => body = _) .process(bodyStream); this.result = { ...results, statuses: reviveStatuses(results.statuses) }; if (!this.result.isSharded) { throw new Error("Database is sharded, can't use GetPeriodicBackupStatusOperation. Use GetShardedPeriodicBackupStatusOperation instead."); } return body; } } function reviveStatuses(statuses) { if (!statuses) { return null; } const result = {}; Object.entries(statuses).map(entry => { result[entry[0]] = revivePeriodicBackupStatus(entry[1]); }); return result; } //# sourceMappingURL=GetShardedPeriodicBackupStatusOperation.js.map