blixify-server 0.2.14 → 0.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAGrD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAGrD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AA4GD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,SAAM;IACb,KAAK,SAAM;IACX,WAAW,EAAE,GAAG,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;IAEX,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACzC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI;IAe3D,UAAU,SAAU,GAAG,SAIrB;IAEF,aAAa,YACF,GAAG,QACN,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OAC/B,GAAG,UACA;QACN,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,mBA8CD;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAyE5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAkDtC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG;;mBAuCjC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAgKtC;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAqGtC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBA0I5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAwCtC;IAEF,mBAAmB,CAAC,GAAG,EAAE,GAAG;IAiL5B,QAAQ,QAAe,GAAG,OAAO,GAAG;;;;;mBAgQlC;IAEF,IAAI,YA+EF;CACH"}
|
|
@@ -19,98 +19,111 @@ const QueryModel_1 = require("../model/QueryModel");
|
|
|
19
19
|
const utils_1 = require("./utils");
|
|
20
20
|
const handleParseQueryFilter = (queryList, prefix) => {
|
|
21
21
|
const queryFilter = {};
|
|
22
|
+
const queryGroupValues = {};
|
|
22
23
|
if (queryList && queryList.length > 0) {
|
|
23
|
-
queryList.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (eachQuery.searchIds && eachQuery.searchIds.length > 0) {
|
|
27
|
-
eachQuery.searchIds.forEach((eachField) => {
|
|
28
|
-
const mainField = prefix ? `${prefix}.${eachField}` : eachField;
|
|
29
|
-
orConditions.push({
|
|
30
|
-
[mainField]: {
|
|
31
|
-
$regex: eachQuery.value
|
|
32
|
-
.toString()
|
|
33
|
-
.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"),
|
|
34
|
-
$options: "i",
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
if (eachQuery.foreign &&
|
|
40
|
-
eachQuery.foreign.searchFields &&
|
|
41
|
-
eachQuery.foreign.searchFields.length > 0) {
|
|
42
|
-
let foreignAlias = eachQuery.foreign.alias;
|
|
43
|
-
if (!foreignAlias) {
|
|
44
|
-
foreignAlias = eachQuery.foreign.localField;
|
|
45
|
-
}
|
|
46
|
-
if (prefix) {
|
|
47
|
-
foreignAlias = `${prefix}.${foreignAlias}`;
|
|
48
|
-
}
|
|
49
|
-
eachQuery.foreign.searchFields.forEach((foreignField) => {
|
|
50
|
-
orConditions.push({
|
|
51
|
-
[`${foreignAlias}.${foreignField}`]: {
|
|
52
|
-
$regex: eachQuery.value
|
|
53
|
-
.toString()
|
|
54
|
-
.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"),
|
|
55
|
-
$options: "i",
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// For non-"search" types (like "=" or ">" etc.), use queryId.
|
|
62
|
-
let queryId = eachQuery.queryId || "";
|
|
24
|
+
queryList.map((eachQuery) => {
|
|
25
|
+
var _a;
|
|
26
|
+
let queryId = (_a = eachQuery.queryId) !== null && _a !== void 0 ? _a : "";
|
|
63
27
|
if (prefix)
|
|
64
28
|
queryId = `${prefix}.${queryId}`;
|
|
29
|
+
const value = eachQuery.value;
|
|
30
|
+
const queryValues = {};
|
|
31
|
+
let orOption = false;
|
|
65
32
|
switch (eachQuery.type) {
|
|
33
|
+
case "search":
|
|
34
|
+
if (eachQuery.searchIds && eachQuery.searchIds.length > 0) {
|
|
35
|
+
eachQuery.searchIds.map((eachSearchId) => {
|
|
36
|
+
orOption = true;
|
|
37
|
+
queryValues[eachSearchId] = {
|
|
38
|
+
$regex: `${(0, utils_1.handleSpecialWordsEscapeRegex)(value)}`,
|
|
39
|
+
$options: "i",
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
break;
|
|
66
44
|
case "=":
|
|
67
|
-
|
|
45
|
+
queryValues[queryId] = value;
|
|
68
46
|
break;
|
|
69
47
|
case "!=":
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
queryFilter[queryId] = { $in: eachQuery.value };
|
|
48
|
+
queryValues[queryId] = {
|
|
49
|
+
$ne: value,
|
|
50
|
+
};
|
|
74
51
|
break;
|
|
75
52
|
case ">":
|
|
76
|
-
|
|
53
|
+
queryValues[queryId] = {
|
|
54
|
+
$gt: value,
|
|
55
|
+
};
|
|
77
56
|
break;
|
|
78
57
|
case "<":
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
queryFilter[queryId] = { $nin: eachQuery.value };
|
|
58
|
+
queryValues[queryId] = {
|
|
59
|
+
$lt: value,
|
|
60
|
+
};
|
|
83
61
|
break;
|
|
84
62
|
case "><":
|
|
85
|
-
if (Array.isArray(
|
|
86
|
-
|
|
87
|
-
[
|
|
88
|
-
|
|
89
|
-
$lte: eachQuery.value[1],
|
|
90
|
-
},
|
|
63
|
+
if (Array.isArray(value) && value.length >= 2) {
|
|
64
|
+
queryValues[queryId] = {
|
|
65
|
+
$gte: value[0],
|
|
66
|
+
$lte: value[1],
|
|
91
67
|
};
|
|
92
68
|
}
|
|
93
69
|
break;
|
|
70
|
+
case "in":
|
|
71
|
+
queryValues[queryId] = {
|
|
72
|
+
$in: value,
|
|
73
|
+
};
|
|
74
|
+
break;
|
|
75
|
+
case "!in":
|
|
76
|
+
queryFilter[queryId] = {
|
|
77
|
+
$nin: value,
|
|
78
|
+
};
|
|
79
|
+
break;
|
|
94
80
|
case "exists":
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
81
|
+
// Check if field exists or not
|
|
82
|
+
queryValues[queryId] = {
|
|
83
|
+
$exists: value, // `true` if field should exist, `false` if field should not exist
|
|
84
|
+
};
|
|
98
85
|
break;
|
|
99
|
-
// Handle other cases as needed.
|
|
100
86
|
default:
|
|
101
87
|
break;
|
|
102
88
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
89
|
+
if (eachQuery.orQuery)
|
|
90
|
+
orOption = true;
|
|
91
|
+
//INFO : Delete Query Values as it's added outside
|
|
92
|
+
if (eachQuery.orQueryGroupId) {
|
|
93
|
+
const groupValue = queryValues[queryId];
|
|
94
|
+
if (groupValue) {
|
|
95
|
+
if (queryGroupValues[eachQuery.orQueryGroupId]) {
|
|
96
|
+
queryGroupValues[eachQuery.orQueryGroupId]["$and"].push({
|
|
97
|
+
[queryId]: queryValues[queryId],
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
queryGroupValues[eachQuery.orQueryGroupId] = {
|
|
102
|
+
$and: [{ [queryId]: queryValues[queryId] }],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
delete queryValues[queryId];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
Object.keys(queryValues).map((eachKey) => {
|
|
109
|
+
if (orOption) {
|
|
110
|
+
if (queryFilter["$or"])
|
|
111
|
+
queryFilter["$or"].push({ [eachKey]: queryValues[eachKey] });
|
|
112
|
+
else
|
|
113
|
+
queryFilter["$or"] = [{ [eachKey]: queryValues[eachKey] }];
|
|
107
114
|
}
|
|
108
115
|
else {
|
|
109
|
-
queryFilter[
|
|
116
|
+
queryFilter[eachKey] = queryValues[eachKey];
|
|
110
117
|
}
|
|
111
|
-
}
|
|
118
|
+
});
|
|
112
119
|
});
|
|
113
120
|
}
|
|
121
|
+
Object.keys(queryGroupValues).map((eachKey) => {
|
|
122
|
+
if (queryFilter["$or"])
|
|
123
|
+
queryFilter["$or"].push(queryGroupValues[eachKey]);
|
|
124
|
+
else
|
|
125
|
+
queryFilter["$or"] = [queryGroupValues[eachKey]];
|
|
126
|
+
});
|
|
114
127
|
return queryFilter;
|
|
115
128
|
};
|
|
116
129
|
/**
|
|
@@ -1140,24 +1153,6 @@ class MongoWrapper {
|
|
|
1140
1153
|
}
|
|
1141
1154
|
});
|
|
1142
1155
|
}
|
|
1143
|
-
if (query && query.length > 0) {
|
|
1144
|
-
query.forEach((q) => {
|
|
1145
|
-
if (q.foreign) {
|
|
1146
|
-
const alias = q.foreign.alias || q.foreign.localField;
|
|
1147
|
-
if (!addedForeignLookups.has(alias)) {
|
|
1148
|
-
pipelineList.push({
|
|
1149
|
-
$lookup: {
|
|
1150
|
-
from: q.foreign.collection,
|
|
1151
|
-
localField: q.foreign.localField,
|
|
1152
|
-
foreignField: q.foreign.foreignField,
|
|
1153
|
-
as: alias,
|
|
1154
|
-
},
|
|
1155
|
-
});
|
|
1156
|
-
addedForeignLookups.set(alias, true);
|
|
1157
|
-
}
|
|
1158
|
-
}
|
|
1159
|
-
});
|
|
1160
|
-
}
|
|
1161
1156
|
if (query && query.length > 0) {
|
|
1162
1157
|
const filter = handleParseQueryFilter(query);
|
|
1163
1158
|
pipelineList.push({ $match: filter });
|
|
@@ -15,13 +15,6 @@ export interface Query {
|
|
|
15
15
|
value: any;
|
|
16
16
|
queryId?: string;
|
|
17
17
|
searchIds?: string[];
|
|
18
|
-
foreign?: {
|
|
19
|
-
collection: string;
|
|
20
|
-
localField: string;
|
|
21
|
-
foreignField: string;
|
|
22
|
-
searchFields: string[];
|
|
23
|
-
alias?: string;
|
|
24
|
-
};
|
|
25
18
|
orQuery?: boolean;
|
|
26
19
|
orQueryGroupId?: string;
|
|
27
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryModel.d.ts","sourceRoot":"","sources":["../../src/model/QueryModel.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IACzE,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"QueryModel.d.ts","sourceRoot":"","sources":["../../src/model/QueryModel.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IACzE,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,EAAE;YACP,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,EAAE,OAAO,CAAC;SAChB,CAAC;KACH,EAAE,CAAC;CACL;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,WAAY,cAAc,OAAO,GAAG,YAmC/D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,WACjB,cAAc,QAChB,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OACxC,GAAG,OACH,GAAG,YAyDT,CAAC"}
|