UNPKG

flexmonster-mongo-connector

Version:

MongoDB connector for Flexmonster Pivot Table and Charts

51 lines 2.12 kB
"use strict"; 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