@chevre/domain 21.2.0-alpha.15 → 21.2.0-alpha.150

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 (308) hide show
  1. package/example/src/chevre/aggregateEventReservation.ts +1 -1
  2. package/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
  3. package/example/src/chevre/countDelayedTasks.ts +7 -2
  4. package/example/src/chevre/deleteTasksByName.ts +10 -2
  5. package/example/src/chevre/findScreeningRoomsByBranchCode.ts +4 -3
  6. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  7. package/example/src/chevre/lockStockHolder.ts +5 -2
  8. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  9. package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
  10. package/example/src/chevre/processPay.ts +5 -1
  11. package/example/src/chevre/processRegisterMembership.ts +8 -4
  12. package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
  13. package/example/src/chevre/processReserve.ts +5 -2
  14. package/example/src/chevre/saveTasks.ts +13 -10
  15. package/example/src/chevre/searchAbortedTasks.ts +34 -0
  16. package/example/src/chevre/searchActions.ts +33 -0
  17. package/example/src/chevre/searchEventSeats.ts +5 -2
  18. package/example/src/chevre/searchHoldReservations.ts +38 -0
  19. package/example/src/chevre/searchPaymentServiceProviders.ts +38 -0
  20. package/example/src/chevre/searchPermissions.ts +54 -0
  21. package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
  22. package/example/src/chevre/searchScreeningRooms.ts +35 -0
  23. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  24. package/example/src/chevre/syncScreeningRooms.ts +21 -0
  25. package/example/src/chevre/syncScreeningRoomsAll.ts +41 -0
  26. package/example/src/chevre/task/executeTasks.ts +26 -0
  27. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  28. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  29. package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
  30. package/example/src/chevre/transaction/startExportTasks.ts +2 -1
  31. package/example/src/chevre/updateTransaction.ts +1 -1
  32. package/example/src/playOnMoment.ts +24 -0
  33. package/lib/chevre/credentials.d.ts +1 -0
  34. package/lib/chevre/credentials.js +2 -1
  35. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  36. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  37. package/lib/chevre/eventEmitter/task.d.ts +2 -1
  38. package/lib/chevre/eventEmitter/task.js +1 -4
  39. package/lib/chevre/eventEmitter/transaction.d.ts +1 -1
  40. package/lib/chevre/eventEmitter/transaction.js +1 -4
  41. package/lib/chevre/eventEmitter.d.ts +2 -1
  42. package/lib/chevre/eventEmitter.js +3 -1
  43. package/lib/chevre/index.d.ts +1 -1
  44. package/lib/chevre/index.js +2 -2
  45. package/lib/chevre/repo/account.js +3 -2
  46. package/lib/chevre/repo/accountTransaction.d.ts +3 -1
  47. package/lib/chevre/repo/accountTransaction.js +3 -2
  48. package/lib/chevre/repo/action.d.ts +42 -2
  49. package/lib/chevre/repo/action.js +130 -57
  50. package/lib/chevre/repo/additionalProperty.js +2 -1
  51. package/lib/chevre/repo/aggregation.d.ts +3 -0
  52. package/lib/chevre/repo/aggregation.js +3 -0
  53. package/lib/chevre/repo/assetTransaction.d.ts +23 -8
  54. package/lib/chevre/repo/assetTransaction.js +253 -80
  55. package/lib/chevre/repo/categoryCode.d.ts +1 -1
  56. package/lib/chevre/repo/categoryCode.js +37 -25
  57. package/lib/chevre/repo/code.js +3 -2
  58. package/lib/chevre/repo/comment.d.ts +4 -1
  59. package/lib/chevre/repo/comment.js +22 -6
  60. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  61. package/lib/chevre/repo/confirmationNumber.js +3 -15
  62. package/lib/chevre/repo/creativeWork.d.ts +2 -4
  63. package/lib/chevre/repo/creativeWork.js +35 -12
  64. package/lib/chevre/repo/customer.js +2 -1
  65. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  66. package/lib/chevre/repo/emailMessage.js +2 -1
  67. package/lib/chevre/repo/event.d.ts +27 -1
  68. package/lib/chevre/repo/event.js +67 -33
  69. package/lib/chevre/repo/member.d.ts +14 -0
  70. package/lib/chevre/repo/member.js +31 -3
  71. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  72. package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
  73. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
  74. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
  75. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
  76. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  77. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
  78. package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
  79. package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
  80. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
  81. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
  82. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
  83. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
  84. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
  85. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
  87. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
  88. package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
  89. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
  90. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
  91. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
  92. package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
  93. package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
  94. package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
  95. package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
  96. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
  97. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
  98. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
  99. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  100. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  101. package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
  102. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  103. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
  104. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
  105. package/lib/chevre/repo/mongoose/schemas/place.d.ts +55 -3
  106. package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
  107. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
  108. package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
  109. package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
  110. package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
  111. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
  112. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  113. package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
  114. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
  115. package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
  116. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
  117. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
  118. package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
  119. package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
  120. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
  121. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
  122. package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
  123. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
  124. package/lib/chevre/repo/offer.js +3 -2
  125. package/lib/chevre/repo/offerCatalog.js +0 -27
  126. package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
  127. package/lib/chevre/repo/offerItemCondition.js +121 -0
  128. package/lib/chevre/repo/order.d.ts +55 -3
  129. package/lib/chevre/repo/order.js +62 -10
  130. package/lib/chevre/repo/ownershipInfo.js +2 -7
  131. package/lib/chevre/repo/place.d.ts +189 -27
  132. package/lib/chevre/repo/place.js +1696 -702
  133. package/lib/chevre/repo/priceSpecification.js +3 -2
  134. package/lib/chevre/repo/product.d.ts +18 -3
  135. package/lib/chevre/repo/product.js +139 -5
  136. package/lib/chevre/repo/project.js +2 -1
  137. package/lib/chevre/repo/reservation.d.ts +20 -4
  138. package/lib/chevre/repo/reservation.js +40 -59
  139. package/lib/chevre/repo/role.d.ts +7 -0
  140. package/lib/chevre/repo/role.js +39 -2
  141. package/lib/chevre/repo/seller.d.ts +1 -1
  142. package/lib/chevre/repo/seller.js +44 -23
  143. package/lib/chevre/repo/serviceOutput.js +2 -1
  144. package/lib/chevre/repo/stockHolder.d.ts +143 -7
  145. package/lib/chevre/repo/stockHolder.js +622 -104
  146. package/lib/chevre/repo/task.d.ts +42 -2
  147. package/lib/chevre/repo/task.js +68 -20
  148. package/lib/chevre/repo/transaction.d.ts +21 -2
  149. package/lib/chevre/repo/transaction.js +160 -48
  150. package/lib/chevre/repo/trip.js +2 -1
  151. package/lib/chevre/repository.d.ts +5 -2
  152. package/lib/chevre/repository.js +8 -4
  153. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +18 -8
  154. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
  155. package/lib/chevre/service/aggregation/system.d.ts +110 -23
  156. package/lib/chevre/service/aggregation/system.js +213 -91
  157. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
  158. package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
  159. package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
  160. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  161. package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
  162. package/lib/chevre/service/assetTransaction/pay.js +20 -34
  163. package/lib/chevre/service/assetTransaction/refund.js +2 -24
  164. package/lib/chevre/service/assetTransaction/registerService.js +1 -25
  165. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
  166. package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
  167. package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
  168. package/lib/chevre/service/assetTransaction/reserve.js +93 -70
  169. package/lib/chevre/service/assetTransaction.d.ts +6 -0
  170. package/lib/chevre/service/assetTransaction.js +9 -4
  171. package/lib/chevre/service/event.d.ts +3 -0
  172. package/lib/chevre/service/event.js +55 -22
  173. package/lib/chevre/service/iam.d.ts +6 -2
  174. package/lib/chevre/service/iam.js +23 -9
  175. package/lib/chevre/service/notification/factory.js +2 -2
  176. package/lib/chevre/service/notification.d.ts +3 -1
  177. package/lib/chevre/service/notification.js +41 -7
  178. package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
  179. package/lib/chevre/service/offer/event/authorize.js +8 -2
  180. package/lib/chevre/service/offer/event/factory.d.ts +3 -0
  181. package/lib/chevre/service/offer/event/factory.js +16 -5
  182. package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
  183. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  184. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  185. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
  186. package/lib/chevre/service/offer/product.js +2 -2
  187. package/lib/chevre/service/offer.d.ts +16 -8
  188. package/lib/chevre/service/offer.js +72 -9
  189. package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
  190. package/lib/chevre/service/order/deleteOrder.js +8 -8
  191. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
  192. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
  193. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
  194. package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
  195. package/lib/chevre/service/order/onOrderUpdated.js +22 -0
  196. package/lib/chevre/service/order/placeOrder.d.ts +1 -0
  197. package/lib/chevre/service/order/placeOrder.js +41 -24
  198. package/lib/chevre/service/order/returnOrder.d.ts +1 -0
  199. package/lib/chevre/service/order/returnOrder.js +7 -12
  200. package/lib/chevre/service/order/sendOrder.d.ts +1 -0
  201. package/lib/chevre/service/order/sendOrder.js +7 -10
  202. package/lib/chevre/service/order.d.ts +2 -1
  203. package/lib/chevre/service/order.js +3 -1
  204. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  205. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  206. package/lib/chevre/service/payment/any.d.ts +9 -5
  207. package/lib/chevre/service/payment/any.js +80 -18
  208. package/lib/chevre/service/payment/creditCard.d.ts +1 -1
  209. package/lib/chevre/service/payment/creditCard.js +23 -17
  210. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
  211. package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
  212. package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
  213. package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
  214. package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
  215. package/lib/chevre/service/payment/movieTicket/validation.js +65 -37
  216. package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
  217. package/lib/chevre/service/payment/movieTicket.js +7 -6
  218. package/lib/chevre/service/product.js +1 -5
  219. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  220. package/lib/chevre/service/report/telemetry.js +21 -24
  221. package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
  222. package/lib/chevre/service/reserve/cancelReservation.js +162 -142
  223. package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
  224. package/lib/chevre/service/reserve/checkInReservation.js +77 -3
  225. package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
  226. package/lib/chevre/service/reserve/confirmReservation.js +133 -58
  227. package/lib/chevre/service/reserve/factory.d.ts +1 -1
  228. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
  229. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
  230. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  231. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  232. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  233. package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
  234. package/lib/chevre/service/reserve/useReservation.js +61 -71
  235. package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
  236. package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
  237. package/lib/chevre/service/reserve.d.ts +3 -2
  238. package/lib/chevre/service/reserve.js +4 -2
  239. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  240. package/lib/chevre/service/task/cancelPendingReservation.js +6 -2
  241. package/lib/chevre/service/task/cancelReservation.js +1 -1
  242. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  243. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  244. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  245. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
  246. package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
  247. package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
  248. package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
  249. package/lib/chevre/service/task/onResourceUpdated.d.ts +10 -0
  250. package/lib/chevre/service/task/onResourceUpdated.js +418 -0
  251. package/lib/chevre/service/task/placeOrder.js +1 -1
  252. package/lib/chevre/service/task/reserve.js +10 -7
  253. package/lib/chevre/service/task/returnOrder.js +1 -1
  254. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  255. package/lib/chevre/service/task/sendOrder.js +1 -1
  256. package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
  257. package/lib/chevre/service/task/syncScreeningRooms.js +24 -0
  258. package/lib/chevre/service/task/useReservation.d.ts +7 -0
  259. package/lib/chevre/service/task/useReservation.js +36 -0
  260. package/lib/chevre/service/task/voidReserveTransaction.js +4 -2
  261. package/lib/chevre/service/task.d.ts +6 -0
  262. package/lib/chevre/service/task.js +22 -4
  263. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  264. package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
  265. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  266. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
  267. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  268. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  269. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  270. package/lib/chevre/service/transaction/moneyTransfer.js +10 -13
  271. package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
  272. package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
  273. package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
  274. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  275. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  276. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  277. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  278. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  279. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  280. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  281. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  282. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  283. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  284. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  285. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  286. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  287. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  288. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  289. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  290. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
  291. package/lib/chevre/service/transaction/placeOrderInProgress.js +28 -15
  292. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  293. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
  294. package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
  295. package/lib/chevre/service/transaction/returnOrder.js +228 -36
  296. package/lib/chevre/service/transaction.d.ts +7 -13
  297. package/lib/chevre/service/transaction.js +12 -139
  298. package/lib/chevre/settings.d.ts +15 -2
  299. package/lib/chevre/settings.js +58 -7
  300. package/package.json +5 -5
  301. package/example/src/chevre/createManyEventsIfNotExist.ts +0 -205
  302. package/example/src/chevre/eventCatalog2eventService.ts +0 -123
  303. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  304. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
  305. package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
  306. package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
  307. package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
  308. package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.MongoRepository = void 0;
24
24
  const factory = require("../factory");
25
25
  const priceSpecification_1 = require("./mongoose/schemas/priceSpecification");
26
+ const settings_1 = require("../settings");
26
27
  /**
27
28
  * 価格仕様リポジトリ
28
29
  */
@@ -156,7 +157,7 @@ class MongoRepository {
156
157
  return __awaiter(this, void 0, void 0, function* () {
157
158
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
158
159
  return this.priceSpecificationModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
159
- .setOptions({ maxTimeMS: 10000 })
160
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
160
161
  .exec();
161
162
  });
162
163
  }
@@ -182,7 +183,7 @@ class MongoRepository {
182
183
  // const explainResult = await (<any>query).explain();
183
184
  // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
184
185
  // return;
185
- return query.setOptions({ maxTimeMS: 10000 })
186
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
186
187
  .exec()
187
188
  .then((docs) => docs.map((doc) => doc.toObject()));
188
189
  });
@@ -25,6 +25,9 @@
25
25
  import { Connection } from 'mongoose';
26
26
  import * as factory from '../factory';
27
27
  export type IProduct = factory.product.IProduct | factory.service.paymentService.IService;
28
+ export type IPaymentServiceByProvider = Pick<factory.service.paymentService.IService, 'name' | 'description' | 'typeOf' | 'id' | 'productID' | 'serviceType' | 'additionalProperty'> & {
29
+ provider?: Pick<factory.service.paymentService.IProvider, 'credentials'>;
30
+ };
28
31
  /**
29
32
  * プロダクトリポジトリ
30
33
  */
@@ -37,9 +40,7 @@ export declare class MongoRepository {
37
40
  }, projection?: {
38
41
  [key: string]: number;
39
42
  }): Promise<IProduct>;
40
- search(conditions: factory.product.ISearchConditions, projection?: {
41
- [key: string]: number;
42
- }): Promise<IProduct[]>;
43
+ search(conditions: factory.product.ISearchConditions, inclusion: string[], exclusion: string[]): Promise<IProduct[]>;
43
44
  deleteById(params: {
44
45
  id: string;
45
46
  }): Promise<void>;
@@ -53,6 +54,20 @@ export declare class MongoRepository {
53
54
  typeOf: factory.service.paymentService.PaymentServiceType;
54
55
  id: string;
55
56
  }): Promise<factory.product.IAvailableChannel>;
57
+ searchPaymentServicesByProvider(params: Pick<factory.product.ISearchConditions, 'limit' | 'page' | 'sort' | 'project' | 'provider' | 'typeOf'>): Promise<IPaymentServiceByProvider[]>;
58
+ /**
59
+ * 決済サービスのプロバイダー検索
60
+ */
61
+ searchProviders(params: {
62
+ limit?: number;
63
+ page?: number;
64
+ project?: {
65
+ id?: {
66
+ $eq?: string;
67
+ };
68
+ };
69
+ id: string;
70
+ }): Promise<factory.service.paymentService.IProvider[]>;
56
71
  /**
57
72
  * プロダクトを保管する
58
73
  * 作成 or 更新
@@ -21,8 +21,10 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.MongoRepository = void 0;
24
+ const mongoose_1 = require("mongoose");
24
25
  const product_1 = require("./mongoose/schemas/product");
25
26
  const factory = require("../factory");
27
+ const settings_1 = require("../settings");
26
28
  /**
27
29
  * プロダクトリポジトリ
28
30
  */
@@ -32,7 +34,7 @@ class MongoRepository {
32
34
  }
33
35
  // tslint:disable-next-line:max-func-body-length
34
36
  static CREATE_MONGO_CONDITIONS(params) {
35
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
37
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
36
38
  // MongoDB検索条件
37
39
  const andConditions = [];
38
40
  const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
@@ -143,6 +145,11 @@ class MongoRepository {
143
145
  ]
144
146
  });
145
147
  }
148
+ // プロバイダー条件を追加(2023-06-21~)
149
+ const providerIdEq = (_x = (_w = params.provider) === null || _w === void 0 ? void 0 : _w.id) === null || _x === void 0 ? void 0 : _x.$eq;
150
+ if (typeof providerIdEq === 'string') {
151
+ andConditions.push({ 'provider.id': { $exists: true, $eq: providerIdEq } });
152
+ }
146
153
  return andConditions;
147
154
  }
148
155
  findById(conditions, projection) {
@@ -155,11 +162,31 @@ class MongoRepository {
155
162
  return doc.toObject();
156
163
  });
157
164
  }
158
- search(conditions, projection) {
165
+ search(conditions,
166
+ // projection?: { [key: string]: number }
167
+ inclusion, exclusion) {
159
168
  var _a;
160
169
  return __awaiter(this, void 0, void 0, function* () {
161
170
  const andConditions = MongoRepository.CREATE_MONGO_CONDITIONS(conditions);
162
- const query = this.productModel.find((andConditions.length > 0) ? { $and: andConditions } : {}, Object.assign({ __v: 0, createdAt: 0, updatedAt: 0 }, projection));
171
+ let projection = {};
172
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
173
+ inclusion.forEach((field) => {
174
+ projection[field] = 1;
175
+ });
176
+ }
177
+ else {
178
+ projection = {
179
+ __v: 0,
180
+ createdAt: 0,
181
+ updatedAt: 0
182
+ };
183
+ if (Array.isArray(exclusion) && exclusion.length > 0) {
184
+ exclusion.forEach((field) => {
185
+ projection[field] = 0;
186
+ });
187
+ }
188
+ }
189
+ const query = this.productModel.find((andConditions.length > 0) ? { $and: andConditions } : {}, projection);
163
190
  if (typeof conditions.limit === 'number' && conditions.limit > 0) {
164
191
  const page = (typeof conditions.page === 'number' && conditions.page > 0) ? conditions.page : 1;
165
192
  query.limit(conditions.limit)
@@ -170,7 +197,7 @@ class MongoRepository {
170
197
  if (((_a = conditions.sort) === null || _a === void 0 ? void 0 : _a.productID) !== undefined) {
171
198
  query.sort({ productID: conditions.sort.productID });
172
199
  }
173
- return query.setOptions({ maxTimeMS: 10000 })
200
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
174
201
  .exec()
175
202
  .then((docs) => docs.map((doc) => doc.toObject()));
176
203
  });
@@ -192,7 +219,7 @@ class MongoRepository {
192
219
  project: { id: { $eq: params.project.id } },
193
220
  typeOf: { $eq: params.typeOf },
194
221
  id: { $eq: params.id }
195
- });
222
+ }, [], []);
196
223
  const paymentServiceSetting = paymentServices.shift();
197
224
  if (paymentServiceSetting === undefined) {
198
225
  throw new factory.errors.NotFound('PaymentService');
@@ -204,6 +231,113 @@ class MongoRepository {
204
231
  return availableChannel;
205
232
  });
206
233
  }
234
+ searchPaymentServicesByProvider(params) {
235
+ var _a, _b, _c, _d, _e, _f;
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ const matchStages = [];
238
+ const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
239
+ if (typeof projectIdEq === 'string') {
240
+ matchStages.push({ $match: { 'project.id': { $eq: projectIdEq } } });
241
+ }
242
+ const typeOfEq = (_c = params.typeOf) === null || _c === void 0 ? void 0 : _c.$eq;
243
+ if (typeof typeOfEq === 'string') {
244
+ matchStages.push({ $match: { typeOf: { $eq: typeOfEq } } });
245
+ }
246
+ const providerIdEq = (_e = (_d = params.provider) === null || _d === void 0 ? void 0 : _d.id) === null || _e === void 0 ? void 0 : _e.$eq;
247
+ if (typeof providerIdEq === 'string') {
248
+ matchStages.push({ $match: { 'provider.id': { $exists: true, $eq: providerIdEq } } });
249
+ }
250
+ const aggregate = this.productModel.aggregate([
251
+ ...(typeof ((_f = params.sort) === null || _f === void 0 ? void 0 : _f.productID) === 'number')
252
+ ? [{ $sort: { productID: params.sort.productID } }]
253
+ : [],
254
+ {
255
+ $unwind: {
256
+ path: '$provider'
257
+ }
258
+ },
259
+ ...matchStages,
260
+ {
261
+ $project: {
262
+ _id: 0,
263
+ typeOf: '$typeOf',
264
+ productID: '$productID',
265
+ description: '$description',
266
+ name: '$name',
267
+ // provider: [ [Object] ],
268
+ additionalProperty: '$additionalProperty',
269
+ serviceType: '$serviceType',
270
+ id: { $toString: '$_id' },
271
+ // ↓セキュアな情報を隠蔽するように
272
+ provider: {
273
+ credentials: {
274
+ shopId: '$provider.credentials.shopId',
275
+ tokenizationCode: '$provider.credentials.tokenizationCode',
276
+ paymentUrl: {
277
+ expiresInSeconds: '$provider.credentials.paymentUrl.expiresInSeconds',
278
+ useCallback: '$provider.credentials.paymentUrl.useCallback',
279
+ useWebhook: '$provider.credentials.paymentUrl.useWebhook'
280
+ }
281
+ }
282
+ }
283
+ }
284
+ }
285
+ ]);
286
+ if (typeof params.limit === 'number' && params.limit > 0) {
287
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
288
+ aggregate.limit(params.limit * page)
289
+ .skip(params.limit * (page - 1));
290
+ }
291
+ return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
292
+ .exec();
293
+ });
294
+ }
295
+ /**
296
+ * 決済サービスのプロバイダー検索
297
+ */
298
+ searchProviders(params) {
299
+ var _a, _b;
300
+ return __awaiter(this, void 0, void 0, function* () {
301
+ const matchStages = [];
302
+ const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
303
+ if (typeof projectIdEq === 'string') {
304
+ matchStages.push({ $match: { 'project.id': { $eq: projectIdEq } } });
305
+ }
306
+ matchStages.push({ $match: { _id: { $eq: new mongoose_1.Types.ObjectId(params.id) } } });
307
+ const aggregate = this.productModel.aggregate([
308
+ {
309
+ $unwind: {
310
+ path: '$provider'
311
+ }
312
+ },
313
+ ...matchStages,
314
+ {
315
+ $project: {
316
+ _id: 0,
317
+ // ↓セキュアな情報を隠蔽するように
318
+ credentials: {
319
+ shopId: '$provider.credentials.shopId',
320
+ tokenizationCode: '$provider.credentials.tokenizationCode',
321
+ paymentUrl: {
322
+ expiresInSeconds: '$provider.credentials.paymentUrl.expiresInSeconds',
323
+ useCallback: '$provider.credentials.paymentUrl.useCallback',
324
+ useWebhook: '$provider.credentials.paymentUrl.useWebhook'
325
+ }
326
+ },
327
+ id: '$provider.id',
328
+ name: '$provider.name'
329
+ }
330
+ }
331
+ ]);
332
+ if (typeof params.limit === 'number' && params.limit > 0) {
333
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
334
+ aggregate.limit(params.limit * page)
335
+ .skip(params.limit * (page - 1));
336
+ }
337
+ return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
338
+ .exec();
339
+ });
340
+ }
207
341
  /**
208
342
  * プロダクトを保管する
209
343
  * 作成 or 更新
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = void 0;
13
13
  const project_1 = require("./mongoose/schemas/project");
14
14
  const factory = require("../factory");
15
+ const settings_1 = require("../settings");
15
16
  /**
16
17
  * プロジェクトリポジトリ
17
18
  */
@@ -89,7 +90,7 @@ class MongoRepository {
89
90
  if (((_a = conditions.sort) === null || _a === void 0 ? void 0 : _a._id) !== undefined) {
90
91
  query.sort({ _id: conditions.sort._id });
91
92
  }
92
- return query.setOptions({ maxTimeMS: 10000 })
93
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
93
94
  .exec()
94
95
  .then((docs) => docs.map((doc) => doc.toObject()));
95
96
  });
@@ -1,3 +1,4 @@
1
+ import { BulkWriteResult as BulkWriteOpResultObject } from 'mongodb';
1
2
  import { Connection, UpdateWriteOpResult } from 'mongoose';
2
3
  import * as factory from '../factory';
3
4
  export interface IUpdatePartiallyParams {
@@ -23,20 +24,35 @@ export declare class MongoRepository {
23
24
  /**
24
25
  * 予約検索
25
26
  */
26
- search<T extends factory.reservationType>(params: factory.reservation.ISearchConditions<T>, projection?: any): Promise<factory.reservation.IReservation<factory.reservationType.EventReservation>[]>;
27
+ search<T extends factory.reservationType>(params: factory.reservation.ISearchConditions<T>, projection?: {
28
+ [key: string]: 0 | 1;
29
+ }): Promise<factory.reservation.IReservation<factory.reservationType.EventReservation>[]>;
27
30
  findById<T extends factory.reservationType>(params: {
28
31
  id: string;
29
32
  inclusion?: string[];
30
33
  exclusion?: string[];
31
34
  }): Promise<factory.reservation.IReservation<T>>;
32
- /**
33
- * 予約確定
34
- */
35
35
  confirmByReservationNumber(params: {
36
36
  reservationNumber: string;
37
37
  previousReservationStatus: factory.reservationStatusType;
38
38
  underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
39
+ broker?: factory.reservation.IBroker<factory.reservationType>;
40
+ issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
39
41
  }): Promise<void>;
42
+ confirmByIdIfNotExist__(params: {
43
+ reservation: factory.assetTransaction.reserve.IObjectSubReservation;
44
+ reservationFor: factory.assetTransaction.reserve.IReservationFor;
45
+ underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
46
+ broker?: factory.reservation.IBroker<factory.reservationType>;
47
+ issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
48
+ }): Promise<void>;
49
+ confirmManyIfNotExist(params: {
50
+ subReservation: factory.assetTransaction.reserve.IObjectSubReservation[];
51
+ reservationFor: factory.assetTransaction.reserve.IReservationFor;
52
+ underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
53
+ broker?: factory.reservation.IBroker<factory.reservationType>;
54
+ issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
55
+ }): Promise<BulkWriteOpResultObject | void>;
40
56
  /**
41
57
  * 予約取消
42
58
  */
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = void 0;
13
13
  const reservation_1 = require("./mongoose/schemas/reservation");
14
14
  const factory = require("../factory");
15
+ const settings_1 = require("../settings");
15
16
  /**
16
17
  * 予約リポジトリ
17
18
  */
@@ -811,18 +812,6 @@ class MongoRepository {
811
812
  }
812
813
  return andConditions;
813
814
  }
814
- // public async distinct<T extends factory.reservationType>(
815
- // field: string,
816
- // params: factory.reservation.ISearchConditions<T>
817
- // ): Promise<any[]> {
818
- // const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
819
- // return this.reservationModel.distinct(
820
- // field,
821
- // (conditions.length > 0) ? { $and: conditions } : {}
822
- // )
823
- // .setOptions({ maxTimeMS: 10000 })
824
- // .exec();
825
- // }
826
815
  createMany(params) {
827
816
  return __awaiter(this, void 0, void 0, function* () {
828
817
  if (params.reservations.length > 0) {
@@ -849,7 +838,7 @@ class MongoRepository {
849
838
  return __awaiter(this, void 0, void 0, function* () {
850
839
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
851
840
  return this.reservationModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
852
- .setOptions({ maxTimeMS: 10000 })
841
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
853
842
  .exec();
854
843
  });
855
844
  }
@@ -877,7 +866,7 @@ class MongoRepository {
877
866
  if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.modifiedTime) !== undefined) {
878
867
  query.sort({ modifiedTime: params.sort.modifiedTime });
879
868
  }
880
- return query.setOptions({ maxTimeMS: 10000 })
869
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
881
870
  .exec()
882
871
  .then((docs) => docs.map((doc) => doc.toObject()));
883
872
  });
@@ -910,61 +899,53 @@ class MongoRepository {
910
899
  return doc.toObject();
911
900
  });
912
901
  }
913
- /**
914
- * 予約確定
915
- */
916
- // public async confirm<T extends factory.reservationType>(params: {
917
- // id: string;
918
- // previousReservationStatus: factory.reservationStatusType;
919
- // underName?: factory.reservation.IUnderName<T>;
920
- // }): Promise<factory.reservation.IReservation<T>> {
921
- // const conditions = {
922
- // _id: { $eq: String(params.id) },
923
- // reservationStatus: { $eq: params.previousReservationStatus }
924
- // };
925
- // // 更新属性をwhitelist化(2022-06-13~)
926
- // const update = {
927
- // // previousReservationStatusを保管(2023-01-19~)
928
- // previousReservationStatus: params.previousReservationStatus,
929
- // reservationStatus: factory.reservationStatusType.ReservationConfirmed,
930
- // modifiedTime: new Date(),
931
- // ...(params.underName !== undefined) ? { underName: params.underName } : undefined
932
- // };
933
- // const doc = await this.reservationModel.findOneAndUpdate(
934
- // conditions,
935
- // update,
936
- // { new: true }
937
- // )
938
- // .select({ __v: 0, createdAt: 0, updatedAt: 0 })
939
- // .exec();
940
- // // NotFoundであれば状態確認
941
- // if (doc === null) {
942
- // const reservation = await this.findById<T>({ id: String(params.id) });
943
- // if (reservation.reservationStatus === factory.reservationStatusType.ReservationConfirmed) {
944
- // // すでに確定済の場合
945
- // return reservation;
946
- // } else {
947
- // throw new factory.errors.Argument(
948
- // 'id',
949
- // `Reservation ${reservation.id} already changed -> ${reservation.reservationStatus}`
950
- // );
951
- // }
952
- // }
953
- // return doc.toObject();
954
- // }
955
902
  confirmByReservationNumber(params) {
903
+ var _a, _b;
956
904
  return __awaiter(this, void 0, void 0, function* () {
957
905
  const conditions = {
958
906
  reservationNumber: { $eq: String(params.reservationNumber) },
959
907
  reservationStatus: { $eq: params.previousReservationStatus }
960
908
  };
961
- const update = Object.assign({
909
+ const update = Object.assign(Object.assign(Object.assign({
962
910
  // previousReservationStatusを保管(2023-01-19~)
963
- previousReservationStatus: params.previousReservationStatus, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime: new Date() }, (params.underName !== undefined) ? { underName: params.underName } : undefined);
911
+ previousReservationStatus: params.previousReservationStatus, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime: new Date() }, (params.underName !== undefined) ? { underName: params.underName } : undefined), (typeof ((_a = params.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.broker } : undefined), (typeof ((_b = params.issuedThrough) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { issuedThrough: params.issuedThrough } : undefined);
964
912
  yield this.reservationModel.updateMany(conditions, update)
965
913
  .exec();
966
914
  });
967
915
  }
916
+ confirmByIdIfNotExist__(params) {
917
+ var _a, _b;
918
+ return __awaiter(this, void 0, void 0, function* () {
919
+ yield this.reservationModel.findOneAndUpdate({ _id: { $eq: params.reservation.id } }, {
920
+ $setOnInsert: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, params.reservation), { _id: params.reservation.id, reservationFor: params.reservationFor, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime: new Date() }), (params.underName !== undefined) ? { underName: params.underName } : undefined), (typeof ((_a = params.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.broker } : undefined), (typeof ((_b = params.issuedThrough) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { issuedThrough: params.issuedThrough } : undefined)
921
+ }, { upsert: true, new: true })
922
+ .select({ _id: 1 })
923
+ .exec();
924
+ });
925
+ }
926
+ confirmManyIfNotExist(params) {
927
+ return __awaiter(this, void 0, void 0, function* () {
928
+ const modifiedTime = new Date();
929
+ const bulkWriteOps = [];
930
+ if (Array.isArray(params.subReservation)) {
931
+ params.subReservation.forEach((subReservation) => {
932
+ var _a, _b;
933
+ bulkWriteOps.push({
934
+ updateOne: {
935
+ filter: { _id: { $eq: subReservation.id } },
936
+ update: {
937
+ $setOnInsert: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, subReservation), { _id: subReservation.id, reservationFor: params.reservationFor, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime }), (params.underName !== undefined) ? { underName: params.underName } : undefined), (typeof ((_a = params.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.broker } : undefined), (typeof ((_b = params.issuedThrough) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { issuedThrough: params.issuedThrough } : undefined)
938
+ },
939
+ upsert: true
940
+ }
941
+ });
942
+ });
943
+ }
944
+ if (bulkWriteOps.length > 0) {
945
+ return this.reservationModel.bulkWrite(bulkWriteOps, { ordered: false });
946
+ }
947
+ });
948
+ }
968
949
  /**
969
950
  * 予約取消
970
951
  */
@@ -1174,7 +1155,7 @@ class MongoRepository {
1174
1155
  }
1175
1156
  })
1176
1157
  .select({ _id: 1 })
1177
- .setOptions({ maxTimeMS: 10000 })
1158
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
1178
1159
  .exec()
1179
1160
  .then((docs) => docs.map((doc) => doc._id.toString()));
1180
1161
  });
@@ -17,6 +17,13 @@ export declare class MongoRepository {
17
17
  static CREATE_MONGO_CONDITIONS(params: factory.iam.IRoleSearchConditions): any[];
18
18
  count(params: factory.iam.IRoleSearchConditions): Promise<number>;
19
19
  search(params: factory.iam.IRoleSearchConditions): Promise<IRole[]>;
20
+ aggregatePermissions(params: {
21
+ roleName: {
22
+ $in: string[];
23
+ };
24
+ }): Promise<{
25
+ _id: string;
26
+ }[]>;
20
27
  findById(params: {
21
28
  id: string;
22
29
  }): Promise<IRole>;
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = exports.RoleType = void 0;
13
13
  const factory = require("../factory");
14
14
  const role_1 = require("./mongoose/schemas/role");
15
+ const settings_1 = require("../settings");
15
16
  var RoleType;
16
17
  (function (RoleType) {
17
18
  RoleType["OrganizationRole"] = "OrganizationRole";
@@ -67,7 +68,7 @@ class MongoRepository {
67
68
  return __awaiter(this, void 0, void 0, function* () {
68
69
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
69
70
  return this.roleModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
70
- .setOptions({ maxTimeMS: 10000 })
71
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
71
72
  .exec();
72
73
  });
73
74
  }
@@ -91,11 +92,47 @@ class MongoRepository {
91
92
  }
92
93
  // const explainResult = await (<any>query).explain();
93
94
  // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
94
- return query.setOptions({ maxTimeMS: 10000 })
95
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
95
96
  .exec()
96
97
  .then((docs) => docs.map((doc) => doc.toObject()));
97
98
  });
98
99
  }
100
+ aggregatePermissions(params) {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ const matchStages = [
103
+ { $match: { roleName: { $in: params.roleName.$in } } }
104
+ ];
105
+ const aggregate = this.roleModel.aggregate([
106
+ // ...(typeof params.sort?.productID === 'number')
107
+ // ? [{ $sort: { productID: params.sort.productID } }]
108
+ // : [],
109
+ ...matchStages,
110
+ {
111
+ $unwind: {
112
+ path: '$permissions'
113
+ }
114
+ },
115
+ {
116
+ $project: {
117
+ _id: 0,
118
+ permission: '$permissions'
119
+ }
120
+ },
121
+ {
122
+ $group: {
123
+ _id: '$permission'
124
+ }
125
+ }
126
+ ]);
127
+ // if (typeof params.limit === 'number' && params.limit > 0) {
128
+ // const page: number = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
129
+ // aggregate.limit(params.limit * page)
130
+ // .skip(params.limit * (page - 1));
131
+ // }
132
+ return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
133
+ .exec();
134
+ });
135
+ }
99
136
  findById(params) {
100
137
  return __awaiter(this, void 0, void 0, function* () {
101
138
  const doc = yield this.roleModel.findOne({
@@ -37,7 +37,7 @@ export declare class MongoRepository {
37
37
  */
38
38
  findById(conditions: {
39
39
  id: string;
40
- }, projection?: any): Promise<ISeller>;
40
+ }, inclusion: string[], exclusion: string[]): Promise<ISeller>;
41
41
  /**
42
42
  * 販売者を保管する
43
43
  */