@configurator/ravendb
Version:
RavenDB client for Node.js
66 lines • 2.33 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LazyRevisionOperation = void 0;
const GetRequest_1 = require("../../../Commands/MultiGet/GetRequest");
const Exceptions_1 = require("../../../../Exceptions");
class LazyRevisionOperation {
constructor(clazz, getRevisionOperation, mode) {
this._clazz = clazz;
this._getRevisionOperation = getRevisionOperation;
this._mode = mode;
}
get result() {
return this._result;
}
set result(result) {
this._result = result;
}
get queryResult() {
return this._queryResult;
}
set queryResult(queryResult) {
this._queryResult = queryResult;
}
get requiresRetry() {
return this._requiresRetry;
}
set requiresRetry(result) {
this._requiresRetry = result;
}
createRequest() {
const getRevisionsCommand = this._getRevisionOperation.command;
const getRequest = new GetRequest_1.GetRequest();
getRequest.method = "GET";
getRequest.url = "/revisions";
getRequest.query = "?" + getRevisionsCommand.getRequestQueryString();
return getRequest;
}
async handleResponseAsync(response) {
if (!response.result) {
return;
}
const responseAsNode = JSON.parse(response.result);
const jsonArrayResult = {
results: responseAsNode.Results
};
this._getRevisionOperation.result = jsonArrayResult;
switch (this._mode) {
case "Single":
this._result = this._getRevisionOperation.getRevision(this._clazz);
break;
case "Multi":
this._result = this._getRevisionOperation.getRevisionsFor(this._clazz);
break;
case "Map":
this._result = this._getRevisionOperation.getRevisions(this._clazz);
break;
case "ListOfMetadata":
this._result = this._getRevisionOperation.getRevisionsMetadataFor();
break;
default:
(0, Exceptions_1.throwError)("InvalidArgumentException", "Invalid mode: " + this._mode);
}
}
}
exports.LazyRevisionOperation = LazyRevisionOperation;
//# sourceMappingURL=LazyRevisionOperation.js.map