UNPKG

flexmonster-mongo-connector

Version:

Custom data source API implementation for MongoDB

57 lines 2.66 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractApiRequest = void 0; const LoggingManager_1 = require("../../../logging/LoggingManager"); class AbstractApiRequest { constructor(requestArgument) { this.CHUNK_SIZE = 40000; this._requestArgument = requestArgument; this._schema = requestArgument.schema; this._splitedQueries = this._splitQuery(this._requestArgument.clientQuery); this._db = requestArgument.db; this._curentQueryIndex = 0; this._currentPageIndex = 0; } get requestArgument() { return this._requestArgument; } ; get loggingTemplate() { return this._loggingTemplate; } getData(queryBuilder, queryExecutor) { return __awaiter(this, void 0, void 0, function* () { const mongoQuery = this.buildMongoQuery(queryBuilder, this._schema); LoggingManager_1.LoggingManager.log(`Getting ${this.loggingTemplate} data`); LoggingManager_1.LoggingManager.log(`Generated pipeline query to MongoDB ${JSON.stringify(mongoQuery)}`); const startDate = new Date(); const queryResultCursor = this.executeQuery(queryExecutor, mongoQuery); const data = yield this.parseQueryResult(queryResultCursor, startDate); return data; }); } _splitQuery(query) { const splitedQuery = []; splitedQuery.push(query); return splitedQuery; } executeQuery(queryExecutor, mongoQuery) { if (queryExecutor == null || mongoQuery == null) throw new Error("Illegal argument exception"); queryExecutor.injectDBConnection(this._db); return queryExecutor.runAggregateQuery(this._requestArgument.index, mongoQuery); } dispose() { } } exports.AbstractApiRequest = AbstractApiRequest; //# sourceMappingURL=AbstractApiRequest.js.map