@chevre/domain 21.4.0-alpha.26 → 21.4.0-alpha.27
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,31 @@
|
|
|
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 = String(process.env.MEMBER_ID);
|
|
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.searchMemberOfIdsByMemberId({
|
|
15
|
+
member: {
|
|
16
|
+
id: memberId,
|
|
17
|
+
memberOf: {
|
|
18
|
+
// typeOf: chevre.factory.organizationType.Corporation,
|
|
19
|
+
typeOf: chevre.factory.organizationType.Project
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
project: {
|
|
23
|
+
id: PROJECT_ID
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
console.log(ids);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
main()
|
|
30
|
+
.then(console.log)
|
|
31
|
+
.catch(console.error);
|
package/example/src/chevre/{searchProjectIdsByMemberId.ts → iam/searchProjectIdsByMemberId.ts}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// tslint:disable:no-console
|
|
2
2
|
import * as mongoose from 'mongoose';
|
|
3
3
|
|
|
4
|
-
import { chevre } from '
|
|
4
|
+
import { chevre } from '../../../../lib/index';
|
|
5
5
|
|
|
6
6
|
// const PROJECT_ID = String(process.env.PROJECT_ID);
|
|
7
|
-
const memberId =
|
|
7
|
+
const memberId = String(process.env.MEMBER_ID);
|
|
8
8
|
|
|
9
9
|
async function main() {
|
|
10
10
|
await mongoose.connect(<string>process.env.MONGOLAB_URI);
|
|
@@ -134,5 +134,20 @@ export declare class MongoRepository {
|
|
|
134
134
|
limit: number;
|
|
135
135
|
page: number;
|
|
136
136
|
}): Promise<string[]>;
|
|
137
|
+
/**
|
|
138
|
+
* member.memberOf.typeOfからmember.memberOf.idのリストを検索する
|
|
139
|
+
* 権限を持つ販売者IDの検索など
|
|
140
|
+
*/
|
|
141
|
+
searchMemberOfIdsByMemberId(params: {
|
|
142
|
+
member: {
|
|
143
|
+
id: string;
|
|
144
|
+
memberOf: {
|
|
145
|
+
typeOf: factory.organizationType.Project | factory.organizationType.Corporation;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
project: {
|
|
149
|
+
id: string;
|
|
150
|
+
};
|
|
151
|
+
}): Promise<string[]>;
|
|
137
152
|
getCursor(conditions: any, projection: any): import("mongoose").Cursor<any, import("mongoose").QueryOptions<any>>;
|
|
138
153
|
}
|
|
@@ -302,6 +302,21 @@ class MongoRepository {
|
|
|
302
302
|
.then((docs) => docs.map((doc) => doc._id));
|
|
303
303
|
});
|
|
304
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* member.memberOf.typeOfからmember.memberOf.idのリストを検索する
|
|
307
|
+
* 権限を持つ販売者IDの検索など
|
|
308
|
+
*/
|
|
309
|
+
searchMemberOfIdsByMemberId(params) {
|
|
310
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
311
|
+
const query = this.memberModel.distinct('member.memberOf.id', {
|
|
312
|
+
'project.id': { $eq: params.project.id },
|
|
313
|
+
'member.id': { $eq: params.member.id },
|
|
314
|
+
'member.memberOf.typeOf': { $eq: params.member.memberOf.typeOf }
|
|
315
|
+
});
|
|
316
|
+
return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
317
|
+
.exec();
|
|
318
|
+
});
|
|
319
|
+
}
|
|
305
320
|
getCursor(conditions, projection) {
|
|
306
321
|
return this.memberModel.find(conditions, projection)
|
|
307
322
|
.sort({ 'member.id': factory.sortType.Ascending })
|
package/package.json
CHANGED