@aldb2b/common 1.0.42 → 1.0.43

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.
@@ -0,0 +1,20 @@
1
+ import * as mongoose from 'mongoose';
2
+ import { MongooseFindOptions } from '../mongoose-find-options';
3
+ export declare class AggregateConvertor {
4
+ private findDto;
5
+ private populateFields;
6
+ private aggregates;
7
+ constructor(findDto: MongooseFindOptions, populateFields: object);
8
+ createAggregate(): mongoose.PipelineStage[];
9
+ private modifyQuery;
10
+ private createLookups;
11
+ private getFieldToPopulate;
12
+ private getPipeLine;
13
+ private createObjectIds;
14
+ private isValidObjectId;
15
+ private hasLookupIndex;
16
+ private addProjection;
17
+ private createParameters;
18
+ private getSort;
19
+ private getLimit;
20
+ }
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateConvertor = void 0;
4
+ const mongoose = require("mongoose");
5
+ const moment = require("moment");
6
+ const ObjectId = mongoose.Types.ObjectId;
7
+ class AggregateConvertor {
8
+ constructor(findDto, populateFields) {
9
+ this.findDto = findDto;
10
+ this.populateFields = populateFields;
11
+ this.aggregates = [{ $match: {} }];
12
+ }
13
+ createAggregate() {
14
+ this.modifyQuery();
15
+ this.createLookups();
16
+ this.createObjectIds(this.findDto);
17
+ this.addProjection();
18
+ this.createParameters();
19
+ return this.aggregates;
20
+ }
21
+ modifyQuery() {
22
+ if (this.findDto &&
23
+ Array.isArray(this.findDto.populates) &&
24
+ this.findDto.populates.length > 0) {
25
+ this.findDto.populates = this.findDto.populates.map(item => {
26
+ try {
27
+ return JSON.parse(item);
28
+ }
29
+ catch (err) {
30
+ return item;
31
+ }
32
+ });
33
+ }
34
+ if (this.findDto.query) {
35
+ try {
36
+ this.findDto.query = JSON.parse(this.findDto.query);
37
+ }
38
+ catch (err) { }
39
+ }
40
+ }
41
+ createLookups() {
42
+ const lookUps = [];
43
+ if (this.findDto.needPopulate &&
44
+ Array.isArray(this.findDto.populates) &&
45
+ this.findDto.populates.length) {
46
+ this.findDto.populates.forEach(item => {
47
+ const itemType = typeof item;
48
+ const fieldToPopulate = this.getFieldToPopulate(item, itemType);
49
+ const pipeLine = this.getPipeLine(item, itemType);
50
+ const lookUp = {
51
+ $lookup: {
52
+ from: this.populateFields[fieldToPopulate],
53
+ let: { field_id: `$${fieldToPopulate}` },
54
+ pipeline: pipeLine,
55
+ as: fieldToPopulate,
56
+ },
57
+ };
58
+ if (Array.isArray(lookUp.$lookup.from)) {
59
+ for (let [index, value] of lookUp.$lookup.from.entries()) {
60
+ let finalLookup = Object.assign({}, lookUp);
61
+ finalLookup.$lookup.from = value;
62
+ finalLookup.$lookup.as = 'record' + index;
63
+ lookUps.push({ $lookup: Object.assign({}, finalLookup.$lookup) });
64
+ }
65
+ }
66
+ else {
67
+ lookUps.push(lookUp);
68
+ }
69
+ const unwind = { $unwind: `$${fieldToPopulate}` };
70
+ lookUps.push(unwind);
71
+ });
72
+ }
73
+ this.aggregates.push(...lookUps);
74
+ }
75
+ getFieldToPopulate(item, itemType) {
76
+ return itemType === 'object'
77
+ ? item.path
78
+ : itemType === 'string'
79
+ ? item
80
+ : null;
81
+ }
82
+ getPipeLine(item, itemType) {
83
+ const projection = itemType === 'object' && item.select
84
+ ? item.select.trim().split(/\s+/)
85
+ : null;
86
+ const pipeLine = [
87
+ { $match: { $expr: { $eq: ['$_id', '$$field_id'] } } },
88
+ ];
89
+ if (projection) {
90
+ const selectObject = projection.reduce((obj, item) => {
91
+ return Object.assign(Object.assign({}, obj), { [item]: 1 });
92
+ }, {});
93
+ const projectionObj = { $project: selectObject };
94
+ pipeLine.push(projectionObj);
95
+ }
96
+ return pipeLine;
97
+ }
98
+ createObjectIds(query) {
99
+ for (const item in query) {
100
+ if (this.isValidObjectId(query[item]) && this.hasLookupIndex(item)) {
101
+ const moduleName = `${item}._id`;
102
+ query[moduleName] = new ObjectId(query[item]);
103
+ delete query[item];
104
+ }
105
+ else if (typeof query[item] == 'object' &&
106
+ !this.isValidObjectId(query[item])) {
107
+ this.createObjectIds(query[item]);
108
+ }
109
+ else if (this.isValidObjectId(query[item]) &&
110
+ !this.hasLookupIndex(item)) {
111
+ query[item] = new ObjectId(query[item]);
112
+ }
113
+ else if (moment(query[item], moment.ISO_8601, true).isValid() &&
114
+ String(query[item]).includes('-')) {
115
+ query[item] = new Date(query[item]);
116
+ }
117
+ }
118
+ if (query.query) {
119
+ this.aggregates.push({ $match: query.query });
120
+ }
121
+ }
122
+ isValidObjectId(id) {
123
+ if (!ObjectId.isValid(id)) {
124
+ return false;
125
+ }
126
+ else {
127
+ const newId = new ObjectId(id);
128
+ return String(newId) === id;
129
+ }
130
+ }
131
+ hasLookupIndex(field) {
132
+ const jobIndex = this.aggregates.findIndex(aggregate => { var _a; return ((_a = aggregate['$lookup']) === null || _a === void 0 ? void 0 : _a.as) == field; });
133
+ return jobIndex !== -1;
134
+ }
135
+ addProjection() {
136
+ if (this.findDto.necessaryProjectionArray) {
137
+ const projection = { $project: {} };
138
+ this.findDto.necessaryProjectionArray.forEach(item => {
139
+ projection.$project[item] = 1;
140
+ });
141
+ this.aggregates.push(projection);
142
+ }
143
+ }
144
+ createParameters() {
145
+ const parameters = {
146
+ $facet: {
147
+ data: [],
148
+ total: [],
149
+ },
150
+ };
151
+ if (this.findDto.sort) {
152
+ parameters.$facet.data.push(this.getSort(this.findDto.sort));
153
+ }
154
+ if (this.findDto.hasTotal) {
155
+ parameters.$facet.total.push({ $count: 'total' });
156
+ }
157
+ if (this.findDto.skip) {
158
+ parameters.$facet.data.push({ $skip: Number(this.findDto.skip) });
159
+ }
160
+ else {
161
+ parameters.$facet.data.push({ $skip: 0 });
162
+ }
163
+ parameters.$facet.data.push({ $limit: this.getLimit(this.findDto.limit) });
164
+ if (!parameters.$facet.total.length) {
165
+ delete parameters.$facet.total;
166
+ }
167
+ this.aggregates.push(parameters);
168
+ }
169
+ getSort(sort) {
170
+ let sortObject = {};
171
+ try {
172
+ sortObject = JSON.parse(sort);
173
+ }
174
+ catch (err) {
175
+ const sortArray = sort.trim().split(/\s+/);
176
+ sortArray.forEach(item => {
177
+ if (item.charAt(0) === '-') {
178
+ sortObject[item.substring(1)] = -1;
179
+ }
180
+ else {
181
+ sortObject[item] = 1;
182
+ }
183
+ });
184
+ }
185
+ return { $sort: sortObject };
186
+ }
187
+ getLimit(limit) {
188
+ if (limit) {
189
+ const castedLimit = Number(limit);
190
+ return castedLimit > 100 ? 100 : castedLimit;
191
+ }
192
+ else {
193
+ return 100;
194
+ }
195
+ }
196
+ }
197
+ exports.AggregateConvertor = AggregateConvertor;
198
+ //# sourceMappingURL=AggregateConvertor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AggregateConvertor.js","sourceRoot":"","sources":["../../../src/db/aggregate/AggregateConvertor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function createAggregateResponse(query: any, queryResult: any): any;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAggregateResponse = void 0;
4
+ function createAggregateResponse(query, queryResult) {
5
+ var _a, _b, _c, _d;
6
+ const createResponse = {
7
+ data: ((_b = (_a = queryResult[0]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length) ? queryResult[0].data : [],
8
+ };
9
+ if (query.skip) {
10
+ createResponse.skip = Number(query.skip);
11
+ }
12
+ if (query.limit) {
13
+ createResponse.limit = Number(query.limit);
14
+ }
15
+ else {
16
+ createResponse.limit = 100;
17
+ }
18
+ if (query.hasTotal) {
19
+ createResponse.hasTotal = true;
20
+ createResponse.total =
21
+ queryResult[0].total && ((_d = (_c = queryResult[0]) === null || _c === void 0 ? void 0 : _c.total[0]) === null || _d === void 0 ? void 0 : _d.total)
22
+ ? queryResult[0].total[0].total
23
+ : 0;
24
+ }
25
+ if (createResponse.data.length) {
26
+ createResponse.count = createResponse.data.length;
27
+ }
28
+ if (query.sort) {
29
+ createResponse.sort = query.sort;
30
+ }
31
+ return createResponse;
32
+ }
33
+ exports.createAggregateResponse = createAggregateResponse;
34
+ //# sourceMappingURL=createAggregateResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAggregateResponse.js","sourceRoot":"","sources":["../../../src/db/aggregate/createAggregateResponse.ts"],"names":[],"mappings":";;;AAAA,SAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW;;IACxD,MAAM,cAAc,GAAQ;QAC1B,IAAI,EAAE,CAAA,MAAA,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,IAAI,0CAAE,MAAM,EAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;KAC9D,CAAA;IAED,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,cAAc,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;KACzC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE;QACf,cAAc,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAC3C;SAAM;QACL,cAAc,CAAC,KAAK,GAAG,GAAG,CAAA;KAC3B;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE;QAClB,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAA;QAC9B,cAAc,CAAC,KAAK;YAClB,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,KAAI,MAAA,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAA;gBACrD,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC/B,CAAC,CAAC,CAAC,CAAA;KACR;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE;QAC9B,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAA;KAClD;IAED,IAAI,KAAK,CAAC,IAAI,EAAE;QACd,cAAc,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;KACjC;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AA7BD,0DA6BC"}
package/build/index.d.ts CHANGED
@@ -29,6 +29,8 @@ export * from './interceptors/serialize.interceptor';
29
29
  export * from './db/CustomModel';
30
30
  export * from './db/MongooseBase';
31
31
  export * from './db/mongoose-find-options';
32
+ export * from './db/aggregate/AggregateConvertor';
33
+ export * from './db/aggregate/createAggregateResponse';
32
34
  export * from './types/read-result.interface';
33
35
  export * from './types/update-input-data.interface';
34
36
  export * from './types/user-role.enum';
package/build/index.js CHANGED
@@ -41,6 +41,8 @@ __exportStar(require("./interceptors/serialize.interceptor"), exports);
41
41
  __exportStar(require("./db/CustomModel"), exports);
42
42
  __exportStar(require("./db/MongooseBase"), exports);
43
43
  __exportStar(require("./db/mongoose-find-options"), exports);
44
+ __exportStar(require("./db/aggregate/AggregateConvertor"), exports);
45
+ __exportStar(require("./db/aggregate/createAggregateResponse"), exports);
44
46
  __exportStar(require("./types/read-result.interface"), exports);
45
47
  __exportStar(require("./types/update-input-data.interface"), exports);
46
48
  __exportStar(require("./types/user-role.enum"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAiC;AACjC,iEAA8C;AAC9C,mEAAgD;AAChD,+DAA4C;AAC5C,oEAAiD;AACjD,oEAAiD;AACjD,oEAAiD;AACjD,sEAAmD;AACnD,6EAA0D;AAC1D,uEAAoD;AACpD,sEAAmD;AACnD,6EAA0D;AAE1D,oEAAiD;AACjD,8DAA2C;AAC3C,+DAA4C;AAC5C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,gFAA6D;AAC7D,+DAA4C;AAC5C,yEAAsD;AACtD,mFAAgE;AAChE,iFAA8D;AAC9D,iEAA8C;AAC9C,2EAAwD;AAExD,kEAA+C;AAE/C,sEAAmD;AACnD,uEAAoD;AAEpD,mDAAgC;AAChC,oDAAiC;AACjC,6DAA0C;AAE1C,gEAA6C;AAC7C,sEAAmD;AACnD,yDAAsC;AACtC,yDAAsC;AACtC,gEAA6C;AAC7C,yEAAsD;AACtD,2EAAwD;AACxD,4DAAyC;AACzC,0EAAuD;AAEvD,+DAA4C;AAC5C,sEAAmD;AAEnD,qEAAkD;AAClD,6DAA0C;AAC1C,uDAAoC;AACpC,sDAAmC;AACnC,qDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAiC;AACjC,iEAA8C;AAC9C,mEAAgD;AAChD,+DAA4C;AAC5C,oEAAiD;AACjD,oEAAiD;AACjD,oEAAiD;AACjD,sEAAmD;AACnD,6EAA0D;AAC1D,uEAAoD;AACpD,sEAAmD;AACnD,6EAA0D;AAE1D,oEAAiD;AACjD,8DAA2C;AAC3C,+DAA4C;AAC5C,kEAA+C;AAC/C,wEAAqD;AACrD,kEAA+C;AAC/C,gFAA6D;AAC7D,+DAA4C;AAC5C,yEAAsD;AACtD,mFAAgE;AAChE,iFAA8D;AAC9D,iEAA8C;AAC9C,2EAAwD;AAExD,kEAA+C;AAE/C,sEAAmD;AACnD,uEAAoD;AAEpD,mDAAgC;AAChC,oDAAiC;AACjC,6DAA0C;AAC1C,oEAAiD;AACjD,yEAAsD;AAEtD,gEAA6C;AAC7C,sEAAmD;AACnD,yDAAsC;AACtC,yDAAsC;AACtC,gEAA6C;AAC7C,yEAAsD;AACtD,2EAAwD;AACxD,4DAAyC;AACzC,0EAAuD;AAEvD,+DAA4C;AAC5C,sEAAmD;AAEnD,qEAAkD;AAClD,6DAA0C;AAC1C,uDAAoC;AACpC,sDAAmC;AACnC,qDAAkC"}
@@ -3251,6 +3251,21 @@
3251
3251
  "signature": "c520d545fcfd327c2dd48a18f6b1578b8ec8146fbf275d671ce7ed6cdd9db4ef",
3252
3252
  "affectsGlobalScope": false
3253
3253
  },
3254
+ "../node_modules/moment/ts3.1-typings/moment.d.ts": {
3255
+ "version": "f97edc4d3b4dd0b32766e9633086497565c37657fb591cc84a35864db4bc2fc5",
3256
+ "signature": "f97edc4d3b4dd0b32766e9633086497565c37657fb591cc84a35864db4bc2fc5",
3257
+ "affectsGlobalScope": false
3258
+ },
3259
+ "../src/db/aggregate/AggregateConvertor.ts": {
3260
+ "version": "d78f13e975ed71607870e52cf03cce4ee54007c321cffa51510f9248806eabc2",
3261
+ "signature": "3157c0d28333b08cc1203514a813b593cc918eea880cfc3ebe7cf93f3fa9b41c",
3262
+ "affectsGlobalScope": false
3263
+ },
3264
+ "../src/db/aggregate/createAggregateResponse.ts": {
3265
+ "version": "cdc6050ff195272238176833a84e0ce21ddf082f2ce68e031475e1c5f95177ce",
3266
+ "signature": "5b389eb9ba01d617272ea8690de1cff9e88dbc1b0230c44a6d19137e81c51de5",
3267
+ "affectsGlobalScope": false
3268
+ },
3254
3269
  "../src/types/user-role.enum.ts": {
3255
3270
  "version": "6ee5dc39e2c33caaa5a1dcf296d53d44e1bb18c70b2c0312c04d313f490959d1",
3256
3271
  "signature": "07e5b3234b3a25df34b710a4c0440d0c186e260e190a98fa00fadf2d6fa09091",
@@ -5897,8 +5912,8 @@
5897
5912
  "affectsGlobalScope": false
5898
5913
  },
5899
5914
  "../src/index.ts": {
5900
- "version": "f95dbb2edea5b3bf9fa7602843afb30472ff2cb70337a854a3b3fc052b7255af",
5901
- "signature": "c890ebce623a2228e98e232f4b1dda0be466d7ca4f6798f0b80bb6021c147ebe",
5915
+ "version": "cf71991b0ebcec53d570aad7b116befbfe33407bb23201208590e832637c20b4",
5916
+ "signature": "d818cecfc153e8c5ca764b84958870a6391655fbde24c3b7665c421b20dafeee",
5902
5917
  "affectsGlobalScope": false
5903
5918
  },
5904
5919
  "../node_modules/@types/minimatch/index.d.ts": {
@@ -10586,6 +10601,11 @@
10586
10601
  "../src/types/update-input-data.interface.ts",
10587
10602
  "../src/utils/projection.ts"
10588
10603
  ],
10604
+ "../src/db/aggregate/AggregateConvertor.ts": [
10605
+ "../node_modules/moment/ts3.1-typings/moment.d.ts",
10606
+ "../node_modules/mongoose/index.d.ts",
10607
+ "../src/db/mongoose-find-options.ts"
10608
+ ],
10589
10609
  "../src/db/mongoose-find-options.ts": [
10590
10610
  "../node_modules/@nestjs/swagger/index.d.ts",
10591
10611
  "../node_modules/class-validator/types/index.d.ts"
@@ -10630,6 +10650,8 @@
10630
10650
  "../src/index.ts": [
10631
10651
  "../src/db/CustomModel.ts",
10632
10652
  "../src/db/MongooseBase.ts",
10653
+ "../src/db/aggregate/AggregateConvertor.ts",
10654
+ "../src/db/aggregate/createAggregateResponse.ts",
10633
10655
  "../src/db/mongoose-find-options.ts",
10634
10656
  "../src/decorators/get-user-decorator.ts",
10635
10657
  "../src/events/attendee-contact.interface.ts",
@@ -15359,6 +15381,10 @@
15359
15381
  "../src/types/read-result.interface.ts",
15360
15382
  "../src/types/update-input-data.interface.ts"
15361
15383
  ],
15384
+ "../src/db/aggregate/AggregateConvertor.ts": [
15385
+ "../node_modules/mongoose/index.d.ts",
15386
+ "../src/db/mongoose-find-options.ts"
15387
+ ],
15362
15388
  "../src/events/attendee-contact.interface.ts": [
15363
15389
  "../src/events/subjects.ts"
15364
15390
  ],
@@ -15395,6 +15421,8 @@
15395
15421
  "../src/index.ts": [
15396
15422
  "../src/db/CustomModel.ts",
15397
15423
  "../src/db/MongooseBase.ts",
15424
+ "../src/db/aggregate/AggregateConvertor.ts",
15425
+ "../src/db/aggregate/createAggregateResponse.ts",
15398
15426
  "../src/db/mongoose-find-options.ts",
15399
15427
  "../src/decorators/get-user-decorator.ts",
15400
15428
  "../src/events/attendee-contact.interface.ts",
@@ -16391,6 +16419,7 @@
16391
16419
  "../node_modules/generic-pool/index.d.ts",
16392
16420
  "../node_modules/libphonenumber-js/index.d.ts",
16393
16421
  "../node_modules/libphonenumber-js/types.d.ts",
16422
+ "../node_modules/moment/ts3.1-typings/moment.d.ts",
16394
16423
  "../node_modules/mongodb/mongodb.d.ts",
16395
16424
  "../node_modules/mongoose/index.d.ts",
16396
16425
  "../node_modules/redis/dist/index.d.ts",
@@ -16617,6 +16646,8 @@
16617
16646
  "../node_modules/typescript/lib/lib.webworker.importscripts.d.ts",
16618
16647
  "../src/db/CustomModel.ts",
16619
16648
  "../src/db/MongooseBase.ts",
16649
+ "../src/db/aggregate/AggregateConvertor.ts",
16650
+ "../src/db/aggregate/createAggregateResponse.ts",
16620
16651
  "../src/db/mongoose-find-options.ts",
16621
16652
  "../src/decorators/get-user-decorator.ts",
16622
16653
  "../src/events/attendee-contact.interface.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aldb2b/common",
3
- "version": "1.0.42",
3
+ "version": "1.0.43",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -27,6 +27,7 @@
27
27
  "class-transformer": "^0.4.0",
28
28
  "class-validator": "^0.13.2",
29
29
  "express": "^4.17.2",
30
+ "moment": "^2.29.1",
30
31
  "mongoose": "^6.1.4",
31
32
  "redis": "^4.0.2",
32
33
  "rxjs": "^7.5.1"