flexmonster-mongo-connector
Version:
MongoDB connector for Flexmonster Pivot Table and Charts
57 lines (49 loc) • 1.99 kB
text/typescript
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);
}
}