UNPKG

flexmonster-mongo-connector

Version:

MongoDB connector for Flexmonster Pivot Table and Charts

57 lines (49 loc) 1.99 kB
import {Db} from 'mongodb'; import {CollectionName, IDataAPI, PagingInterface} from './api/IDataAPI'; import {MongoAPIManager} from './api/MongoAPIManager'; import { ConfigInterface } from './config/ConfigInterface'; export {ConfigInterface} from './config/ConfigInterface'; export class MongoDataAPI { private _mongoAPIManager: IDataAPI; public readonly API_VERSION: string = "2.9.0"; constructor(config?: ConfigInterface) { this._mongoAPIManager = new MongoAPIManager(config, this.API_VERSION); } /** * Returns the schema * @method * @param {string} index MongoDB's collection name * @return {APISchemaObject} returns APISchemaObject */ public async getSchema(mongoDBInstance: Db, index: CollectionName): Promise<any> { return this._mongoAPIManager.getSchema(mongoDBInstance, index); } /** * Returns the members of the field * @method * @param {string} index MongoDB's collection name * @param {any} fieldObject field's name * @param {number} page * @return {object} */ public async getMembers(mongoDBInstance: Db, index: CollectionName, fieldObject: any, page: PagingInterface): Promise<any> { let membersObject = fieldObject; if (fieldObject["uniqueName"] !== undefined) { membersObject = { "field": fieldObject } } return this._mongoAPIManager.getMembers(mongoDBInstance, index, membersObject, page); } /** * Returns calculations * @method * @param {string} index MongoDB's collection name * @param {object} query * @param {number} page * @return {object} */ public async getSelectResult(mongoDBInstance: Db, index: CollectionName, query: object, page: PagingInterface): Promise<any> { return this._mongoAPIManager.getSelectResult(mongoDBInstance, index, query, page); } }