@lilaquadrat/studio 12.0.0 → 12.1.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.
- package/lib/src/services/history.service.d.ts +7 -0
- package/lib/src/services/history.service.js +109 -115
- package/lib/src/services/history.service.js.map +1 -1
- package/lib/tests/listParticipantsHistory.spec.js +49 -3
- package/lib/tests/listParticipantsHistory.spec.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,13 @@ import { Filter, ObjectId, OrderedBulkOperation, UnorderedBulkOperation, Documen
|
|
|
2
2
|
import { HistoryReason, History, BasicData, Options } from '@lilaquadrat/interfaces';
|
|
3
3
|
declare class HistoryService {
|
|
4
4
|
model: import("../classes/modelv2.class.js").default<History, string>;
|
|
5
|
+
/**
|
|
6
|
+
* resolve the author of a history entry to a display name in one lookup.
|
|
7
|
+
* studio accounts live in 'me', member accounts (origin 'member') are linked
|
|
8
|
+
* to their customer through the accounts array, so both are unioned and the
|
|
9
|
+
* entry falls back to the raw account when no profile can be resolved.
|
|
10
|
+
*/
|
|
11
|
+
private userLookup;
|
|
5
12
|
create<T>(data: BasicData<T>, user: string, reason: HistoryReason, app: string, modelName: string): Promise<any>;
|
|
6
13
|
create<T, S>(data: BasicData<T>, user: string, reason: HistoryReason, app: string, modelName: string, additionalHistoryData?: Record<string, string | number>, copySource?: BasicData<S>): Promise<any>;
|
|
7
14
|
create<T, S>(data: BasicData<T>, user: string, reason: HistoryReason, app: string, modelName: string, additionalHistoryData?: Record<string, string | number> | undefined, copySource?: BasicData<S>, bulk?: UnorderedBulkOperation | OrderedBulkOperation, origin?: History['history']['origin']): UnorderedBulkOperation | OrderedBulkOperation;
|
|
@@ -8,6 +8,112 @@ class HistoryService {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.model = HistoryModel;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* resolve the author of a history entry to a display name in one lookup.
|
|
13
|
+
* studio accounts live in 'me', member accounts (origin 'member') are linked
|
|
14
|
+
* to their customer through the accounts array, so both are unioned and the
|
|
15
|
+
* entry falls back to the raw account when no profile can be resolved.
|
|
16
|
+
*/
|
|
17
|
+
userLookup() {
|
|
18
|
+
return [
|
|
19
|
+
{
|
|
20
|
+
$lookup: {
|
|
21
|
+
from: 'me',
|
|
22
|
+
as: 'userData',
|
|
23
|
+
let: {
|
|
24
|
+
userid: '$history.user',
|
|
25
|
+
app: '$history.app',
|
|
26
|
+
company: '$company',
|
|
27
|
+
origin: '$history.origin',
|
|
28
|
+
},
|
|
29
|
+
pipeline: [
|
|
30
|
+
{
|
|
31
|
+
$match: {
|
|
32
|
+
$expr: {
|
|
33
|
+
$and: [
|
|
34
|
+
{ $eq: ['$id', '$$userid'] },
|
|
35
|
+
{ $ne: ['$$origin', 'member'] },
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
$project: {
|
|
42
|
+
prename: 1,
|
|
43
|
+
lastname: 1,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
$unionWith: {
|
|
48
|
+
coll: 'customers',
|
|
49
|
+
pipeline: [
|
|
50
|
+
{
|
|
51
|
+
$match: {
|
|
52
|
+
$expr: {
|
|
53
|
+
$and: [
|
|
54
|
+
{ $eq: ['$$origin', 'member'] },
|
|
55
|
+
{ $eq: ['$company', '$$company'] },
|
|
56
|
+
{
|
|
57
|
+
$gt: [
|
|
58
|
+
{
|
|
59
|
+
$size: {
|
|
60
|
+
$filter: {
|
|
61
|
+
input: { $ifNull: ['$accounts', []] },
|
|
62
|
+
as: 'account',
|
|
63
|
+
cond: {
|
|
64
|
+
$and: [
|
|
65
|
+
{ $eq: ['$$account.account', '$$userid'] },
|
|
66
|
+
{ $eq: ['$$account.app', '$$app'] },
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
0,
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
$project: {
|
|
81
|
+
prename: 1,
|
|
82
|
+
lastname: '$name',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
$project: {
|
|
90
|
+
prename: 1,
|
|
91
|
+
lastname: 1,
|
|
92
|
+
_id: 0,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
{ $limit: 1 },
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
$unwind: {
|
|
101
|
+
path: '$userData',
|
|
102
|
+
preserveNullAndEmptyArrays: true,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
$addFields: {
|
|
107
|
+
'history.user': {
|
|
108
|
+
$ifNull: [
|
|
109
|
+
{ $concat: ['$userData.lastname', ', ', '$userData.prename'] },
|
|
110
|
+
'$history.user',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
];
|
|
116
|
+
}
|
|
11
117
|
create(data, user, reason, app, modelName, additionalHistoryData, copySource, bulk, origin) {
|
|
12
118
|
const immutable = {
|
|
13
119
|
...data,
|
|
@@ -70,42 +176,7 @@ class HistoryService {
|
|
|
70
176
|
'history.version': version,
|
|
71
177
|
},
|
|
72
178
|
}];
|
|
73
|
-
|
|
74
|
-
{
|
|
75
|
-
$lookup: {
|
|
76
|
-
from: 'me',
|
|
77
|
-
as: 'userData',
|
|
78
|
-
let: { userid: '$history.user' },
|
|
79
|
-
pipeline: [
|
|
80
|
-
{
|
|
81
|
-
$match: {
|
|
82
|
-
$and: [
|
|
83
|
-
{ $expr: { $eq: ['$id', '$$userid'] } },
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
$unwind: {
|
|
92
|
-
path: '$userData',
|
|
93
|
-
preserveNullAndEmptyArrays: true,
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
$addFields: {
|
|
98
|
-
'history.user': {
|
|
99
|
-
$cond: [
|
|
100
|
-
{ $eq: ['$history.origin', 'member'] },
|
|
101
|
-
'$history.user',
|
|
102
|
-
{ $concat: ['$userData.lastname', ', ', '$userData.prename'] },
|
|
103
|
-
],
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
},
|
|
107
|
-
];
|
|
108
|
-
aggregation.push(...lookup, ...partialAggregation, ...childDataAggregation);
|
|
179
|
+
aggregation.push(...this.userLookup(), ...partialAggregation, ...childDataAggregation);
|
|
109
180
|
return this.model.db.aggregate(aggregation).toArray()
|
|
110
181
|
.then((single) => single[0]);
|
|
111
182
|
}
|
|
@@ -117,50 +188,7 @@ class HistoryService {
|
|
|
117
188
|
_id: id,
|
|
118
189
|
},
|
|
119
190
|
}];
|
|
120
|
-
|
|
121
|
-
{
|
|
122
|
-
$lookup: {
|
|
123
|
-
from: 'me',
|
|
124
|
-
as: 'userData',
|
|
125
|
-
let: { userid: '$history.user' },
|
|
126
|
-
pipeline: [
|
|
127
|
-
{
|
|
128
|
-
$match: {
|
|
129
|
-
$and: [
|
|
130
|
-
{ $expr: { $eq: ['$id', '$$userid'] } },
|
|
131
|
-
],
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
$project: {
|
|
136
|
-
_id: 1,
|
|
137
|
-
id: 1,
|
|
138
|
-
prename: 1,
|
|
139
|
-
lastname: 1,
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
],
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
$unwind: {
|
|
147
|
-
path: '$userData',
|
|
148
|
-
preserveNullAndEmptyArrays: true,
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
$addFields: {
|
|
153
|
-
'history.user': {
|
|
154
|
-
$cond: [
|
|
155
|
-
{ $eq: ['$history.origin', 'member'] },
|
|
156
|
-
'$history.user',
|
|
157
|
-
{ $concat: ['$userData.lastname', ', ', '$userData.prename'] },
|
|
158
|
-
],
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
];
|
|
163
|
-
aggregation.push(...lookup);
|
|
191
|
+
aggregation.push(...this.userLookup());
|
|
164
192
|
aggregation.push(...partialAggregation);
|
|
165
193
|
aggregation.push(...childDataAggregation);
|
|
166
194
|
aggregation.push(...genericDataAggregation);
|
|
@@ -200,41 +228,7 @@ class HistoryService {
|
|
|
200
228
|
$limit: limit,
|
|
201
229
|
},
|
|
202
230
|
];
|
|
203
|
-
const lookup =
|
|
204
|
-
{
|
|
205
|
-
$lookup: {
|
|
206
|
-
from: 'me',
|
|
207
|
-
as: 'userData',
|
|
208
|
-
let: { userid: '$history.user' },
|
|
209
|
-
pipeline: [
|
|
210
|
-
{
|
|
211
|
-
$match: {
|
|
212
|
-
$and: [
|
|
213
|
-
{ $expr: { $eq: ['$id', '$$userid'] } },
|
|
214
|
-
],
|
|
215
|
-
},
|
|
216
|
-
},
|
|
217
|
-
],
|
|
218
|
-
},
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
$unwind: {
|
|
222
|
-
path: '$userData',
|
|
223
|
-
preserveNullAndEmptyArrays: true,
|
|
224
|
-
},
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
$addFields: {
|
|
228
|
-
'history.user': {
|
|
229
|
-
$cond: [
|
|
230
|
-
{ $eq: ['$history.origin', 'member'] },
|
|
231
|
-
'$history.user',
|
|
232
|
-
{ $concat: ['$userData.lastname', ', ', '$userData.prename'] },
|
|
233
|
-
],
|
|
234
|
-
},
|
|
235
|
-
},
|
|
236
|
-
},
|
|
237
|
-
];
|
|
231
|
+
const lookup = this.userLookup();
|
|
238
232
|
if (projection) {
|
|
239
233
|
lookup.push({
|
|
240
234
|
$project: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.service.js","sourceRoot":"","sources":["../../../src/services/history.service.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,YAAY,MAAM,oCAAoC,CAAC;AAE9D,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAE/E,MAAM,cAAc;IAApB;QAEE,UAAK,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"history.service.js","sourceRoot":"","sources":["../../../src/services/history.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,13 +34,59 @@ describe('participant history feed', () => {
|
|
|
34
34
|
{ $limit: 20 },
|
|
35
35
|
]);
|
|
36
36
|
expect(pipeline[4]).toMatchObject({ $lookup: { from: 'me' } });
|
|
37
|
+
const userLookup = pipeline[4];
|
|
38
|
+
const subPipeline = userLookup.$lookup.pipeline;
|
|
39
|
+
expect(subPipeline[0]).toEqual({
|
|
40
|
+
$match: {
|
|
41
|
+
$expr: {
|
|
42
|
+
$and: [
|
|
43
|
+
{ $eq: ['$id', '$$userid'] },
|
|
44
|
+
{ $ne: ['$$origin', 'member'] },
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
// member edits resolve their name from the customer linked through the accounts array
|
|
50
|
+
const unionStage = subPipeline.find((stage) => '$unionWith' in stage);
|
|
51
|
+
expect(unionStage?.$unionWith.coll).toBe('customers');
|
|
52
|
+
expect(unionStage?.$unionWith.pipeline).toEqual([
|
|
53
|
+
{
|
|
54
|
+
$match: {
|
|
55
|
+
$expr: {
|
|
56
|
+
$and: [
|
|
57
|
+
{ $eq: ['$$origin', 'member'] },
|
|
58
|
+
{ $eq: ['$company', '$$company'] },
|
|
59
|
+
{
|
|
60
|
+
$gt: [
|
|
61
|
+
{
|
|
62
|
+
$size: {
|
|
63
|
+
$filter: {
|
|
64
|
+
input: { $ifNull: ['$accounts', []] },
|
|
65
|
+
as: 'account',
|
|
66
|
+
cond: {
|
|
67
|
+
$and: [
|
|
68
|
+
{ $eq: ['$$account.account', '$$userid'] },
|
|
69
|
+
{ $eq: ['$$account.app', '$$app'] },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
0,
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
{ $project: { prename: 1, lastname: '$name' } },
|
|
83
|
+
]);
|
|
37
84
|
expect(pipeline).toContainEqual({
|
|
38
85
|
$addFields: {
|
|
39
86
|
'history.user': {
|
|
40
|
-
$
|
|
41
|
-
{ $eq: ['$history.origin', 'member'] },
|
|
42
|
-
'$history.user',
|
|
87
|
+
$ifNull: [
|
|
43
88
|
{ $concat: ['$userData.lastname', ', ', '$userData.prename'] },
|
|
89
|
+
'$history.user',
|
|
44
90
|
],
|
|
45
91
|
},
|
|
46
92
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listParticipantsHistory.spec.js","sourceRoot":"","sources":["../../tests/listParticipantsHistory.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAkC,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnE,OAAO,YAAY,MAAM,gCAAgC,CAAC;AAC1D,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAChE,OAAO,uBAAuB,MAAM,6CAA6C,CAAC;AAElF,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC9B,MAAM,aAAa,GAAG,IAAI,QAAQ,EAAE,CAAC;AACrC,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;AAClC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAExF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAExC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,EAAyC,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAA6B,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAyD,CAAC;IAEnF,UAAU,CAAC,GAAG,EAAE;QAEd,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC9B,SAAS,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,EAAE,cAAc,EAAE,SAAS,EAAoC,CAAC,CAAC;IAEzH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QAEb,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;IAEvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAE/F,cAAc,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,uBAAuB,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE9E,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC7G,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACnC,EAAE,MAAM,EAAE,MAAM,EAAE;YAClB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YACtB,EAAE,KAAK,EAAE,EAAE,EAAE;YACb,EAAE,MAAM,EAAE,EAAE,EAAE;SACf,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"listParticipantsHistory.spec.js","sourceRoot":"","sources":["../../tests/listParticipantsHistory.spec.ts"],"names":[],"mappings":"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"}
|