ravendb
Version:
RavenDB client for Node.js
60 lines • 1.87 kB
JavaScript
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