ravendb
Version:
RavenDB client for Node.js
84 lines • 2.97 kB
JavaScript
import { RavenCommand } from "../../../Http/RavenCommand.js";
import { DateUtil } from "../../../Utility/DateUtil.js";
export class GetPeriodicBackupStatusOperation {
_taskId;
constructor(taskId) {
this._taskId = taskId;
}
get resultType() {
return "CommandResult";
}
getCommand(conventions) {
return new GetPeriodicBackupStatusCommand(this._taskId, conventions);
}
}
class GetPeriodicBackupStatusCommand extends RavenCommand {
_taskId;
_conventions;
constructor(taskId, conventions) {
super();
this._taskId = taskId;
this._conventions = conventions;
}
createRequest(node) {
const uri = node.url + "/periodic-backup/status?name=" + node.database + "&taskId=" + this._taskId;
return {
method: "GET",
uri
};
}
get isReadRequest() {
return true;
}
async setResponseAsync(bodyStream, fromCache) {
if (!bodyStream) {
this._throwInvalidResponse();
}
let body = null;
const results = await this._defaultPipeline(_ => body = _)
.process(bodyStream);
this.result = {
...results,
status: revivePeriodicBackupStatus(results.status)
};
if (this.result.isSharded) {
throw new Error("Database is sharded, can't use GetPeriodicBackupStatusOperation. Use GetShardedPeriodicBackupStatusOperation instead.");
}
return body;
}
}
export function revivePeriodicBackupStatus(status) {
if (!status) {
return null;
}
return {
...status,
lastFullBackup: DateUtil.utc.parse(status.lastFullBackup),
delayUntil: DateUtil.utc.parse(status.delayUntil),
originalBackupTime: DateUtil.utc.parse(status.originalBackupTime),
lastIncrementalBackup: DateUtil.utc.parse(status.lastIncrementalBackup),
lastFullBackupInternal: DateUtil.utc.parse(status.lastFullBackupInternal),
lastIncrementalBackupInternal: DateUtil.utc.parse(status.lastIncrementalBackupInternal),
localBackup: reviveUploadStatus(status.localBackup),
error: status.error ? {
...status.error,
at: DateUtil.utc.parse(status.error.at)
} : null,
uploadToS3: reviveUploadStatus(status.uploadToS3),
uploadToFtp: reviveUploadStatus(status.uploadToFtp),
updateToGoogleCloud: reviveUploadStatus(status.updateToGoogleCloud),
uploadToAzure: reviveUploadStatus(status.uploadToAzure),
uploadToGlacier: reviveUploadStatus(status.uploadToGlacier)
};
}
function reviveUploadStatus(status) {
if (!status) {
return null;
}
return {
...status,
lastFullBackup: DateUtil.utc.parse(status.lastFullBackup),
lastIncrementalBackup: DateUtil.utc.parse(status.lastIncrementalBackup),
};
}
//# sourceMappingURL=GetPeriodicBackupStatusOperation.js.map