flexmonster-mongo-connector
Advanced tools
Comparing version 2.8.1 to 2.8.2
@@ -5,3 +5,3 @@ import { Db } from 'mongodb'; | ||
private _mongoAPIManager; | ||
readonly API_VERSION = "2.8.0"; | ||
readonly API_VERSION = "2.8.2"; | ||
constructor(); | ||
@@ -8,0 +8,0 @@ getSchema(mongoDBInstance: Db, index: CollectionName): Promise<any>; |
@@ -15,3 +15,3 @@ "use strict"; | ||
constructor() { | ||
this.API_VERSION = "2.8.0"; | ||
this.API_VERSION = "2.8.2"; | ||
this._mongoAPIManager = new MongoAPIManager_1.MongoAPIManager(); | ||
@@ -18,0 +18,0 @@ } |
@@ -18,3 +18,4 @@ import { APISchema } from '../schema/APISchema'; | ||
private _getNestedObjectValue; | ||
private parseValueFromComplexType; | ||
private parseDotsFromKeys; | ||
} |
@@ -14,2 +14,3 @@ "use strict"; | ||
const Delimeters_1 = require("../utils/consts/Delimeters"); | ||
const MongoFieldType_1 = require("../utils/consts/MongoFieldType"); | ||
class MongoResponseParser { | ||
@@ -42,3 +43,3 @@ constructor() { | ||
storage[measureKey] = {}; | ||
storage[measureKey][measure[1]] = values[key]; | ||
storage[measureKey][measure[1]] = this.parseValueFromComplexType(values[key]); | ||
} | ||
@@ -81,3 +82,3 @@ return storage; | ||
result.push({ | ||
"value": value | ||
"value": this.parseValueFromComplexType(value) | ||
}); | ||
@@ -150,4 +151,14 @@ }, () => { | ||
value = data; | ||
return value; | ||
return this.parseValueFromComplexType(value); | ||
} | ||
parseValueFromComplexType(value) { | ||
let resultValue = value; | ||
if (value != null && value["_bsontype"] != null && value["_bsontype"] == MongoFieldType_1.MongoFieldType.DECIMAL128) { | ||
resultValue = parseFloat(value.toString()); | ||
} | ||
else if (value != null && value["_bsontype"] != null) { | ||
resultValue = value.toString(); | ||
} | ||
return resultValue; | ||
} | ||
parseDotsFromKeys(fieldsKeys) { | ||
@@ -159,3 +170,3 @@ let result = {}; | ||
keyValue = key.replace(regexp, '.'); | ||
result[keyValue] = fieldsKeys[key]; | ||
result[keyValue] = this.parseValueFromComplexType(fieldsKeys[key]); | ||
} | ||
@@ -162,0 +173,0 @@ return result; |
@@ -29,3 +29,3 @@ "use strict"; | ||
} | ||
_filterLabelField(query, fieldName, stringFieldFilterQuery) { | ||
_filterLabelField(query, fieldName, filterQueryResult) { | ||
const fieldFilterObject = {}; | ||
@@ -92,3 +92,3 @@ const FLAGS = "gi"; | ||
} | ||
stringFieldFilterQuery[fieldName.uniqueName] = fieldFilterObject; | ||
filterQueryResult[fieldName.uniqueName] = fieldFilterObject; | ||
} | ||
@@ -95,0 +95,0 @@ _filterDateField(query, fieldName, dateFieldFilterQuery) { |
@@ -30,24 +30,28 @@ "use strict"; | ||
let fieldsKey = ""; | ||
for (let key in documentObj) { | ||
element = documentObj[key]; | ||
for (let fieldsCaption in documentObj) { | ||
element = documentObj[fieldsCaption]; | ||
fieldsType = typeof element; | ||
fieldsKey = this._getKeyFromFolder(folder, key); | ||
fieldsKey = this._getKeyFromFolder(folder, fieldsCaption); | ||
if (MongoFieldType_1.MongoFieldType.FUNCTION == fieldsType) { | ||
continue; | ||
} | ||
else if (MongoFieldType_1.MongoFieldType.STRING == fieldsType || MongoFieldType_1.MongoFieldType.BOOLEAN == fieldsType || key == "_id") { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, key, ClientSideFieldType_1.ClientSideFieldType.STRING, folder)); | ||
else if (MongoFieldType_1.MongoFieldType.STRING == fieldsType || MongoFieldType_1.MongoFieldType.BOOLEAN == fieldsType || fieldsCaption == "_id") { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType_1.ClientSideFieldType.STRING, folder)); | ||
} | ||
else if (MongoFieldType_1.MongoFieldType.NUMBER == fieldsType) { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, key, ClientSideFieldType_1.ClientSideFieldType.NUMBER, folder)); | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType_1.ClientSideFieldType.NUMBER, folder)); | ||
} | ||
else if (MongoFieldType_1.MongoFieldType.OBJECT == fieldsType && element instanceof Date) { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, key, ClientSideFieldType_1.ClientSideFieldType.DATE, folder)); | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType_1.ClientSideFieldType.DATE, folder)); | ||
} | ||
else if (MongoFieldType_1.MongoFieldType.OBJECT == fieldsType && element instanceof Array) { | ||
else if (MongoFieldType_1.MongoFieldType.OBJECT == fieldsType && (Array.isArray(element) || element instanceof ArrayBuffer)) { | ||
continue; | ||
} | ||
else if (MongoFieldType_1.MongoFieldType.OBJECT == fieldsType && key != "_id") { | ||
this._parseDocumentShema(element, (folder == "") ? key.toString() : folder + "/" + key.toString()); | ||
else if (MongoFieldType_1.MongoFieldType.OBJECT == fieldsType && fieldsCaption != "_id" && element != null | ||
&& element["_bsontype"] != null && element["_bsontype"] == MongoFieldType_1.MongoFieldType.DECIMAL128) { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType_1.ClientSideFieldType.NUMBER, folder)); | ||
} | ||
else if (MongoFieldType_1.MongoFieldType.OBJECT == fieldsType && fieldsCaption != "_id" && element != null && element["_bsontype"] == null) { | ||
this._parseDocumentShema(element, (folder == "") ? fieldsCaption.toString() : folder + "/" + fieldsCaption.toString()); | ||
} | ||
} | ||
@@ -54,0 +58,0 @@ } |
@@ -7,2 +7,3 @@ export declare class MongoFieldType { | ||
static FUNCTION: string; | ||
static DECIMAL128: string; | ||
} |
@@ -11,2 +11,3 @@ "use strict"; | ||
MongoFieldType.FUNCTION = "function"; | ||
MongoFieldType.DECIMAL128 = "Decimal128"; | ||
//# sourceMappingURL=MongoFieldType.js.map |
{ | ||
"name": "flexmonster-mongo-connector", | ||
"version": "2.8.1", | ||
"version": "2.8.2", | ||
"description": "Custom data source API implementation for MongoDB", | ||
@@ -5,0 +5,0 @@ "main": "build/index.js", |
@@ -9,3 +9,3 @@ import {Db} from 'mongodb'; | ||
public readonly API_VERSION = "2.8.0"; | ||
public readonly API_VERSION = "2.8.2"; | ||
@@ -12,0 +12,0 @@ constructor() { |
@@ -5,2 +5,3 @@ import {SchemaBuilder} from '../schema/SchemaBuilder'; | ||
import {IRequestField} from '../requests/apiRequests/IRequestArgument'; | ||
import {MongoFieldType} from '../utils/consts/MongoFieldType'; | ||
import { Cursor } from 'mongodb'; | ||
@@ -39,3 +40,3 @@ | ||
if (storage[measureKey] == null) storage[measureKey] = {}; | ||
storage[measureKey][measure[1]] = values[key]; | ||
storage[measureKey][measure[1]] = this.parseValueFromComplexType(values[key]) | ||
} | ||
@@ -79,3 +80,3 @@ return storage; | ||
result.push({ | ||
"value": value | ||
"value": this.parseValueFromComplexType(value) | ||
}); | ||
@@ -151,5 +152,15 @@ }, () => { | ||
value = data; | ||
return value; | ||
return this.parseValueFromComplexType(value); | ||
} | ||
private parseValueFromComplexType(value: any): any { | ||
let resultValue = value; | ||
if (value != null && value["_bsontype"] != null && value["_bsontype"] == MongoFieldType.DECIMAL128) { | ||
resultValue = parseFloat(value.toString()); | ||
} else if (value != null && value["_bsontype"] != null) { | ||
resultValue = value.toString(); | ||
} | ||
return resultValue; | ||
} | ||
private parseDotsFromKeys(fieldsKeys: any) { | ||
@@ -161,3 +172,3 @@ let result: any = {}; | ||
keyValue = key.replace(regexp, '.'); | ||
result[keyValue] = fieldsKeys[key]; | ||
result[keyValue] = this.parseValueFromComplexType(fieldsKeys[key]); | ||
} | ||
@@ -164,0 +175,0 @@ return result; |
@@ -33,7 +33,6 @@ import {ClientSideFieldType} from '../../utils/consts/ClientSideFieldType'; | ||
private _filterLabelField(query: any, fieldName: IRequestField, stringFieldFilterQuery: any) { | ||
private _filterLabelField(query: any, fieldName: IRequestField, filterQueryResult: any) { | ||
const fieldFilterObject: any = {}; | ||
const FLAGS = "gi"; | ||
if (query["query"]) { | ||
@@ -85,3 +84,3 @@ query = query["query"]; | ||
stringFieldFilterQuery[fieldName.uniqueName] = fieldFilterObject; | ||
filterQueryResult[fieldName.uniqueName] = fieldFilterObject; | ||
} | ||
@@ -88,0 +87,0 @@ |
@@ -35,18 +35,21 @@ import {APISchema} from './APISchema'; | ||
let fieldsKey: string = ""; | ||
for (let key in documentObj) { | ||
element = documentObj[key]; | ||
for (let fieldsCaption in documentObj) { | ||
element = documentObj[fieldsCaption]; | ||
fieldsType = typeof element; | ||
fieldsKey = this._getKeyFromFolder(folder, key); | ||
fieldsKey = this._getKeyFromFolder(folder, fieldsCaption); | ||
if (MongoFieldType.FUNCTION == fieldsType) { | ||
continue; | ||
} else if (MongoFieldType.STRING == fieldsType || MongoFieldType.BOOLEAN == fieldsType || key == "_id") { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, key, ClientSideFieldType.STRING, folder)); | ||
} else if (MongoFieldType.STRING == fieldsType || MongoFieldType.BOOLEAN == fieldsType || fieldsCaption == "_id") { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType.STRING, folder)); | ||
} else if (MongoFieldType.NUMBER == fieldsType) { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, key, ClientSideFieldType.NUMBER, folder)); | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType.NUMBER, folder)); | ||
} else if (MongoFieldType.OBJECT == fieldsType && element instanceof Date) { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, key, ClientSideFieldType.DATE, folder)); | ||
} else if (MongoFieldType.OBJECT == fieldsType && element instanceof Array) { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType.DATE, folder)); | ||
} else if (MongoFieldType.OBJECT == fieldsType && (Array.isArray(element) || element instanceof ArrayBuffer)) { | ||
continue; | ||
} else if (MongoFieldType.OBJECT == fieldsType && key != "_id") { | ||
this._parseDocumentShema(element, (folder == "") ? key.toString() : folder + "/" + key.toString()); | ||
} else if (MongoFieldType.OBJECT == fieldsType && fieldsCaption != "_id" && element != null | ||
&& element["_bsontype"] != null && element["_bsontype"] == MongoFieldType.DECIMAL128) { | ||
this._shemaObject.fields.set(fieldsKey, this._createSchemaObject(fieldsKey, fieldsCaption, ClientSideFieldType.NUMBER, folder)); | ||
} else if (MongoFieldType.OBJECT == fieldsType && fieldsCaption != "_id" && element != null && element["_bsontype"] == null) { | ||
this._parseDocumentShema(element, (folder == "") ? fieldsCaption.toString() : folder + "/" + fieldsCaption.toString()); | ||
} | ||
@@ -53,0 +56,0 @@ } |
@@ -8,2 +8,3 @@ export class MongoFieldType { | ||
static FUNCTION: string = "function"; | ||
static DECIMAL128: string = "Decimal128"; | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
203294
3107