@chevre/domain 22.11.0-alpha.8 → 22.11.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.
Files changed (155) hide show
  1. package/example/src/chevre/aggregation/aggregateOrderOfCustomer.ts +21 -10
  2. package/example/src/chevre/aggregation/aggregateTasks.ts +41 -0
  3. package/example/src/chevre/checkCustomerAttributesLength.ts +109 -0
  4. package/example/src/chevre/notifyAbortedTasksByEmail.ts +1 -1
  5. package/example/src/chevre/reIndex.ts +1 -1
  6. package/example/src/chevre/roles/addEventOfferPermissionIfNotExists.ts +27 -0
  7. package/example/src/chevre/roles/{addAdminInventoryManagerRole.ts → addProjectCreatorRole.ts} +6 -8
  8. package/example/src/chevre/roles/assignGlobalRoles.ts +72 -0
  9. package/example/src/chevre/roles/findPermissions.ts +84 -0
  10. package/example/src/chevre/roles/findRoleNames.ts +117 -0
  11. package/example/src/chevre/roles/removeConsolePermissionIfExists.ts +38 -0
  12. package/example/src/chevre/roles/removePermissionFromAPIRoles.ts +46 -0
  13. package/example/src/chevre/roles/removePermissionIfExists.ts +39 -0
  14. package/example/src/chevre/searchEventSeats.ts +1 -1
  15. package/example/src/chevre/searchProducts.ts +28 -0
  16. package/example/src/chevre/settings/addSettings.ts +31 -17
  17. package/example/src/chevre/task/countPotentiallyRunning.ts +41 -0
  18. package/example/src/chevre/task/countTasks.ts +51 -0
  19. package/example/src/chevre/{deleteRunsAtPassedCertainPeriod.ts → task/deleteRunsAtPassedCertainPeriod.ts} +4 -3
  20. package/example/src/chevre/task/deleteUnexpectedTasks.ts +23 -0
  21. package/example/src/chevre/task/emitRunning.ts +89 -0
  22. package/example/src/idaas/auth0/adminApplications.ts +183 -0
  23. package/example/src/idaas/auth0/getToken.ts +55 -0
  24. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +84 -0
  25. package/example/src/regex.ts +31 -0
  26. package/lib/chevre/eventEmitter/task.d.ts +29 -6
  27. package/lib/chevre/index.d.ts +0 -2
  28. package/lib/chevre/index.js +0 -10
  29. package/lib/chevre/repo/identity.d.ts +11 -33
  30. package/lib/chevre/repo/identity.js +10 -15
  31. package/lib/chevre/repo/member.d.ts +22 -4
  32. package/lib/chevre/repo/member.js +81 -27
  33. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +1 -1
  34. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +14 -0
  35. package/lib/chevre/repo/mongoose/schemas/member/global.js +82 -0
  36. package/lib/chevre/repo/mongoose/schemas/product.js +9 -0
  37. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +15 -0
  38. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -0
  39. package/lib/chevre/repo/mongoose/schemas/task.js +9 -0
  40. package/lib/chevre/repo/order.d.ts +17 -2
  41. package/lib/chevre/repo/order.js +47 -8
  42. package/lib/chevre/repo/pendingReservation.js +1 -0
  43. package/lib/chevre/repo/product.js +12 -17
  44. package/lib/chevre/repo/role.d.ts +13 -4
  45. package/lib/chevre/repo/role.js +52 -32
  46. package/lib/chevre/repo/setting.d.ts +1 -10
  47. package/lib/chevre/repo/setting.js +2 -11
  48. package/lib/chevre/repo/stockHolder.d.ts +4 -27
  49. package/lib/chevre/repo/stockHolder.js +163 -175
  50. package/lib/chevre/repo/task.d.ts +58 -38
  51. package/lib/chevre/repo/task.js +126 -296
  52. package/lib/chevre/repo/transaction.js +10 -10
  53. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
  54. package/lib/chevre/service/assetTransaction/registerService.js +4 -0
  55. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +19 -16
  56. package/lib/chevre/service/code.d.ts +5 -28
  57. package/lib/chevre/service/code.js +3 -79
  58. package/lib/chevre/service/iam.d.ts +17 -7
  59. package/lib/chevre/service/iam.js +26 -6
  60. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.d.ts +15 -0
  61. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +38 -0
  62. package/lib/chevre/service/notification.d.ts +2 -1
  63. package/lib/chevre/service/notification.js +3 -1
  64. package/lib/chevre/service/offer/product.js +4 -0
  65. package/lib/chevre/service/order/confirmPayTransaction.d.ts +6 -1
  66. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +3 -3
  67. package/lib/chevre/service/task/acceptCOAOffer.d.ts +1 -1
  68. package/lib/chevre/service/task/aggregateOffers.d.ts +1 -1
  69. package/lib/chevre/service/task/aggregateOffers.js +1 -1
  70. package/lib/chevre/service/task/aggregateOnSystem.d.ts +4 -2
  71. package/lib/chevre/service/task/aggregateScreeningEvent.d.ts +1 -1
  72. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  73. package/lib/chevre/service/task/authorizePayment.d.ts +1 -1
  74. package/lib/chevre/service/task/cancelMoneyTransfer.d.ts +1 -1
  75. package/lib/chevre/service/task/cancelPendingReservation.d.ts +1 -1
  76. package/lib/chevre/service/task/cancelPendingReservation.js +1 -1
  77. package/lib/chevre/service/task/cancelReservation.d.ts +1 -1
  78. package/lib/chevre/service/task/cancelReservation.js +1 -1
  79. package/lib/chevre/service/task/checkMovieTicket.d.ts +1 -1
  80. package/lib/chevre/service/task/checkResource.d.ts +1 -1
  81. package/lib/chevre/service/task/checkResource.js +1 -1
  82. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +1 -1
  83. package/lib/chevre/service/task/confirmPayTransaction.d.ts +2 -2
  84. package/lib/chevre/service/task/confirmPayTransaction.js +3 -2
  85. package/lib/chevre/service/task/confirmRegisterService.d.ts +1 -1
  86. package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
  87. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +6 -2
  88. package/lib/chevre/service/task/confirmReserveTransaction.js +3 -3
  89. package/lib/chevre/service/task/createAccountingReport.d.ts +1 -1
  90. package/lib/chevre/service/task/createEvent.d.ts +1 -1
  91. package/lib/chevre/service/task/deletePerson.d.ts +1 -1
  92. package/lib/chevre/service/task/deleteTransaction.d.ts +1 -1
  93. package/lib/chevre/service/task/givePointAward.d.ts +1 -1
  94. package/lib/chevre/service/task/handleNotification.d.ts +4 -2
  95. package/lib/chevre/service/task/importEventCapacitiesFromCOA.d.ts +1 -1
  96. package/lib/chevre/service/task/importEventsFromCOA.d.ts +1 -1
  97. package/lib/chevre/service/task/importOffersFromCOA.d.ts +1 -1
  98. package/lib/chevre/service/task/invalidatePaymentUrl.d.ts +1 -1
  99. package/lib/chevre/service/task/moneyTransfer.d.ts +1 -1
  100. package/lib/chevre/service/task/onAssetTransactionStatusChanged.d.ts +1 -1
  101. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +1 -1
  102. package/lib/chevre/service/task/onEventChanged.d.ts +1 -1
  103. package/lib/chevre/service/task/onOrderPaymentCompleted.d.ts +1 -1
  104. package/lib/chevre/service/task/onResourceUpdated.d.ts +1 -1
  105. package/lib/chevre/service/task/pay.d.ts +1 -1
  106. package/lib/chevre/service/task/placeOrder.d.ts +1 -1
  107. package/lib/chevre/service/task/publishPaymentUrl.d.ts +1 -1
  108. package/lib/chevre/service/task/refund.d.ts +1 -1
  109. package/lib/chevre/service/task/registerService.d.ts +1 -1
  110. package/lib/chevre/service/task/reserve.d.ts +1 -1
  111. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +1 -1
  112. package/lib/chevre/service/task/returnOrder.d.ts +1 -1
  113. package/lib/chevre/service/task/returnPayTransaction.d.ts +1 -1
  114. package/lib/chevre/service/task/returnPointAward.d.ts +1 -1
  115. package/lib/chevre/service/task/returnReserveTransaction.d.ts +1 -1
  116. package/lib/chevre/service/task/sendEmailMessage.d.ts +1 -1
  117. package/lib/chevre/service/task/sendOrder.d.ts +1 -1
  118. package/lib/chevre/service/task/triggerWebhook.d.ts +1 -1
  119. package/lib/chevre/service/task/useReservation.d.ts +1 -1
  120. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +1 -1
  121. package/lib/chevre/service/task/voidPayTransaction.d.ts +1 -1
  122. package/lib/chevre/service/task/voidPayment.d.ts +1 -1
  123. package/lib/chevre/service/task/voidRegisterServiceTransaction.d.ts +1 -1
  124. package/lib/chevre/service/task/voidReserveTransaction.d.ts +1 -1
  125. package/lib/chevre/service/task/voidReserveTransaction.js +1 -1
  126. package/lib/chevre/service/task.d.ts +7 -29
  127. package/lib/chevre/service/task.js +9 -114
  128. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.d.ts +11 -0
  129. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +105 -0
  130. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +17 -0
  131. package/lib/chevre/service/taskHandler/onOperationFailed.js +70 -0
  132. package/lib/chevre/service/taskHandler.d.ts +26 -0
  133. package/lib/chevre/service/taskHandler.js +97 -0
  134. package/lib/chevre/service/validation/validateEvent.d.ts +2 -2
  135. package/lib/chevre/service/validation/validateEvent.js +16 -10
  136. package/lib/chevre/service.d.ts +0 -4
  137. package/lib/chevre/service.js +10 -14
  138. package/lib/chevre/settings/aggregation.d.ts +6 -1
  139. package/lib/chevre/settings/aggregation.js +2 -1
  140. package/package.json +6 -4
  141. package/example/src/chevre/adminAuth/adminIdentity.ts +0 -38
  142. package/example/src/chevre/executeOneTask.ts +0 -41
  143. package/example/src/chevre/executeTaskIfExists.ts +0 -80
  144. package/example/src/chevre/findExecutableTask.ts +0 -50
  145. package/example/src/chevre/findSetting.ts +0 -79
  146. package/example/src/chevre/roles/addRoleMembers.ts +0 -75
  147. package/example/src/chevre/searchPermissions.ts +0 -46
  148. package/example/src/chevre/searchProductOffers.ts +0 -29
  149. package/example/src/chevre/stockHolder/checkIfConflicted.ts +0 -76
  150. package/example/src/chevre/stockHolder/checkRedisKeyCount.ts +0 -186
  151. package/example/src/chevre/stockHolder/migratePendingReservations.ts +0 -96
  152. package/example/src/chevre/stockHolder/playAroundStockHolder.ts +0 -256
  153. package/example/src/chevre/upsertProductsByProductId.ts +0 -100
  154. package/lib/chevre/adminAuth.d.ts +0 -2
  155. package/lib/chevre/adminAuth.js +0 -6
@@ -120,6 +120,15 @@ const indexes = [
120
120
  'name.en': { $exists: true }
121
121
  }
122
122
  }
123
+ ],
124
+ [
125
+ { additionalProperty: 1, productID: 1 },
126
+ {
127
+ name: 'additionalProperty',
128
+ partialFilterExpression: {
129
+ additionalProperty: { $exists: true }
130
+ }
131
+ }
123
132
  ]
124
133
  ];
125
134
  exports.indexes = indexes;
@@ -13,6 +13,20 @@ interface IOnReservationStatusChanged {
13
13
  */
14
14
  informReservation?: factory.project.IInformParams[];
15
15
  }
16
+ interface IOnTaskStatusChanged {
17
+ /**
18
+ * AggService通知先
19
+ */
20
+ informTask?: factory.project.IInformParams[];
21
+ /**
22
+ * 分析連携するtaskNameリスト
23
+ */
24
+ informTaskNames?: factory.taskName[];
25
+ /**
26
+ * 分析連携するtaskStatusリスト
27
+ */
28
+ informTaskStatuses?: factory.taskStatus[];
29
+ }
16
30
  interface IOnEventChanged {
17
31
  informEvent2agg?: factory.project.IInformParams[];
18
32
  }
@@ -102,6 +116,7 @@ export interface ISetting {
102
116
  onEventChanged?: IOnEventChanged;
103
117
  onOrderStatusChanged: IOnOrderStatusChanged;
104
118
  onReservationStatusChanged?: IOnReservationStatusChanged;
119
+ onTaskStatusChanged?: IOnTaskStatusChanged;
105
120
  onResourceUpdated?: {
106
121
  informResource?: factory.project.IInformParams[];
107
122
  };
@@ -14,6 +14,7 @@ const schemaDefinition = {
14
14
  onEventChanged: mongoose_1.SchemaTypes.Mixed,
15
15
  onOrderStatusChanged: mongoose_1.SchemaTypes.Mixed,
16
16
  onReservationStatusChanged: mongoose_1.SchemaTypes.Mixed,
17
+ onTaskStatusChanged: mongoose_1.SchemaTypes.Mixed,
17
18
  onResourceUpdated: mongoose_1.SchemaTypes.Mixed,
18
19
  onTransactionStatusChanged: mongoose_1.SchemaTypes.Mixed,
19
20
  quota: mongoose_1.SchemaTypes.Mixed,
@@ -186,6 +186,15 @@ const indexes = [
186
186
  }
187
187
  }
188
188
  ],
189
+ [
190
+ { status: 1, lastTriedAt: 1, remainingNumberOfTries: 1, name: 1 },
191
+ {
192
+ name: 'abortMany',
193
+ partialFilterExpression: {
194
+ lastTriedAt: { $type: 'date' }
195
+ }
196
+ }
197
+ ],
189
198
  [
190
199
  { status: 1, expires: 1 },
191
200
  {
@@ -204,8 +204,8 @@ export declare class OrderRepo {
204
204
  emailCount?: number;
205
205
  };
206
206
  }>;
207
- aggregateOrderOfCustomer(params: {
208
- project: {
207
+ aggregateOrderOfCustomerByProject(params: {
208
+ project?: {
209
209
  id: {
210
210
  $eq: string;
211
211
  };
@@ -225,5 +225,20 @@ export declare class OrderRepo {
225
225
  emailCount?: number;
226
226
  };
227
227
  }>;
228
+ aggregateOrderOfCustomerGlobally(params: {
229
+ orderDate: {
230
+ $gte: Date;
231
+ $lte: Date;
232
+ };
233
+ customer: {
234
+ email: {
235
+ $eq: string;
236
+ };
237
+ };
238
+ }): Promise<{
239
+ aggregation: Pick<IAggregation, 'orderCount'> & {
240
+ sumGraceTime?: never;
241
+ };
242
+ }>;
228
243
  }
229
244
  export {};
@@ -1198,17 +1198,13 @@ class OrderRepo {
1198
1198
  };
1199
1199
  });
1200
1200
  }
1201
- aggregateOrderOfCustomer(params) {
1201
+ aggregateOrderOfCustomerByProject(params) {
1202
1202
  return __awaiter(this, void 0, void 0, function* () {
1203
- const matchConditions = {
1204
- orderDate: {
1203
+ var _a;
1204
+ const matchConditions = Object.assign(Object.assign({ orderDate: {
1205
1205
  $gte: params.orderDate.$gte,
1206
1206
  $lte: params.orderDate.$lte
1207
- },
1208
- typeOf: { $eq: factory.order.OrderType.Order },
1209
- 'project.id': { $eq: params.project.id.$eq },
1210
- 'customer.email': { $exists: true, $eq: params.customer.email.$eq }
1211
- };
1207
+ }, typeOf: { $eq: factory.order.OrderType.Order } }, (typeof ((_a = params.project) === null || _a === void 0 ? void 0 : _a.id.$eq) === 'string') ? { 'project.id': { $eq: params.project.id.$eq } } : undefined), { 'customer.email': { $exists: true, $eq: params.customer.email.$eq } });
1212
1208
  const aggregations = yield this.orderModel.aggregate([
1213
1209
  { $match: matchConditions },
1214
1210
  {
@@ -1250,5 +1246,48 @@ class OrderRepo {
1250
1246
  };
1251
1247
  });
1252
1248
  }
1249
+ aggregateOrderOfCustomerGlobally(params) {
1250
+ return __awaiter(this, void 0, void 0, function* () {
1251
+ const matchConditions = {
1252
+ orderDate: {
1253
+ $gte: params.orderDate.$gte,
1254
+ $lte: params.orderDate.$lte
1255
+ },
1256
+ typeOf: { $eq: factory.order.OrderType.Order },
1257
+ 'customer.email': { $exists: true, $eq: params.customer.email.$eq }
1258
+ };
1259
+ const aggregations = yield this.orderModel.aggregate([
1260
+ { $match: matchConditions },
1261
+ {
1262
+ $project: {
1263
+ typeOf: '$typeOf'
1264
+ }
1265
+ },
1266
+ {
1267
+ $group: {
1268
+ _id: '$typeOf',
1269
+ orderCount: { $sum: 1 }
1270
+ }
1271
+ },
1272
+ {
1273
+ $project: {
1274
+ _id: 0,
1275
+ orderCount: '$orderCount'
1276
+ }
1277
+ }
1278
+ ])
1279
+ .exec();
1280
+ if (aggregations.length === 0) {
1281
+ return {
1282
+ aggregation: {
1283
+ orderCount: 0
1284
+ }
1285
+ };
1286
+ }
1287
+ return {
1288
+ aggregation: Object.assign({}, aggregations[0])
1289
+ };
1290
+ });
1291
+ }
1253
1292
  }
1254
1293
  exports.OrderRepo = OrderRepo;
@@ -587,6 +587,7 @@ class PendingReservationRepo {
587
587
  throw new factory.errors.AlreadyInUse(factory.reservationType.EventReservation, ['ticketedSeat'], 'Already hold');
588
588
  }
589
589
  }
590
+ throw error;
590
591
  }
591
592
  });
592
593
  }
@@ -48,7 +48,7 @@ class ProductRepo {
48
48
  }
49
49
  // tslint:disable-next-line:max-func-body-length
50
50
  static CREATE_MONGO_CONDITIONS(params) {
51
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
51
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
52
52
  // MongoDB検索条件
53
53
  const andConditions = [];
54
54
  const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
@@ -151,25 +151,20 @@ class ProductRepo {
151
151
  const nameRegexExp = new RegExp(nameRegex);
152
152
  andConditions.push({
153
153
  $or: [
154
- {
155
- 'name.ja': {
156
- $exists: true,
157
- $regex: nameRegexExp
158
- }
159
- },
160
- {
161
- 'name.en': {
162
- $exists: true,
163
- $regex: nameRegexExp
164
- }
165
- }
154
+ { 'name.ja': { $exists: true, $regex: nameRegexExp } },
155
+ { 'name.en': { $exists: true, $regex: nameRegexExp } }
166
156
  ]
167
157
  });
168
158
  }
169
- // const providerIdEq = params.provider?.id?.$eq;
170
- // if (typeof providerIdEq === 'string') {
171
- // andConditions.push({ 'provider.id': { $exists: true, $eq: providerIdEq } });
172
- // }
159
+ const additionalPropertyElemMatchNameEq = (_w = params.additionalPropertyMatch) === null || _w === void 0 ? void 0 : _w.nameEq;
160
+ if (typeof additionalPropertyElemMatchNameEq === 'string') {
161
+ andConditions.push({
162
+ additionalProperty: {
163
+ $exists: true,
164
+ $elemMatch: { name: { $eq: additionalPropertyElemMatchNameEq } }
165
+ }
166
+ });
167
+ }
173
168
  return andConditions;
174
169
  }
175
170
  /**
@@ -11,13 +11,14 @@ export declare class RoleRepo {
11
11
  constructor(connection: Connection);
12
12
  static CREATE_MONGO_CONDITIONS(params: factory.role.organizationRole.ISearchConditions): FilterQuery<IDocType>[];
13
13
  projectFields(params: factory.role.organizationRole.ISearchConditions, inclusion: IKeyOfProjection[]): Promise<IRole[]>;
14
- aggregatePermissions(params: {
14
+ /**
15
+ * distinctコマンドを使用して、ロールから権限を検索する
16
+ */
17
+ findUniquePermissionsByRoleName(params: {
15
18
  roleName: {
16
19
  $in: string[];
17
20
  };
18
- }): Promise<{
19
- _id: string;
20
- }[]>;
21
+ }): Promise<string[]>;
21
22
  addPermissionIfNotExists(params: {
22
23
  roleName: {
23
24
  $eq: factory.role.organizationRole.RoleName;
@@ -26,6 +27,14 @@ export declare class RoleRepo {
26
27
  }): Promise<(import("mongoose").FlattenMaps<IDocType> & {
27
28
  _id: import("mongoose").Types.ObjectId;
28
29
  }) | null>;
30
+ removePermissionIfExists(params: {
31
+ roleName: {
32
+ $eq: factory.role.organizationRole.RoleName;
33
+ };
34
+ permission: string;
35
+ }): Promise<(import("mongoose").FlattenMaps<IDocType> & {
36
+ _id: import("mongoose").Types.ObjectId;
37
+ }) | null>;
29
38
  addMember(params: Pick<IRole, 'member' | 'memberOf' | 'roleName'>): Promise<(import("mongoose").FlattenMaps<IDocType> & {
30
39
  _id: import("mongoose").Types.ObjectId;
31
40
  }) | null>;
@@ -77,39 +77,42 @@ class RoleRepo {
77
77
  .exec();
78
78
  });
79
79
  }
80
- aggregatePermissions(params) {
80
+ // migrate to findDistinctPermissionsByRoleName(2025-07-21~)
81
+ // public async aggregatePermissions(params: {
82
+ // roleName: { $in: string[] };
83
+ // }): Promise<{ _id: string }[]> {
84
+ // const matchStages: IMatchStage[] = [
85
+ // { $match: { roleName: { $in: params.roleName.$in } } }
86
+ // ];
87
+ // const aggregate = this.roleModel.aggregate([
88
+ // ...matchStages,
89
+ // {
90
+ // $unwind: {
91
+ // path: '$permissions'
92
+ // }
93
+ // },
94
+ // {
95
+ // $project: {
96
+ // _id: 0,
97
+ // permission: '$permissions'
98
+ // }
99
+ // },
100
+ // {
101
+ // $group: {
102
+ // _id: '$permission'
103
+ // }
104
+ // }
105
+ // ]);
106
+ // return aggregate.option({ maxTimeMS: MONGO_MAX_TIME_MS })
107
+ // .exec();
108
+ // }
109
+ /**
110
+ * distinctコマンドを使用して、ロールから権限を検索する
111
+ */
112
+ findUniquePermissionsByRoleName(params) {
81
113
  return __awaiter(this, void 0, void 0, function* () {
82
- const matchStages = [
83
- { $match: { roleName: { $in: params.roleName.$in } } }
84
- ];
85
- const aggregate = this.roleModel.aggregate([
86
- // ...(typeof params.sort?.productID === 'number')
87
- // ? [{ $sort: { productID: params.sort.productID } }]
88
- // : [],
89
- ...matchStages,
90
- {
91
- $unwind: {
92
- path: '$permissions'
93
- }
94
- },
95
- {
96
- $project: {
97
- _id: 0,
98
- permission: '$permissions'
99
- }
100
- },
101
- {
102
- $group: {
103
- _id: '$permission'
104
- }
105
- }
106
- ]);
107
- // if (typeof params.limit === 'number' && params.limit > 0) {
108
- // const page: number = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
109
- // aggregate.limit(params.limit * page)
110
- // .skip(params.limit * (page - 1));
111
- // }
112
- return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
114
+ return this.roleModel.distinct('permissions', { roleName: { $in: params.roleName.$in } })
115
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
113
116
  .exec();
114
117
  });
115
118
  }
@@ -133,6 +136,23 @@ class RoleRepo {
133
136
  .exec();
134
137
  });
135
138
  }
139
+ removePermissionIfExists(params) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ return this.roleModel.findOneAndUpdate({
142
+ roleName: { $eq: params.roleName.$eq },
143
+ permissions: { $eq: params.permission }
144
+ }, {
145
+ $pull: {
146
+ permissions: params.permission
147
+ }
148
+ }, {
149
+ new: true,
150
+ projection: { _id: 1 }
151
+ })
152
+ .lean()
153
+ .exec();
154
+ });
155
+ }
136
156
  addMember(params) {
137
157
  return __awaiter(this, void 0, void 0, function* () {
138
158
  const { roleName, member, memberOf } = params;
@@ -22,16 +22,7 @@ export declare class SettingRepo {
22
22
  $eq: string;
23
23
  };
24
24
  };
25
- }, update: Pick<ISetting, 'onEventChanged' | 'onReservationStatusChanged' | 'onResourceUpdated' | 'defaultSenderEmail' | 'useInformResourceTypes' | 'userPoolIdNew' | 'userPoolIdOld' | 'storage' | 'quota' | 'triggerWebhook' | 'waiter'>): Promise<import("mongoose").UpdateWriteOpResult>;
26
- updateByProject4migration(filter: {
27
- project: {
28
- id: {
29
- $eq: string;
30
- };
31
- };
32
- }, update: {
33
- $set: any;
34
- }): Promise<import("mongoose").UpdateWriteOpResult>;
25
+ }, update: Pick<ISetting, 'onEventChanged' | 'onReservationStatusChanged' | 'onTaskStatusChanged' | 'onResourceUpdated' | 'defaultSenderEmail' | 'useInformResourceTypes' | 'userPoolIdNew' | 'userPoolIdOld' | 'storage' | 'quota' | 'triggerWebhook' | 'waiter'>): Promise<import("mongoose").UpdateWriteOpResult>;
35
26
  unsetUnnecessaryFields(params: {
36
27
  filter: FilterQuery<ISetting>;
37
28
  $unset: any;
@@ -49,18 +49,9 @@ class SettingRepo {
49
49
  }
50
50
  updateByProject(filter, update) {
51
51
  return __awaiter(this, void 0, void 0, function* () {
52
- const { onEventChanged, onReservationStatusChanged, onResourceUpdated, defaultSenderEmail, useInformResourceTypes, userPoolIdNew, userPoolIdOld, storage, quota, triggerWebhook, waiter } = update;
52
+ const { onEventChanged, onReservationStatusChanged, onTaskStatusChanged, onResourceUpdated, defaultSenderEmail, useInformResourceTypes, userPoolIdNew, userPoolIdOld, storage, quota, triggerWebhook, waiter } = update;
53
53
  return this.settingModel.updateOne({ 'project.id': { $eq: filter.project.id.$eq } }, {
54
- $set: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (onEventChanged !== undefined) ? { onEventChanged } : undefined), (onReservationStatusChanged !== undefined) ? { onReservationStatusChanged } : undefined), (onResourceUpdated !== undefined) ? { onResourceUpdated } : undefined), (defaultSenderEmail !== undefined) ? { defaultSenderEmail } : undefined), (useInformResourceTypes !== undefined) ? { useInformResourceTypes } : undefined), (userPoolIdNew !== undefined) ? { userPoolIdNew } : undefined), (userPoolIdOld !== undefined) ? { userPoolIdOld } : undefined), (storage !== undefined) ? { storage } : undefined), (quota !== undefined) ? { quota } : undefined), (triggerWebhook !== undefined) ? { triggerWebhook } : undefined), (waiter !== undefined) ? { waiter } : undefined)
55
- })
56
- .exec();
57
- });
58
- }
59
- updateByProject4migration(filter, update) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- const { $set } = update;
62
- return this.settingModel.updateOne({ 'project.id': { $eq: filter.project.id.$eq } }, {
63
- $set
54
+ $set: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (onEventChanged !== undefined) ? { onEventChanged } : undefined), (onReservationStatusChanged !== undefined) ? { onReservationStatusChanged } : undefined), (onTaskStatusChanged !== undefined) ? { onTaskStatusChanged } : undefined), (onResourceUpdated !== undefined) ? { onResourceUpdated } : undefined), (defaultSenderEmail !== undefined) ? { defaultSenderEmail } : undefined), (useInformResourceTypes !== undefined) ? { useInformResourceTypes } : undefined), (userPoolIdNew !== undefined) ? { userPoolIdNew } : undefined), (userPoolIdOld !== undefined) ? { userPoolIdOld } : undefined), (storage !== undefined) ? { storage } : undefined), (quota !== undefined) ? { quota } : undefined), (triggerWebhook !== undefined) ? { triggerWebhook } : undefined), (waiter !== undefined) ? { waiter } : undefined)
64
55
  })
65
56
  .exec();
66
57
  });
@@ -1,17 +1,14 @@
1
1
  import type { Connection } from 'mongoose';
2
- import type { RedisClientType } from 'redis';
3
2
  import { AbstractStockHolderRepo, IGetHolderResult, ILockKey, IOffer, IUnlockKey } from './stockHolderAbstract';
4
3
  export { ILockKey, IOffer, IUnlockKey };
5
4
  /**
6
- * イベントストックホルダーリポジトリ
5
+ * 保留予約リポジトリ
7
6
  */
8
7
  export declare class StockHolderRepo implements AbstractStockHolderRepo {
9
- static KEY_PREFIX_NEW: string;
10
- private readonly redisClient;
11
8
  private readonly pendingReservationRepo;
12
- constructor(redisClient: RedisClientType, connection: Connection);
13
- private static offer2field;
14
- private static createKey;
9
+ constructor(params: {
10
+ connection: Connection;
11
+ });
15
12
  /**
16
13
  * 座席をロックする(maxキャパシティチェック有)
17
14
  */
@@ -50,26 +47,6 @@ export declare class StockHolderRepo implements AbstractStockHolderRepo {
50
47
  hasTicketedSeat: boolean;
51
48
  offers: IOffer[];
52
49
  }): Promise<IGetHolderResult[]>;
53
- redisKeyExists(params: {
54
- eventId: string;
55
- startDate: Date;
56
- }): Promise<boolean>;
57
- checkIfConflicted(params: {
58
- eventId: string;
59
- startDate: Date;
60
- }): Promise<void>;
61
- /**
62
- * 万が一に備えて、保留予約をredis->mongo移行
63
- */
64
- migrate2mongoJustInCase(params: {
65
- eventId: string;
66
- startDate: Date;
67
- }): Promise<{
68
- expireTime: number;
69
- hash: {
70
- [x: string]: string;
71
- };
72
- }>;
73
50
  /**
74
51
  * 新リポジトリを使用するかどうか
75
52
  */