flexmonster-mongo-connector
Version:
MongoDB connector for Flexmonster Pivot Table and Charts
51 lines • 2.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FlatApiRequest = void 0;
const MongoResponseParser_1 = require("../../../parsers/MongoResponseParser");
const AbstractApiRequest_1 = require("./AbstractApiRequest");
class FlatApiRequest extends AbstractApiRequest_1.AbstractApiRequest {
constructor(requestArgument) {
super(requestArgument);
this._loggingTemplate = "flat view";
}
buildMongoQuery(queryBuilder, schema) {
if (queryBuilder == null)
throw new Error("Illegal argument exception");
let mongoQuery = queryBuilder.buildFlatPipelineFacet(this._splitedQueries, schema);
return mongoQuery;
}
parseQueryResult(queryResultCursor, startDate) {
return MongoResponseParser_1.MongoResponseParser.getInstance().parseFlatFromCursor(queryResultCursor, this.requestArgument.clientQuery["fields"], this._splitedQueries, this.CHUNK_SIZE, startDate);
}
toJSON(response, nextpageToken) {
const jsonResponse = response;
if (nextpageToken != null)
jsonResponse["nextPageToken"] = nextpageToken;
return jsonResponse;
}
_splitQuery(query) {
const splitedQuery = [];
this._splitGrandTotalQuery(query, splitedQuery);
const dataRecords = JSON.parse(JSON.stringify(query));
delete dataRecords["aggs"];
splitedQuery.push({
clientQuery: dataRecords,
definition: "dataRecords"
});
return splitedQuery;
}
_splitGrandTotalQuery(query, aggregationQueries) {
if (query["aggs"] == null || query["aggs"]["values"] == null
|| query["aggs"]["values"].length == 0)
return;
const grandTotalQuery = JSON.parse(JSON.stringify(query));
delete grandTotalQuery["fields"];
aggregationQueries.push({
clientQuery: grandTotalQuery,
definition: "grandTotal"
});
return;
}
}
exports.FlatApiRequest = FlatApiRequest;
//# sourceMappingURL=FlatApiRequest.js.map