flexmonster-mongo-connector
Version:
MongoDB connector for Flexmonster Pivot Table and Charts
38 lines (37 loc) • 1.83 kB
TypeScript
import { IRequestArgument } from "../IRequestArgument";
import { QueryBuilder } from "../../../query/builder/QueryBuilder";
import { AbstractApiRequest } from "./AbstractApiRequest";
import { APISchema } from "../../../schema/APISchema";
import { IQuery } from "../../../query/IQuery";
import { MongoQueryExecutor } from "../../../query/MongoQueryExecutor";
import { ArrayDataObject } from "../../../cache/dataObject/impl/ArrayDataObject";
export declare class AggregationApiRequest extends AbstractApiRequest {
private readonly GROUPING_LIMITATION;
private _isPaginationEnabled;
private _templateQuery;
private _isFinished;
private _currentTimer;
constructor(requestArgument: IRequestArgument);
getData(queryBuilder: QueryBuilder, queryExecutor: MongoQueryExecutor): Promise<any>;
_getData(queryBuilder: QueryBuilder, queryExecutor: MongoQueryExecutor): Promise<any>;
private loadDataAsync;
buildMongoQuery(queryBuilder: QueryBuilder, schema: APISchema, preFilteredQueries?: IQuery[]): any;
private preFilterQueries;
parseQueryResult: (queryResult: Promise<any>, date?: Date, preFilteredQueries?: IQuery[]) => Promise<ArrayDataObject>;
updateLoadingStatus(data: any): void;
toJSON(response: any, nextPageToken?: string): any;
private isAllQueryDataLoaded;
private updateQueryStats;
private isEverythingLoaded;
protected _splitQuery(query: any): any[];
private applyPaginationStrategie;
private balanceGroupingLimitation;
private isPaginationNecessary;
private _splitIntersectionQuery;
private getExpectedNumberOfRecords;
private _splitSubTotalQuery;
private _generateAllSubtotalsCombinations;
private areSubTotalsAvailable;
private _splitGrandTotalQuery;
private areValuesAvailable;
}