UNPKG

ravendb

Version:
84 lines 2.97 kB
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