@chevre/domain 21.4.0-alpha.25 → 21.4.0-alpha.26
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.
|
@@ -35,7 +35,7 @@ async function main() {
|
|
|
35
35
|
} else {
|
|
36
36
|
console.log(
|
|
37
37
|
'updating reservation...', iamMember.project.id, iamMember.member.id, iamMember.member.typeOf, memberOfId, i);
|
|
38
|
-
await memberRepo.
|
|
38
|
+
await memberRepo.updateByMemberMemberOf({
|
|
39
39
|
project: { id: iamMember.project.id },
|
|
40
40
|
member: {
|
|
41
41
|
id: iamMember.member.id,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// tslint:disable:no-console
|
|
2
|
+
import * as mongoose from 'mongoose';
|
|
3
|
+
|
|
4
|
+
import { chevre } from '../../../lib/index';
|
|
5
|
+
|
|
6
|
+
// const PROJECT_ID = String(process.env.PROJECT_ID);
|
|
7
|
+
const memberId = 'xxx';
|
|
8
|
+
|
|
9
|
+
async function main() {
|
|
10
|
+
await mongoose.connect(<string>process.env.MONGOLAB_URI);
|
|
11
|
+
|
|
12
|
+
const memberRepo = new chevre.repository.Member(mongoose.connection);
|
|
13
|
+
|
|
14
|
+
const ids = await memberRepo.searchProjectIdsByMemberId({
|
|
15
|
+
member: {
|
|
16
|
+
id: memberId
|
|
17
|
+
},
|
|
18
|
+
project: {
|
|
19
|
+
id: {
|
|
20
|
+
// $regex: 'c'
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
limit: 3,
|
|
24
|
+
page: 1
|
|
25
|
+
|
|
26
|
+
});
|
|
27
|
+
console.log(ids);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
main()
|
|
31
|
+
.then(console.log)
|
|
32
|
+
.catch(console.error);
|
|
@@ -75,11 +75,26 @@ export declare class MongoRepository {
|
|
|
75
75
|
id: string;
|
|
76
76
|
};
|
|
77
77
|
member: {
|
|
78
|
-
hasRole?: factory.iam.IMemberHasRole;
|
|
79
78
|
id: string;
|
|
79
|
+
memberOf: {
|
|
80
|
+
id: string;
|
|
81
|
+
typeOf: factory.organizationType.Project;
|
|
82
|
+
};
|
|
83
|
+
hasRole?: factory.iam.IMemberHasRole;
|
|
80
84
|
image?: string;
|
|
81
85
|
name?: string;
|
|
82
|
-
|
|
86
|
+
};
|
|
87
|
+
}): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* 互換性維持プログラム専用
|
|
90
|
+
*/
|
|
91
|
+
updateByMemberMemberOf(params: {
|
|
92
|
+
project: {
|
|
93
|
+
id: string;
|
|
94
|
+
};
|
|
95
|
+
member: {
|
|
96
|
+
id: string;
|
|
97
|
+
memberOf: {
|
|
83
98
|
id: string;
|
|
84
99
|
typeOf: factory.organizationType.Project;
|
|
85
100
|
};
|
|
@@ -94,6 +109,14 @@ export declare class MongoRepository {
|
|
|
94
109
|
};
|
|
95
110
|
member: {
|
|
96
111
|
id: string;
|
|
112
|
+
memberOf: {
|
|
113
|
+
id: {
|
|
114
|
+
$eq: string;
|
|
115
|
+
};
|
|
116
|
+
typeOf: {
|
|
117
|
+
$eq: factory.organizationType.Project;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
97
120
|
};
|
|
98
121
|
}): Promise<void>;
|
|
99
122
|
/**
|
|
@@ -222,12 +222,30 @@ class MongoRepository {
|
|
|
222
222
|
* メンバー更新
|
|
223
223
|
*/
|
|
224
224
|
updateByMemberId(params) {
|
|
225
|
-
|
|
225
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
226
|
+
const doc = yield this.memberModel.findOneAndUpdate({
|
|
227
|
+
'project.id': { $eq: params.project.id },
|
|
228
|
+
'member.id': { $eq: params.member.id },
|
|
229
|
+
'member.memberOf.id': { $eq: params.member.memberOf.id },
|
|
230
|
+
'member.memberOf.typeOf': { $eq: params.member.memberOf.typeOf }
|
|
231
|
+
}, Object.assign(Object.assign(Object.assign({ updatedAt: new Date() }, (Array.isArray(params.member.hasRole)) ? { 'member.hasRole': params.member.hasRole } : undefined), (typeof params.member.image === 'string') ? { 'member.image': params.member.image } : undefined), (typeof params.member.name === 'string') ? { 'member.name': params.member.name } : undefined))
|
|
232
|
+
.exec();
|
|
233
|
+
if (doc === null) {
|
|
234
|
+
throw new factory.errors.NotFound(this.memberModel.modelName);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* 互換性維持プログラム専用
|
|
240
|
+
*/
|
|
241
|
+
updateByMemberMemberOf(params) {
|
|
226
242
|
return __awaiter(this, void 0, void 0, function* () {
|
|
227
243
|
const doc = yield this.memberModel.findOneAndUpdate({
|
|
228
244
|
'project.id': { $eq: params.project.id },
|
|
229
245
|
'member.id': { $eq: params.member.id }
|
|
230
|
-
},
|
|
246
|
+
}, {
|
|
247
|
+
'member.memberOf': params.member.memberOf
|
|
248
|
+
})
|
|
231
249
|
.exec();
|
|
232
250
|
if (doc === null) {
|
|
233
251
|
throw new factory.errors.NotFound(this.memberModel.modelName);
|
|
@@ -241,7 +259,9 @@ class MongoRepository {
|
|
|
241
259
|
return __awaiter(this, void 0, void 0, function* () {
|
|
242
260
|
const doc = yield this.memberModel.findOneAndDelete({
|
|
243
261
|
'project.id': { $eq: params.project.id },
|
|
244
|
-
'member.id': { $eq: params.member.id }
|
|
262
|
+
'member.id': { $eq: params.member.id },
|
|
263
|
+
'member.memberOf.id': { $eq: params.member.memberOf.id.$eq },
|
|
264
|
+
'member.memberOf.typeOf': { $eq: params.member.memberOf.typeOf.$eq }
|
|
245
265
|
})
|
|
246
266
|
.exec();
|
|
247
267
|
if (doc === null) {
|
|
@@ -255,21 +275,31 @@ class MongoRepository {
|
|
|
255
275
|
searchProjectIdsByMemberId(params) {
|
|
256
276
|
var _a, _b;
|
|
257
277
|
return __awaiter(this, void 0, void 0, function* () {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
.skip(params.limit * (page - 1));
|
|
278
|
+
if (typeof params.limit !== 'number') {
|
|
279
|
+
throw new factory.errors.ArgumentNull('limit');
|
|
280
|
+
}
|
|
281
|
+
if (typeof params.page !== 'number') {
|
|
282
|
+
throw new factory.errors.ArgumentNull('page');
|
|
283
|
+
}
|
|
284
|
+
const matchStages = [{ $match: { 'member.id': { $eq: params.member.id } } }];
|
|
285
|
+
if (typeof ((_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$regex) === 'string' && params.project.id.$regex.length > 0) {
|
|
286
|
+
matchStages.push({ $match: { 'project.id': { $regex: new RegExp(params.project.id.$regex) } } });
|
|
268
287
|
}
|
|
269
|
-
const
|
|
288
|
+
const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
|
|
289
|
+
const aggregate = this.memberModel.aggregate([
|
|
290
|
+
...matchStages,
|
|
291
|
+
{
|
|
292
|
+
$group: {
|
|
293
|
+
_id: '$project.id'
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
{ $sort: { _id: factory.sortType.Ascending } }
|
|
297
|
+
])
|
|
298
|
+
.limit(params.limit * page)
|
|
299
|
+
.skip(params.limit * (page - 1));
|
|
300
|
+
return aggregate
|
|
270
301
|
.exec()
|
|
271
|
-
.then((docs) => docs.map((doc) => doc.
|
|
272
|
-
return projectMembers.map((m) => m.project.id);
|
|
302
|
+
.then((docs) => docs.map((doc) => doc._id));
|
|
273
303
|
});
|
|
274
304
|
}
|
|
275
305
|
getCursor(conditions, projection) {
|
package/package.json
CHANGED