@smartsoft001/mongo 1.1.72 → 1.1.75
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.
- package/package.json +12 -12
- package/src/lib/mongo.unitofwork.js +32 -40
- package/src/lib/mongo.unitofwork.js.map +1 -1
- package/src/lib/repositories/attachment.repository.js +38 -68
- package/src/lib/repositories/attachment.repository.js.map +1 -1
- package/src/lib/repositories/item.repository.d.ts +8 -7
- package/src/lib/repositories/item.repository.js +199 -391
- package/src/lib/repositories/item.repository.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartsoft001/mongo",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.75",
|
|
4
4
|
"description": "Utils to mongo",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,26 +18,26 @@
|
|
|
18
18
|
},
|
|
19
19
|
"homepage": "https://github.com/emiljuchnikowski/smartsoft#readme",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@angular/common": "
|
|
22
|
-
"@angular/core": "
|
|
23
|
-
"@angular/platform-browser-dynamic": "
|
|
24
|
-
"@nestjs/common": "
|
|
21
|
+
"@angular/common": "16.1.3",
|
|
22
|
+
"@angular/core": "16.1.3",
|
|
23
|
+
"@angular/platform-browser-dynamic": "16.1.3",
|
|
24
|
+
"@nestjs/common": "^10.0.5",
|
|
25
25
|
"flatted": "^3.2.4",
|
|
26
26
|
"guid-typescript": "1.0.9",
|
|
27
27
|
"lodash": "^4.17.20",
|
|
28
28
|
"md5": "2.3.0",
|
|
29
|
-
"mongodb": "
|
|
29
|
+
"mongodb": "5.6.0",
|
|
30
30
|
"reflect-metadata": "0.1.13",
|
|
31
31
|
"rxjs": "7.8.1"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@smartsoft001/crud-shell-dtos": "1.1.
|
|
35
|
-
"@smartsoft001/domain-core": "1.1.
|
|
36
|
-
"@smartsoft001/models": "1.1.
|
|
37
|
-
"@smartsoft001/users": "1.1.
|
|
38
|
-
"@smartsoft001/utils": "1.1.
|
|
34
|
+
"@smartsoft001/crud-shell-dtos": "1.1.75",
|
|
35
|
+
"@smartsoft001/domain-core": "1.1.75",
|
|
36
|
+
"@smartsoft001/models": "1.1.75",
|
|
37
|
+
"@smartsoft001/users": "1.1.75",
|
|
38
|
+
"@smartsoft001/utils": "1.1.75",
|
|
39
39
|
"util": "0.12.5",
|
|
40
|
-
"tslib": "2.
|
|
40
|
+
"tslib": "2.5.3"
|
|
41
41
|
},
|
|
42
42
|
"main": "./src/index.js",
|
|
43
43
|
"types": "./src/index.d.ts"
|
|
@@ -7,58 +7,50 @@ const common_1 = require("@nestjs/common");
|
|
|
7
7
|
const domain_core_1 = require("@smartsoft001/domain-core");
|
|
8
8
|
const mongo_config_1 = require("./mongo.config");
|
|
9
9
|
const mongo_utils_1 = require("./mongo.utils");
|
|
10
|
-
let MongoUnitOfWork = class MongoUnitOfWork extends domain_core_1.IUnitOfWork {
|
|
10
|
+
let MongoUnitOfWork = exports.MongoUnitOfWork = class MongoUnitOfWork extends domain_core_1.IUnitOfWork {
|
|
11
11
|
constructor(config) {
|
|
12
12
|
super();
|
|
13
13
|
this.config = config;
|
|
14
14
|
}
|
|
15
15
|
scope(definition) {
|
|
16
|
-
return
|
|
17
|
-
mongodb_1.MongoClient.connect(this.getUrl()
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
yield client.close();
|
|
47
|
-
}
|
|
48
|
-
if (error)
|
|
49
|
-
rej(error);
|
|
50
|
-
else
|
|
51
|
-
res();
|
|
52
|
-
}));
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
const client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
18
|
+
// Step 1: Start a Client Session
|
|
19
|
+
const session = client.startSession();
|
|
20
|
+
// Step 2: Optional. Define options to use for the transaction
|
|
21
|
+
const transactionOptions = {
|
|
22
|
+
readPreference: 'primary',
|
|
23
|
+
readConcern: { level: 'local' },
|
|
24
|
+
writeConcern: { w: 'majority' }
|
|
25
|
+
};
|
|
26
|
+
// Step 3: Use withTransaction to start a transaction, execute the callback, and commit (or abort on error)
|
|
27
|
+
// Note: The callback for withTransaction MUST be async and/or return a Promise.
|
|
28
|
+
let error = null;
|
|
29
|
+
try {
|
|
30
|
+
yield session.withTransaction(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
yield definition({
|
|
32
|
+
session,
|
|
33
|
+
connection: client
|
|
34
|
+
});
|
|
35
|
+
}), transactionOptions);
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
error = e;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
yield session.endSession();
|
|
42
|
+
yield client.close();
|
|
43
|
+
}
|
|
44
|
+
if (error)
|
|
45
|
+
throw error;
|
|
53
46
|
});
|
|
54
47
|
}
|
|
55
48
|
getUrl() {
|
|
56
49
|
return (0, mongo_utils_1.getMongoUrl)(this.config);
|
|
57
50
|
}
|
|
58
51
|
};
|
|
59
|
-
MongoUnitOfWork = tslib_1.__decorate([
|
|
52
|
+
exports.MongoUnitOfWork = MongoUnitOfWork = tslib_1.__decorate([
|
|
60
53
|
(0, common_1.Injectable)(),
|
|
61
54
|
tslib_1.__metadata("design:paramtypes", [mongo_config_1.MongoConfig])
|
|
62
55
|
], MongoUnitOfWork);
|
|
63
|
-
exports.MongoUnitOfWork = MongoUnitOfWork;
|
|
64
56
|
//# sourceMappingURL=mongo.unitofwork.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo.unitofwork.js","sourceRoot":"","sources":["../../../../../../libs/shared/mongo/src/lib/mongo.unitofwork.ts"],"names":[],"mappings":";;;;AAAA,qCAAuE;AACvE,2CAA0C;AAE1C,2DAAoE;AAEpE,iDAA2C;AAC3C,+CAA0C;AAOnC,IAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"mongo.unitofwork.js","sourceRoot":"","sources":["../../../../../../libs/shared/mongo/src/lib/mongo.unitofwork.ts"],"names":[],"mappings":";;;;AAAA,qCAAuE;AACvE,2CAA0C;AAE1C,2DAAoE;AAEpE,iDAA2C;AAC3C,+CAA0C;AAOnC,IAAM,eAAe,6BAArB,MAAM,eAAgB,SAAQ,yBAAW;IAC5C,YAAoB,MAAmB;QACnC,KAAK,EAAE,CAAC;QADQ,WAAM,GAAN,MAAM,CAAa;IAEvC,CAAC;IAEK,KAAK,CAAC,UAAwD;;YAChE,MAAM,MAAM,GAAG,MAAO,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzD,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAEtC,8DAA8D;YAC9D,MAAM,kBAAkB,GAAuB;gBAC3C,cAAc,EAAE,SAAS;gBACzB,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC/B,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE;aAClC,CAAC;YAEF,2GAA2G;YAC3G,gFAAgF;YAEhF,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI;gBACA,MAAM,OAAO,CAAC,eAAe,CAAC,GAAS,EAAE;oBACrC,MAAM,UAAU,CAAC;wBACb,OAAO;wBACP,UAAU,EAAE,MAAM;qBACA,CAAC,CAAC;gBAC5B,CAAC,CAAA,EAAE,kBAAkB,CAAC,CAAC;aAC1B;YAAC,OAAO,CAAC,EAAE;gBACR,KAAK,GAAG,CAAC,CAAC;aACb;oBAAU;gBACP,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;aACxB;YAED,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;QAC3B,CAAC;KAAA;IAEO,MAAM;QACV,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACJ,CAAA;0BA1CY,eAAe;IAD3B,IAAA,mBAAU,GAAE;6CAEmB,0BAAW;GAD9B,eAAe,CA0C3B"}
|
|
@@ -8,18 +8,15 @@ const mongo = require("mongodb");
|
|
|
8
8
|
const domain_core_1 = require("@smartsoft001/domain-core");
|
|
9
9
|
const mongo_config_1 = require("../mongo.config");
|
|
10
10
|
const mongo_utils_1 = require("../mongo.utils");
|
|
11
|
-
let MongoAttachmentRepository = class MongoAttachmentRepository extends domain_core_1.IAttachmentRepository {
|
|
11
|
+
let MongoAttachmentRepository = exports.MongoAttachmentRepository = class MongoAttachmentRepository extends domain_core_1.IAttachmentRepository {
|
|
12
12
|
constructor(config) {
|
|
13
13
|
super();
|
|
14
14
|
this.config = config;
|
|
15
15
|
}
|
|
16
16
|
upload(data, options) {
|
|
17
|
-
return
|
|
18
|
-
mongodb_1.MongoClient.connect(this.getUrl()
|
|
19
|
-
|
|
20
|
-
rej(err);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
17
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
19
|
+
return yield new Promise((res, rej) => {
|
|
23
20
|
const db = client.db(this.config.database);
|
|
24
21
|
const bucket = new mongo.GridFSBucket(db, {
|
|
25
22
|
bucketName: this.config.collection
|
|
@@ -36,83 +33,56 @@ let MongoAttachmentRepository = class MongoAttachmentRepository extends domain_c
|
|
|
36
33
|
writeStream.on("finish", () => {
|
|
37
34
|
res();
|
|
38
35
|
});
|
|
39
|
-
})
|
|
36
|
+
});
|
|
40
37
|
});
|
|
41
38
|
}
|
|
42
39
|
getInfo(id) {
|
|
43
|
-
return
|
|
44
|
-
mongodb_1.MongoClient.connect(this.getUrl()
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
client.close();
|
|
61
|
-
if (!items[0])
|
|
62
|
-
res(items[0]);
|
|
63
|
-
else
|
|
64
|
-
res({
|
|
65
|
-
fileName: items[0].filename,
|
|
66
|
-
contentType: items[0].contentType,
|
|
67
|
-
length: items[0].length
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
}));
|
|
40
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
42
|
+
const db = client.db(this.config.database);
|
|
43
|
+
const bucket = new mongo.GridFSBucket(db, {
|
|
44
|
+
bucketName: this.config.collection
|
|
45
|
+
});
|
|
46
|
+
const items = yield bucket.find({
|
|
47
|
+
_id: id
|
|
48
|
+
}).toArray();
|
|
49
|
+
yield client;
|
|
50
|
+
if (!items[0])
|
|
51
|
+
return null;
|
|
52
|
+
return {
|
|
53
|
+
fileName: items[0].filename,
|
|
54
|
+
contentType: items[0].contentType,
|
|
55
|
+
length: items[0].length
|
|
56
|
+
};
|
|
71
57
|
});
|
|
72
58
|
}
|
|
73
59
|
getStream(id, options) {
|
|
74
|
-
return
|
|
75
|
-
mongodb_1.MongoClient.connect(this.getUrl()
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const bucket = new mongo.GridFSBucket(db, {
|
|
82
|
-
bucketName: this.config.collection
|
|
83
|
-
});
|
|
84
|
-
res(bucket.openDownloadStream(id, options));
|
|
85
|
-
}));
|
|
60
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
62
|
+
const db = client.db(this.config.database);
|
|
63
|
+
const bucket = new mongo.GridFSBucket(db, {
|
|
64
|
+
bucketName: this.config.collection
|
|
65
|
+
});
|
|
66
|
+
return bucket.openDownloadStream(id, options);
|
|
86
67
|
});
|
|
87
68
|
}
|
|
88
69
|
delete(id) {
|
|
89
|
-
return
|
|
90
|
-
mongodb_1.MongoClient.connect(this.getUrl()
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
bucketName: this.config.collection
|
|
98
|
-
});
|
|
99
|
-
bucket.delete(id, (err2) => {
|
|
100
|
-
if (err2)
|
|
101
|
-
rej(err2);
|
|
102
|
-
else
|
|
103
|
-
res();
|
|
104
|
-
client.close();
|
|
105
|
-
});
|
|
106
|
-
}));
|
|
70
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
const client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
72
|
+
const db = client.db(this.config.database);
|
|
73
|
+
const bucket = new mongo.GridFSBucket(db, {
|
|
74
|
+
bucketName: this.config.collection
|
|
75
|
+
});
|
|
76
|
+
yield bucket.delete(id);
|
|
77
|
+
yield client.close();
|
|
107
78
|
});
|
|
108
79
|
}
|
|
109
80
|
getUrl() {
|
|
110
81
|
return (0, mongo_utils_1.getMongoUrl)(this.config);
|
|
111
82
|
}
|
|
112
83
|
};
|
|
113
|
-
MongoAttachmentRepository = tslib_1.__decorate([
|
|
84
|
+
exports.MongoAttachmentRepository = MongoAttachmentRepository = tslib_1.__decorate([
|
|
114
85
|
(0, common_1.Injectable)(),
|
|
115
86
|
tslib_1.__metadata("design:paramtypes", [mongo_config_1.MongoConfig])
|
|
116
87
|
], MongoAttachmentRepository);
|
|
117
|
-
exports.MongoAttachmentRepository = MongoAttachmentRepository;
|
|
118
88
|
//# sourceMappingURL=attachment.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/attachment.repository.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,qCAAoD;AAIpD,iCAAiC;AAEjC,2DAGmC;AAEnC,kDAA8C;AAC9C,gDAA6C;AAGtC,IAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"attachment.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/attachment.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Db } from
|
|
2
|
-
import { Observable } from
|
|
3
|
-
import { IEntity, IItemRepository, IItemRepositoryOptions, ISpecification } from
|
|
4
|
-
import { IUser } from
|
|
5
|
-
import { ItemChangedData } from
|
|
6
|
-
import { MongoConfig } from
|
|
1
|
+
import { Collection, Db } from 'mongodb';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { IEntity, IItemRepository, IItemRepositoryOptions, ISpecification } from '@smartsoft001/domain-core';
|
|
4
|
+
import { IUser } from '@smartsoft001/users';
|
|
5
|
+
import { ItemChangedData } from '@smartsoft001/crud-shell-dtos';
|
|
6
|
+
import { MongoConfig } from '../mongo.config';
|
|
7
7
|
export declare class MongoItemRepository<T extends IEntity<string>> extends IItemRepository<T> {
|
|
8
8
|
protected config: MongoConfig;
|
|
9
9
|
readonly useUnifiedTopology = false;
|
|
@@ -44,8 +44,9 @@ export declare class MongoItemRepository<T extends IEntity<string>> extends IIte
|
|
|
44
44
|
};
|
|
45
45
|
protected getModelToResult(item: T): T;
|
|
46
46
|
protected getUrl(): string;
|
|
47
|
-
protected logChange(type: any, item: any, options: any, user: any, error: any): void
|
|
47
|
+
protected logChange(type: any, item: any, options: any, user: any, error: any): Promise<void>;
|
|
48
48
|
protected generateSearch(criteria: any): void;
|
|
49
49
|
protected convertIdInCriteria(criteria: any): void;
|
|
50
50
|
protected convertRegex(val: string): string;
|
|
51
|
+
protected collectionContext<T>(callback: (collection: Collection) => Promise<any>, repoOptions?: IItemRepositoryOptions): Promise<any>;
|
|
51
52
|
}
|
|
@@ -11,240 +11,105 @@ const utils_1 = require("@smartsoft001/utils");
|
|
|
11
11
|
const models_1 = require("@smartsoft001/models");
|
|
12
12
|
const mongo_config_1 = require("../mongo.config");
|
|
13
13
|
const mongo_utils_1 = require("../mongo.utils");
|
|
14
|
-
let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemRepository {
|
|
14
|
+
let MongoItemRepository = exports.MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemRepository {
|
|
15
15
|
constructor(config) {
|
|
16
16
|
super();
|
|
17
17
|
this.config = config;
|
|
18
18
|
this.useUnifiedTopology = false;
|
|
19
19
|
}
|
|
20
20
|
create(item, user, repoOptions) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
res();
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
return new Promise((res, rej) => {
|
|
35
|
-
mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
|
|
36
|
-
if (err) {
|
|
37
|
-
rej(err);
|
|
38
|
-
return;
|
|
21
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
try {
|
|
24
|
+
yield collection.insertOne(this.getModelToCreate(item, user), {
|
|
25
|
+
session: repoOptions.transaction.session,
|
|
26
|
+
});
|
|
27
|
+
this.logChange('create', item, repoOptions, user, null);
|
|
39
28
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
client.close();
|
|
48
|
-
res();
|
|
49
|
-
});
|
|
50
|
-
});
|
|
29
|
+
catch (errInsert) {
|
|
30
|
+
this.logChange('create', item, repoOptions, user, errInsert);
|
|
31
|
+
throw errInsert;
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
51
34
|
});
|
|
52
35
|
}
|
|
53
36
|
clear(user, repoOptions) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.logChange(
|
|
59
|
-
if (errClear) {
|
|
60
|
-
rej(errClear);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
res();
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
return new Promise((res, rej) => {
|
|
68
|
-
mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
|
|
69
|
-
if (err) {
|
|
70
|
-
rej(err);
|
|
71
|
-
return;
|
|
37
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
try {
|
|
40
|
+
yield collection.deleteMany({}, { session: repoOptions.transaction.session });
|
|
41
|
+
this.logChange('clear', null, repoOptions, user, null);
|
|
72
42
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
client.close();
|
|
81
|
-
res();
|
|
82
|
-
});
|
|
83
|
-
});
|
|
43
|
+
catch (errClear) {
|
|
44
|
+
this.logChange('clear', null, repoOptions, user, errClear);
|
|
45
|
+
throw errClear;
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
84
48
|
});
|
|
85
49
|
}
|
|
86
50
|
createMany(list, user, repoOptions) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
this.logChange(
|
|
92
|
-
if (errInsert) {
|
|
93
|
-
rej(errInsert);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
res();
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
return new Promise((res, rej) => {
|
|
101
|
-
mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
|
|
102
|
-
if (err) {
|
|
103
|
-
rej(err);
|
|
104
|
-
return;
|
|
51
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
try {
|
|
54
|
+
yield collection.insertMany(list.map((item) => this.getModelToCreate(item, user)), { session: repoOptions.transaction.session });
|
|
55
|
+
this.logChange('createMany', null, repoOptions, user, null);
|
|
105
56
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
client.close();
|
|
114
|
-
res();
|
|
115
|
-
});
|
|
116
|
-
});
|
|
57
|
+
catch (errInsert) {
|
|
58
|
+
this.logChange('createMany', null, repoOptions, user, errInsert);
|
|
59
|
+
throw errInsert;
|
|
60
|
+
}
|
|
61
|
+
}));
|
|
117
62
|
});
|
|
118
63
|
}
|
|
119
64
|
update(item, user, repoOptions) {
|
|
120
65
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
124
|
-
const db = repoOptions.transaction.connection.db(this.config.database);
|
|
125
|
-
const collection = db.collection(this.config.collection);
|
|
126
|
-
const info = yield this.getInfo(item.id, collection);
|
|
127
|
-
db.collection(this.config.collection).replaceOne({ _id: item.id }, this.getModelToUpdate(item, user, info), { session: repoOptions.transaction.session }, (errInsert) => {
|
|
128
|
-
this.logChange("update", item, repoOptions, user, errInsert);
|
|
129
|
-
if (errInsert) {
|
|
130
|
-
rej(errInsert);
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
res();
|
|
134
|
-
});
|
|
135
|
-
}))();
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
return new Promise((res, rej) => {
|
|
139
|
-
mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
140
|
-
if (err) {
|
|
141
|
-
rej(err);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const db = client.db(this.config.database);
|
|
145
|
-
const collection = db.collection(this.config.collection);
|
|
66
|
+
yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
try {
|
|
146
68
|
const info = yield this.getInfo(item.id, collection);
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
});
|
|
156
|
-
}));
|
|
157
|
-
});
|
|
69
|
+
yield collection.replaceOne({ _id: item.id }, this.getModelToUpdate(item, user, info), { session: repoOptions.transaction.session });
|
|
70
|
+
this.logChange('update', item, repoOptions, user, null);
|
|
71
|
+
}
|
|
72
|
+
catch (errInsert) {
|
|
73
|
+
this.logChange('update', item, repoOptions, user, errInsert);
|
|
74
|
+
throw errInsert;
|
|
75
|
+
}
|
|
76
|
+
}));
|
|
158
77
|
});
|
|
159
78
|
}
|
|
160
79
|
updatePartial(item, user, repoOptions) {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const db = repoOptions.transaction.connection.db(this.config.database);
|
|
165
|
-
const collection = db.collection(this.config.collection);
|
|
80
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
try {
|
|
166
83
|
const info = yield this.getInfo(item.id, collection);
|
|
167
|
-
|
|
84
|
+
yield collection.updateOne({ _id: item.id }, {
|
|
168
85
|
$set: this.getModelToUpdate(item, user, info),
|
|
169
|
-
}, { session: repoOptions.transaction.session }
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
res();
|
|
176
|
-
});
|
|
177
|
-
}))();
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
return new Promise((res, rej) => {
|
|
181
|
-
mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
182
|
-
if (err) {
|
|
183
|
-
rej(err);
|
|
184
|
-
return;
|
|
86
|
+
}, { session: repoOptions.transaction.session });
|
|
87
|
+
this.logChange('updatePartial', item, repoOptions, user, null);
|
|
88
|
+
}
|
|
89
|
+
catch (errUpdate) {
|
|
90
|
+
this.logChange('updatePartial', item, repoOptions, user, errUpdate);
|
|
91
|
+
throw errUpdate;
|
|
185
92
|
}
|
|
186
|
-
const db = client.db(this.config.database);
|
|
187
|
-
const collection = db.collection(this.config.collection);
|
|
188
|
-
const info = yield this.getInfo(item.id, collection);
|
|
189
|
-
db.collection(this.config.collection).updateOne({ _id: item.id }, {
|
|
190
|
-
$set: this.getModelToUpdate(item, user, info),
|
|
191
|
-
}, (errUpdate) => {
|
|
192
|
-
this.logChange("updatePartial", item, repoOptions, user, errUpdate);
|
|
193
|
-
if (errUpdate) {
|
|
194
|
-
rej(errUpdate);
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
client.close();
|
|
198
|
-
res();
|
|
199
|
-
});
|
|
200
93
|
}));
|
|
201
94
|
});
|
|
202
95
|
}
|
|
203
96
|
updatePartialManyByCriteria(criteria, set, user, repoOptions) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
const db = repoOptions.transaction.connection.db(this.config.database);
|
|
97
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
try {
|
|
208
100
|
this.convertIdInCriteria(criteria);
|
|
209
|
-
|
|
210
|
-
$set: Object.assign(Object.assign({}, set), {
|
|
101
|
+
yield collection.updateMany(criteria, {
|
|
102
|
+
$set: Object.assign(Object.assign({}, set), { '__info.update': {
|
|
211
103
|
username: user === null || user === void 0 ? void 0 : user.username,
|
|
212
104
|
date: new Date(),
|
|
213
105
|
} }),
|
|
214
|
-
}, { session: repoOptions.transaction.session }
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
res();
|
|
221
|
-
});
|
|
222
|
-
}))();
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
return new Promise((res, rej) => {
|
|
226
|
-
mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
227
|
-
if (err) {
|
|
228
|
-
rej(err);
|
|
229
|
-
return;
|
|
106
|
+
}, { session: repoOptions.transaction.session });
|
|
107
|
+
this.logChange('updatePartialManyByCriteria', Object.assign(Object.assign({}, criteria), { set }), repoOptions, user, null);
|
|
108
|
+
}
|
|
109
|
+
catch (errUpdate) {
|
|
110
|
+
this.logChange('updatePartialManyByCriteria', Object.assign(Object.assign({}, criteria), { set }), repoOptions, user, errUpdate);
|
|
111
|
+
throw errUpdate;
|
|
230
112
|
}
|
|
231
|
-
const db = client.db(this.config.database);
|
|
232
|
-
const collection = db.collection(this.config.collection);
|
|
233
|
-
this.convertIdInCriteria(criteria);
|
|
234
|
-
db.collection(this.config.collection).updateMany(criteria, {
|
|
235
|
-
$set: Object.assign(Object.assign({}, set), { "__info.update": {
|
|
236
|
-
username: user === null || user === void 0 ? void 0 : user.username,
|
|
237
|
-
date: new Date(),
|
|
238
|
-
} }),
|
|
239
|
-
}, (errUpdate) => {
|
|
240
|
-
this.logChange("updatePartialManyByCriteria", Object.assign(Object.assign({}, criteria), { set }), repoOptions, user, errUpdate);
|
|
241
|
-
if (errUpdate) {
|
|
242
|
-
rej(errUpdate);
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
client.close();
|
|
246
|
-
res();
|
|
247
|
-
});
|
|
248
113
|
}));
|
|
249
114
|
});
|
|
250
115
|
}
|
|
@@ -252,88 +117,39 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
252
117
|
return this.updatePartialManyByCriteria(spec.criteria, set, user, repoOptions);
|
|
253
118
|
}
|
|
254
119
|
delete(id, user, repoOptions) {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}, repoOptions, user, errDelete);
|
|
263
|
-
if (errDelete) {
|
|
264
|
-
rej(errDelete);
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
res();
|
|
268
|
-
});
|
|
269
|
-
}))();
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
return new Promise((res, rej) => {
|
|
273
|
-
mongodb_1.MongoClient.connect(this.getUrl(), { useUnifiedTopology: this.useUnifiedTopology }, (err, client) => {
|
|
274
|
-
if (err) {
|
|
275
|
-
rej(err);
|
|
276
|
-
return;
|
|
120
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
121
|
+
yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
try {
|
|
123
|
+
yield collection.deleteOne({ _id: id }, { session: repoOptions.transaction.session });
|
|
124
|
+
this.logChange('delete', {
|
|
125
|
+
id,
|
|
126
|
+
}, repoOptions, user, null);
|
|
277
127
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
this.logChange("delete", {
|
|
128
|
+
catch (errDelete) {
|
|
129
|
+
this.logChange('delete', {
|
|
281
130
|
id,
|
|
282
131
|
}, repoOptions, user, errDelete);
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
287
|
-
client.close();
|
|
288
|
-
res();
|
|
289
|
-
});
|
|
290
|
-
});
|
|
132
|
+
throw errDelete;
|
|
133
|
+
}
|
|
134
|
+
}));
|
|
291
135
|
});
|
|
292
136
|
}
|
|
293
137
|
getById(id, repoOptions) {
|
|
294
|
-
return
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
const db = client.db(this.config.database);
|
|
301
|
-
if (repoOptions && repoOptions.transaction) {
|
|
302
|
-
db.collection(this.config.collection).findOne({ _id: id }, {
|
|
303
|
-
session: repoOptions.transaction.session,
|
|
304
|
-
}, (errDelete, item) => {
|
|
305
|
-
if (errDelete) {
|
|
306
|
-
rej(errDelete);
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
client.close();
|
|
310
|
-
res(this.getModelToResult(item));
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
db.collection(this.config.collection).findOne({ _id: id }, (errDelete, item) => {
|
|
314
|
-
if (errDelete) {
|
|
315
|
-
rej(errDelete);
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
client.close();
|
|
319
|
-
res(this.getModelToResult(item));
|
|
138
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
return yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const item = yield collection.findOne({ _id: id }, {
|
|
141
|
+
session: repoOptions.transaction.session,
|
|
320
142
|
});
|
|
321
|
-
|
|
143
|
+
return this.getModelToResult(item);
|
|
144
|
+
}));
|
|
322
145
|
});
|
|
323
146
|
}
|
|
324
147
|
getByCriteria(criteria, options = {}) {
|
|
325
|
-
return
|
|
326
|
-
|
|
327
|
-
if (err) {
|
|
328
|
-
rej(err);
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
148
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
return yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
331
150
|
this.convertIdInCriteria(criteria);
|
|
332
151
|
this.generateSearch(criteria);
|
|
333
|
-
const db = client.db(this.config.database);
|
|
334
|
-
const collection = db.collection(this.config.collection);
|
|
335
152
|
const totalCount = yield this.getCount(criteria, collection);
|
|
336
|
-
let cursor = null;
|
|
337
153
|
const aggregate = [];
|
|
338
154
|
if (criteria) {
|
|
339
155
|
aggregate.push({ $match: criteria });
|
|
@@ -359,22 +175,16 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
359
175
|
if (options === null || options === void 0 ? void 0 : options.group) {
|
|
360
176
|
aggregate.push({ $group: options.group });
|
|
361
177
|
}
|
|
362
|
-
collection
|
|
178
|
+
const list = yield collection
|
|
363
179
|
.aggregate(aggregate, {
|
|
364
180
|
allowDiskUse: options === null || options === void 0 ? void 0 : options.allowDiskUse,
|
|
365
181
|
session: options === null || options === void 0 ? void 0 : options.session,
|
|
366
182
|
})
|
|
367
|
-
.toArray(
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
client.close();
|
|
373
|
-
res({
|
|
374
|
-
data: list.map((item) => this.getModelToResult(item)),
|
|
375
|
-
totalCount,
|
|
376
|
-
});
|
|
377
|
-
});
|
|
183
|
+
.toArray();
|
|
184
|
+
return {
|
|
185
|
+
data: list.map((item) => this.getModelToResult(item)),
|
|
186
|
+
totalCount,
|
|
187
|
+
};
|
|
378
188
|
}));
|
|
379
189
|
});
|
|
380
190
|
}
|
|
@@ -382,19 +192,11 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
382
192
|
return this.getByCriteria(spec.criteria, options);
|
|
383
193
|
}
|
|
384
194
|
countByCriteria(criteria) {
|
|
385
|
-
return
|
|
386
|
-
|
|
387
|
-
if (err) {
|
|
388
|
-
rej(err);
|
|
389
|
-
return;
|
|
390
|
-
}
|
|
195
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
196
|
+
return yield this.collectionContext((collection) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
391
197
|
this.convertIdInCriteria(criteria);
|
|
392
198
|
this.generateSearch(criteria);
|
|
393
|
-
|
|
394
|
-
const collection = db.collection(this.config.collection);
|
|
395
|
-
const result = yield this.getCount(criteria, collection);
|
|
396
|
-
yield client.close();
|
|
397
|
-
res(result);
|
|
199
|
+
return yield this.getCount(criteria, collection);
|
|
398
200
|
}));
|
|
399
201
|
});
|
|
400
202
|
}
|
|
@@ -405,69 +207,59 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
405
207
|
let stream;
|
|
406
208
|
let client;
|
|
407
209
|
return new rxjs_1.Observable((observer) => {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
$match: {
|
|
420
|
-
"documentKey._id": criteria.id,
|
|
210
|
+
(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
try {
|
|
212
|
+
client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
213
|
+
const db = client.db(this.config.database);
|
|
214
|
+
const collection = db.collection(this.config.collection);
|
|
215
|
+
const pipeline = criteria.id
|
|
216
|
+
? [
|
|
217
|
+
{
|
|
218
|
+
$match: {
|
|
219
|
+
'documentKey._id': criteria.id,
|
|
220
|
+
},
|
|
421
221
|
},
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
222
|
+
]
|
|
223
|
+
: [];
|
|
224
|
+
stream = collection.watch(pipeline).on('change', (result) => {
|
|
225
|
+
observer.next({
|
|
226
|
+
id: result['documentKey']['_id'],
|
|
227
|
+
type: this.mapChangeType(result.operationType),
|
|
228
|
+
data: result.operationType === 'update'
|
|
229
|
+
? result['updateDescription']
|
|
230
|
+
: this.getModelToResult(result['fullDocument']),
|
|
231
|
+
});
|
|
432
232
|
});
|
|
433
|
-
}
|
|
434
|
-
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
observer.error(err);
|
|
236
|
+
}
|
|
237
|
+
}))();
|
|
435
238
|
}).pipe((0, operators_1.finalize)(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
436
|
-
console.log(
|
|
239
|
+
console.log('Stop watch');
|
|
437
240
|
yield stream.close();
|
|
438
241
|
yield client.close();
|
|
439
242
|
})), (0, operators_1.share)());
|
|
440
243
|
}
|
|
441
244
|
getContext(handler) {
|
|
442
|
-
return
|
|
443
|
-
mongodb_1.MongoClient.connect(this.getUrl()
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
catch (e) {
|
|
455
|
-
yield client.close();
|
|
456
|
-
rej(e);
|
|
457
|
-
}
|
|
458
|
-
}));
|
|
245
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
246
|
+
const client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
247
|
+
const db = client.db(this.config.database);
|
|
248
|
+
try {
|
|
249
|
+
const result = yield handler(db);
|
|
250
|
+
yield client.close();
|
|
251
|
+
return result;
|
|
252
|
+
}
|
|
253
|
+
catch (e) {
|
|
254
|
+
yield client.close();
|
|
255
|
+
throw e;
|
|
256
|
+
}
|
|
459
257
|
});
|
|
460
258
|
}
|
|
461
259
|
getCount(criteria, collection) {
|
|
462
|
-
return
|
|
260
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
463
261
|
this.convertIdInCriteria(criteria);
|
|
464
|
-
collection.countDocuments(criteria
|
|
465
|
-
if (err) {
|
|
466
|
-
rej(err);
|
|
467
|
-
return;
|
|
468
|
-
}
|
|
469
|
-
res(count);
|
|
470
|
-
});
|
|
262
|
+
return yield collection.countDocuments(criteria);
|
|
471
263
|
});
|
|
472
264
|
}
|
|
473
265
|
getInfo(id, collection) {
|
|
@@ -482,15 +274,15 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
482
274
|
if (!array || !array[0]) {
|
|
483
275
|
res(null);
|
|
484
276
|
}
|
|
485
|
-
res(array[0][
|
|
277
|
+
res(array[0]['__info']);
|
|
486
278
|
});
|
|
487
279
|
});
|
|
488
280
|
}
|
|
489
281
|
getModelToCreate(item, user) {
|
|
490
282
|
const result = utils_1.ObjectService.removeTypes(item);
|
|
491
|
-
result[
|
|
283
|
+
result['_id'] = result.id;
|
|
492
284
|
delete result.id;
|
|
493
|
-
result[
|
|
285
|
+
result['__info'] = {
|
|
494
286
|
create: {
|
|
495
287
|
username: user ? user.username : null,
|
|
496
288
|
date: new Date(),
|
|
@@ -500,17 +292,17 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
500
292
|
}
|
|
501
293
|
mapChangeType(dbType) {
|
|
502
294
|
const map = {
|
|
503
|
-
insert:
|
|
504
|
-
update:
|
|
505
|
-
delete:
|
|
295
|
+
insert: 'create',
|
|
296
|
+
update: 'update',
|
|
297
|
+
delete: 'delete',
|
|
506
298
|
};
|
|
507
299
|
return map[dbType];
|
|
508
300
|
}
|
|
509
301
|
getModelToUpdate(item, user, info) {
|
|
510
302
|
const result = utils_1.ObjectService.removeTypes(item);
|
|
511
|
-
result[
|
|
303
|
+
result['_id'] = result.id;
|
|
512
304
|
delete result.id;
|
|
513
|
-
result[
|
|
305
|
+
result['__info'] = Object.assign(Object.assign({}, info), { update: {
|
|
514
306
|
username: user ? user.username : null,
|
|
515
307
|
date: new Date(),
|
|
516
308
|
} });
|
|
@@ -520,40 +312,39 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
520
312
|
if (!item)
|
|
521
313
|
return null;
|
|
522
314
|
const result = utils_1.ObjectService.removeTypes(item);
|
|
523
|
-
result[
|
|
315
|
+
result['id'] = result._id;
|
|
524
316
|
delete result._id;
|
|
525
|
-
delete result[
|
|
317
|
+
delete result['__info'];
|
|
526
318
|
return result;
|
|
527
319
|
}
|
|
528
320
|
getUrl() {
|
|
529
321
|
return (0, mongo_utils_1.getMongoUrl)(this.config);
|
|
530
322
|
}
|
|
531
323
|
logChange(type, item, options, user, error) {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
console.warn(err);
|
|
535
|
-
return;
|
|
536
|
-
}
|
|
324
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
325
|
+
const client = yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
537
326
|
const db = client.db(this.config.database);
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
327
|
+
try {
|
|
328
|
+
yield db.collection('changes').insertOne({
|
|
329
|
+
type,
|
|
330
|
+
collection: this.config.collection,
|
|
331
|
+
item,
|
|
332
|
+
options,
|
|
333
|
+
user,
|
|
334
|
+
error,
|
|
335
|
+
date: new Date(),
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
catch (e) {
|
|
339
|
+
console.warn(e);
|
|
340
|
+
}
|
|
341
|
+
finally {
|
|
342
|
+
yield client.close();
|
|
343
|
+
}
|
|
553
344
|
});
|
|
554
345
|
}
|
|
555
346
|
generateSearch(criteria) {
|
|
556
|
-
if (!criteria[
|
|
347
|
+
if (!criteria['$search'])
|
|
557
348
|
return;
|
|
558
349
|
if (this.config.type) {
|
|
559
350
|
const modelFields = (0, models_1.getModelFieldsWithOptions)(new this.config.type()).filter((i) => i.options.search);
|
|
@@ -562,43 +353,60 @@ let MongoItemRepository = class MongoItemRepository extends domain_core_1.IItemR
|
|
|
562
353
|
modelFields.forEach((val) => {
|
|
563
354
|
const res = {};
|
|
564
355
|
res[val.key] = {
|
|
565
|
-
$regex: this.convertRegex(criteria[
|
|
566
|
-
$options:
|
|
356
|
+
$regex: this.convertRegex(criteria['$search']),
|
|
357
|
+
$options: 'i',
|
|
567
358
|
};
|
|
568
359
|
searchArray.push(res);
|
|
569
360
|
});
|
|
570
|
-
if (!criteria[
|
|
571
|
-
criteria[
|
|
572
|
-
else if (criteria[
|
|
573
|
-
criteria[
|
|
574
|
-
delete criteria[
|
|
361
|
+
if (!criteria['$or'])
|
|
362
|
+
criteria['$or'] = searchArray;
|
|
363
|
+
else if (criteria['$or'] && !criteria['$and']) {
|
|
364
|
+
criteria['$and'] = [{ $or: criteria['$or'] }, { $or: searchArray }];
|
|
365
|
+
delete criteria['$or'];
|
|
575
366
|
}
|
|
576
|
-
else if (criteria[
|
|
577
|
-
criteria[
|
|
367
|
+
else if (criteria['$and']) {
|
|
368
|
+
criteria['$and'] = [...criteria['$and'], { $or: searchArray }];
|
|
578
369
|
}
|
|
579
|
-
delete criteria[
|
|
370
|
+
delete criteria['$search'];
|
|
580
371
|
return;
|
|
581
372
|
}
|
|
582
373
|
}
|
|
583
374
|
const customCriteria = {
|
|
584
|
-
$text: { $search: ' "' + this.convertRegex(criteria[
|
|
375
|
+
$text: { $search: ' "' + this.convertRegex(criteria['$search']) + '" ' },
|
|
585
376
|
};
|
|
586
|
-
delete criteria[
|
|
377
|
+
delete criteria['$search'];
|
|
587
378
|
criteria = Object.assign(Object.assign({}, criteria), customCriteria);
|
|
588
379
|
}
|
|
589
380
|
convertIdInCriteria(criteria) {
|
|
590
|
-
if (criteria[
|
|
591
|
-
criteria[
|
|
592
|
-
delete criteria[
|
|
381
|
+
if (criteria['id']) {
|
|
382
|
+
criteria['_id'] = criteria['id'];
|
|
383
|
+
delete criteria['id'];
|
|
593
384
|
}
|
|
594
385
|
}
|
|
595
386
|
convertRegex(val) {
|
|
596
|
-
return val.toString().replace(/\*/g,
|
|
387
|
+
return val.toString().replace(/\*/g, '[*]');
|
|
388
|
+
}
|
|
389
|
+
collectionContext(callback, repoOptions) {
|
|
390
|
+
var _a;
|
|
391
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
392
|
+
const client = ((_a = repoOptions === null || repoOptions === void 0 ? void 0 : repoOptions.transaction) === null || _a === void 0 ? void 0 : _a.connection)
|
|
393
|
+
? repoOptions.transaction.connection
|
|
394
|
+
: yield mongodb_1.MongoClient.connect(this.getUrl());
|
|
395
|
+
const db = client.db(this.config.database);
|
|
396
|
+
let result;
|
|
397
|
+
try {
|
|
398
|
+
result = yield callback(db.collection(this.config.collection));
|
|
399
|
+
}
|
|
400
|
+
finally {
|
|
401
|
+
if (!(repoOptions === null || repoOptions === void 0 ? void 0 : repoOptions.transaction))
|
|
402
|
+
yield client.close();
|
|
403
|
+
}
|
|
404
|
+
return result;
|
|
405
|
+
});
|
|
597
406
|
}
|
|
598
407
|
};
|
|
599
|
-
MongoItemRepository = tslib_1.__decorate([
|
|
408
|
+
exports.MongoItemRepository = MongoItemRepository = tslib_1.__decorate([
|
|
600
409
|
(0, common_1.Injectable)(),
|
|
601
410
|
tslib_1.__metadata("design:paramtypes", [mongo_config_1.MongoConfig])
|
|
602
411
|
], MongoItemRepository);
|
|
603
|
-
exports.MongoItemRepository = MongoItemRepository;
|
|
604
412
|
//# sourceMappingURL=item.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/item.repository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"item.repository.js","sourceRoot":"","sources":["../../../../../../../libs/shared/mongo/src/lib/repositories/item.repository.ts"],"names":[],"mappings":"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"}
|