UNPKG

ravendb

Version:
104 lines 3.51 kB
import { TypeUtil } from "../../Utility/TypeUtil.js"; import { DateUtil } from "../../Utility/DateUtil.js"; import { GetDocumentsCommand } from "./GetDocumentsCommand.js"; import { RavenCommand } from "../../Http/RavenCommand.js"; import { throwError } from "../../Exceptions/index.js"; export class GetRevisionsCommand extends RavenCommand { _id; _start; _pageSize; _metadataOnly; _before; _changeVector; _changeVectors; _conventions; constructor(conventions, changeVectorOrVectorsOrId, beforeOrMetadataOrStart, pageSize, metadataOnly) { super(); if (beforeOrMetadataOrStart instanceof Date) { if (!changeVectorOrVectorsOrId) { throwError("InvalidArgumentException", "Id cannot be null."); } this._id = changeVectorOrVectorsOrId; this._before = beforeOrMetadataOrStart; } else if (TypeUtil.isArray(changeVectorOrVectorsOrId)) { this._changeVectors = changeVectorOrVectorsOrId; this._metadataOnly = metadataOnly || false; } else if (TypeUtil.isNumber(beforeOrMetadataOrStart)) { if (!changeVectorOrVectorsOrId) { throwError("InvalidArgumentException", "Id cannot be null."); } this._id = changeVectorOrVectorsOrId; this._start = beforeOrMetadataOrStart; this._pageSize = pageSize; this._metadataOnly = metadataOnly || false; } else { this._changeVector = changeVectorOrVectorsOrId; this._metadataOnly = beforeOrMetadataOrStart || false; } this._conventions = conventions; } get id() { return this._id; } get before() { return this._before; } get changeVector() { return this._changeVector; } get changeVectors() { return this._changeVectors; } createRequest(node) { let uri = node.url + "/databases/" + node.database + "/revisions?"; uri += this.getRequestQueryString(); return { uri, method: "GET" }; } getRequestQueryString() { let uri = ""; if (this._id) { uri += "&id=" + encodeURIComponent(this._id); } else if (this._changeVector) { uri += "&changeVector=" + encodeURIComponent(this._changeVector); } else if (this._changeVectors) { for (const changeVector of this._changeVectors) { uri += "&changeVector=" + encodeURIComponent(changeVector); } } if (this._before) { uri += "&before=" + DateUtil.utc.stringify(this._before); } if (!TypeUtil.isNullOrUndefined(this._start)) { uri += "&start=" + this._start; } if (!TypeUtil.isNullOrUndefined(this._pageSize)) { uri += "&pageSize=" + this._pageSize; } if (this._metadataOnly) { uri += "&metadataOnly=true"; } return uri; } get isReadRequest() { return true; } async setResponseAsync(bodyStream, fromCache) { if (!bodyStream) { this.result = null; return; } let body = null; this.result = await GetDocumentsCommand.parseDocumentsResultResponseAsync(bodyStream, this._conventions, b => body = b); return body; } } //# sourceMappingURL=GetRevisionsCommand.js.map