@smartsoft001/mongo 2.148.0 → 2.149.0

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,387 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MongoItemRepository = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const mongodb_1 = require("mongodb");
7
+ const rxjs_1 = require("rxjs");
8
+ const operators_1 = require("rxjs/operators");
9
+ const domain_core_1 = require("@smartsoft001/domain-core");
10
+ const models_1 = require("@smartsoft001/models");
11
+ const utils_1 = require("@smartsoft001/utils");
12
+ const mongo_config_1 = require("../mongo.config");
13
+ const mongo_utils_1 = require("../mongo.utils");
14
+ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemRepository {
15
+ config;
16
+ constructor(config) {
17
+ super();
18
+ this.config = config;
19
+ }
20
+ async create(item, user, repoOptions) {
21
+ await this.collectionContext(async (collection) => {
22
+ try {
23
+ await collection.insertOne(this.getModelToCreate(item, user), {
24
+ session: repoOptions?.transaction?.session,
25
+ });
26
+ this.logChange('create', item, repoOptions, user, null).then();
27
+ }
28
+ catch (errInsert) {
29
+ this.logChange('create', item, repoOptions, user, errInsert).then();
30
+ throw errInsert;
31
+ }
32
+ });
33
+ }
34
+ async clear(user, repoOptions) {
35
+ await this.collectionContext(async (collection) => {
36
+ try {
37
+ await collection.deleteMany({}, { session: repoOptions?.transaction?.session });
38
+ this.logChange('clear', null, repoOptions, user, null).then();
39
+ }
40
+ catch (errClear) {
41
+ this.logChange('clear', null, repoOptions, user, errClear).then();
42
+ throw errClear;
43
+ }
44
+ });
45
+ }
46
+ async createMany(list, user, repoOptions) {
47
+ await this.collectionContext(async (collection) => {
48
+ try {
49
+ await collection.insertMany(list.map((item) => this.getModelToCreate(item, user)), { session: repoOptions?.transaction?.session });
50
+ this.logChange('createMany', null, repoOptions, user, null).then();
51
+ }
52
+ catch (errInsert) {
53
+ this.logChange('createMany', null, repoOptions, user, errInsert).then();
54
+ throw errInsert;
55
+ }
56
+ });
57
+ }
58
+ async update(item, user, repoOptions) {
59
+ await this.collectionContext(async (collection) => {
60
+ try {
61
+ const info = await this.getInfo(item.id, collection);
62
+ await collection.replaceOne({ _id: item.id }, this.getModelToUpdate(item, user, info), { session: repoOptions?.transaction?.session });
63
+ this.logChange('update', item, repoOptions, user, null).then();
64
+ }
65
+ catch (errInsert) {
66
+ this.logChange('update', item, repoOptions, user, errInsert).then();
67
+ throw errInsert;
68
+ }
69
+ });
70
+ }
71
+ async updatePartial(item, user, repoOptions) {
72
+ await this.collectionContext(async (collection) => {
73
+ try {
74
+ const info = await this.getInfo(item.id, collection);
75
+ await collection.updateOne({ _id: item.id }, {
76
+ $set: this.getModelToUpdate(item, user, info),
77
+ }, { session: repoOptions?.transaction?.session });
78
+ this.logChange('updatePartial', item, repoOptions, user, null).then();
79
+ }
80
+ catch (errUpdate) {
81
+ this.logChange('updatePartial', item, repoOptions, user, errUpdate).then();
82
+ throw errUpdate;
83
+ }
84
+ });
85
+ }
86
+ async updatePartialManyByCriteria(criteria, set, user, repoOptions) {
87
+ await this.collectionContext(async (collection) => {
88
+ try {
89
+ this.convertIdInCriteria(criteria);
90
+ await collection.updateMany(criteria, {
91
+ $set: {
92
+ ...set,
93
+ '__info.update': {
94
+ username: user?.username,
95
+ date: new Date(),
96
+ },
97
+ },
98
+ }, { session: repoOptions?.transaction?.session });
99
+ this.logChange('updatePartialManyByCriteria', {
100
+ ...criteria,
101
+ set,
102
+ }, repoOptions, user, null).then();
103
+ }
104
+ catch (errUpdate) {
105
+ this.logChange('updatePartialManyByCriteria', {
106
+ ...criteria,
107
+ set,
108
+ }, repoOptions, user, errUpdate).then();
109
+ throw errUpdate;
110
+ }
111
+ });
112
+ }
113
+ updatePartialManyBySpecification(spec, set, user, repoOptions) {
114
+ return this.updatePartialManyByCriteria(spec.criteria, set, user, repoOptions);
115
+ }
116
+ async delete(id, user, repoOptions) {
117
+ await this.collectionContext(async (collection) => {
118
+ try {
119
+ await collection.deleteOne({ _id: id }, { session: repoOptions?.transaction?.session });
120
+ this.logChange('delete', {
121
+ id,
122
+ }, repoOptions, user, null).then();
123
+ }
124
+ catch (errDelete) {
125
+ this.logChange('delete', {
126
+ id,
127
+ }, repoOptions, user, errDelete).then();
128
+ throw errDelete;
129
+ }
130
+ });
131
+ }
132
+ async getById(id, repoOptions) {
133
+ return await this.collectionContext(async (collection) => {
134
+ const item = await collection.findOne({ _id: id }, {
135
+ session: repoOptions?.transaction?.session,
136
+ });
137
+ return this.getModelToResult(item);
138
+ });
139
+ }
140
+ async getByCriteria(criteria, options = {}) {
141
+ return await this.collectionContext(async (collection) => {
142
+ this.convertIdInCriteria(criteria);
143
+ this.generateSearch(criteria);
144
+ const totalCount = await this.getCount(criteria, collection);
145
+ const aggregate = [];
146
+ if (criteria) {
147
+ aggregate.push({ $match: criteria });
148
+ }
149
+ if (options?.sort) {
150
+ aggregate.push({ $sort: options.sort });
151
+ }
152
+ if (options?.skip) {
153
+ aggregate.push({ $skip: options.skip });
154
+ }
155
+ if (options?.limit) {
156
+ aggregate.push({ $limit: options.limit });
157
+ }
158
+ if (options?.project) {
159
+ aggregate.push({ $project: options.project });
160
+ }
161
+ if (options?.min) {
162
+ aggregate.push({ $min: options.min });
163
+ }
164
+ if (options?.max) {
165
+ aggregate.push({ $max: options.max });
166
+ }
167
+ if (options?.group) {
168
+ aggregate.push({ $group: options.group });
169
+ }
170
+ const list = await collection
171
+ .aggregate(aggregate, {
172
+ allowDiskUse: options?.allowDiskUse,
173
+ session: options?.session,
174
+ })
175
+ .toArray();
176
+ return {
177
+ data: list.map((item) => this.getModelToResult(item)),
178
+ totalCount,
179
+ };
180
+ });
181
+ }
182
+ getBySpecification(spec, options = {}) {
183
+ return this.getByCriteria(spec.criteria, options);
184
+ }
185
+ async countByCriteria(criteria) {
186
+ return await this.collectionContext(async (collection) => {
187
+ this.convertIdInCriteria(criteria);
188
+ this.generateSearch(criteria);
189
+ return await this.getCount(criteria, collection);
190
+ });
191
+ }
192
+ countBySpecification(spec) {
193
+ return this.countByCriteria(spec.criteria);
194
+ }
195
+ changesByCriteria(criteria) {
196
+ let stream;
197
+ let client;
198
+ return new rxjs_1.Observable((observer) => {
199
+ (async () => {
200
+ try {
201
+ client = await mongodb_1.MongoClient.connect(this.getUrl());
202
+ const db = client.db(this.config.database);
203
+ const collection = db.collection(this.config.collection);
204
+ const pipeline = criteria.id
205
+ ? [
206
+ {
207
+ $match: {
208
+ 'documentKey._id': criteria.id,
209
+ },
210
+ },
211
+ ]
212
+ : [];
213
+ stream = collection.watch(pipeline).on('change', (result) => {
214
+ observer.next({
215
+ id: result['documentKey']['_id'],
216
+ type: this.mapChangeType(result.operationType),
217
+ data: result.operationType === 'update'
218
+ ? result['updateDescription']
219
+ : this.getModelToResult(result['fullDocument']),
220
+ });
221
+ });
222
+ }
223
+ catch (err) {
224
+ observer.error(err);
225
+ }
226
+ })();
227
+ }).pipe((0, operators_1.finalize)(async () => {
228
+ console.log('Stop watch');
229
+ await stream.close();
230
+ await client.close();
231
+ }), (0, operators_1.share)());
232
+ }
233
+ async getContext(handler) {
234
+ const client = await mongodb_1.MongoClient.connect(this.getUrl());
235
+ const db = client.db(this.config.database);
236
+ try {
237
+ const result = await handler(db);
238
+ await client.close();
239
+ return result;
240
+ }
241
+ catch (e) {
242
+ await client.close();
243
+ throw e;
244
+ }
245
+ }
246
+ async getCount(criteria, collection) {
247
+ this.convertIdInCriteria(criteria);
248
+ return await collection.countDocuments(criteria);
249
+ }
250
+ async getInfo(id, collection) {
251
+ const array = await collection
252
+ .aggregate([{ $match: { _id: id } }, { $project: { __info: 1 } }])
253
+ .toArray();
254
+ return array[0] ? array[0]['__info'] : {};
255
+ }
256
+ getModelToCreate(item, user) {
257
+ const result = utils_1.ObjectService.removeTypes(item);
258
+ result['_id'] = result.id;
259
+ delete result.id;
260
+ result['__info'] = {
261
+ create: {
262
+ username: user ? user.username : null,
263
+ date: new Date(),
264
+ },
265
+ };
266
+ return result;
267
+ }
268
+ mapChangeType(dbType) {
269
+ const map = {
270
+ insert: 'create',
271
+ update: 'update',
272
+ delete: 'delete',
273
+ };
274
+ return map[dbType];
275
+ }
276
+ getModelToUpdate(item, user, info) {
277
+ const result = utils_1.ObjectService.removeTypes(item);
278
+ result['_id'] = result.id;
279
+ delete result.id;
280
+ result['__info'] = {
281
+ ...info,
282
+ update: {
283
+ username: user ? user.username : null,
284
+ date: new Date(),
285
+ },
286
+ };
287
+ return result;
288
+ }
289
+ getModelToResult(item) {
290
+ if (!item)
291
+ return null;
292
+ const result = utils_1.ObjectService.removeTypes(item);
293
+ result['id'] = result._id;
294
+ delete result._id;
295
+ delete result['__info'];
296
+ return result;
297
+ }
298
+ getUrl() {
299
+ return (0, mongo_utils_1.getMongoUrl)(this.config);
300
+ }
301
+ async logChange(type, item, options, user, error) {
302
+ const client = await mongodb_1.MongoClient.connect(this.getUrl());
303
+ const db = client.db(this.config.database);
304
+ try {
305
+ await db.collection('changes').insertOne({
306
+ type,
307
+ collection: this.config.collection,
308
+ item,
309
+ options,
310
+ user,
311
+ error,
312
+ date: new Date(),
313
+ });
314
+ }
315
+ catch (e) {
316
+ console.warn(e);
317
+ }
318
+ finally {
319
+ await client.close();
320
+ }
321
+ }
322
+ generateSearch(criteria) {
323
+ if (!criteria['$search'])
324
+ return;
325
+ if (this.config.type) {
326
+ const modelFields = (0, models_1.getModelFieldsWithOptions)(new this.config.type()).filter((i) => i.options.search);
327
+ if (modelFields.length) {
328
+ const searchArray = [];
329
+ modelFields.forEach((val) => {
330
+ const res = {};
331
+ res[val.key] = {
332
+ $regex: this.convertRegex(criteria['$search']),
333
+ $options: 'i',
334
+ };
335
+ searchArray.push(res);
336
+ });
337
+ if (!criteria['$or'])
338
+ criteria['$or'] = searchArray;
339
+ else if (criteria['$or'] && !criteria['$and']) {
340
+ criteria['$and'] = [{ $or: criteria['$or'] }, { $or: searchArray }];
341
+ delete criteria['$or'];
342
+ }
343
+ else if (criteria['$and']) {
344
+ criteria['$and'] = [...criteria['$and'], { $or: searchArray }];
345
+ }
346
+ delete criteria['$search'];
347
+ return;
348
+ }
349
+ }
350
+ const customCriteria = {
351
+ $text: { $search: ' "' + this.convertRegex(criteria['$search']) + '" ' },
352
+ };
353
+ delete criteria['$search'];
354
+ Object.assign(criteria, customCriteria);
355
+ }
356
+ convertIdInCriteria(criteria) {
357
+ if (criteria['id']) {
358
+ criteria['_id'] = criteria['id'];
359
+ delete criteria['id'];
360
+ }
361
+ }
362
+ convertRegex(val) {
363
+ return val.toString().replace(/\*/g, '[*]');
364
+ }
365
+ async collectionContext(callback, repoOptions) {
366
+ const client = repoOptions?.transaction
367
+ ?.connection
368
+ ? repoOptions.transaction.connection
369
+ : await mongodb_1.MongoClient.connect(this.getUrl());
370
+ const db = client.db(this.config.database);
371
+ let result;
372
+ try {
373
+ result = await callback(db.collection(this.config.collection));
374
+ }
375
+ finally {
376
+ if (!repoOptions?.transaction)
377
+ await client.close();
378
+ }
379
+ return result;
380
+ }
381
+ };
382
+ exports.MongoItemRepository = MongoItemRepository;
383
+ exports.MongoItemRepository = MongoItemRepository = tslib_1.__decorate([
384
+ (0, common_1.Injectable)(),
385
+ tslib_1.__metadata("design:paramtypes", [mongo_config_1.MongoConfig])
386
+ ], MongoItemRepository);
387
+ //# sourceMappingURL=item.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.repository.js","sourceRoot":"","sources":["../../../../../../../packages/shared/mongo/src/lib/repositories/item.repository.ts"],"names":[],"mappings":"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"}
package/test-setup.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=test-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../../../../packages/shared/mongo/test-setup.ts"],"names":[],"mappings":""}