@chevre/domain 23.2.0-alpha.61 → 23.2.0-alpha.63

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 (481) hide show
  1. package/lib/chevre/credentials/customSearch.js +2 -0
  2. package/lib/chevre/credentials/lineNotify.js +4 -0
  3. package/lib/chevre/credentials/sendGrid.js +2 -0
  4. package/lib/chevre/credentials.js +15 -30
  5. package/lib/chevre/emailMessageBuilder.js +225 -250
  6. package/lib/chevre/errorHandler.js +38 -59
  7. package/lib/chevre/eventEmitter/assetTransaction.js +0 -1
  8. package/lib/chevre/eventEmitter/task.js +0 -1
  9. package/lib/chevre/eventEmitter/transaction.js +0 -1
  10. package/lib/chevre/factory/event.js +69 -42
  11. package/lib/chevre/factory/transactionNumber.js +2 -2
  12. package/lib/chevre/index.js +15 -30
  13. package/lib/chevre/repo/acceptedOffer.js +177 -197
  14. package/lib/chevre/repo/acceptedPaymentMethod.js +131 -144
  15. package/lib/chevre/repo/account.js +194 -238
  16. package/lib/chevre/repo/accountTitle.js +9 -21
  17. package/lib/chevre/repo/accountTransaction.js +186 -193
  18. package/lib/chevre/repo/accountingReport.js +88 -107
  19. package/lib/chevre/repo/action.js +849 -883
  20. package/lib/chevre/repo/additionalProperty.js +64 -92
  21. package/lib/chevre/repo/advanceBookingRequirement.js +69 -91
  22. package/lib/chevre/repo/aggregateOffer.js +392 -430
  23. package/lib/chevre/repo/aggregateOrder.js +50 -62
  24. package/lib/chevre/repo/aggregateReservation.js +76 -89
  25. package/lib/chevre/repo/aggregation.js +42 -63
  26. package/lib/chevre/repo/assetTransaction.js +692 -729
  27. package/lib/chevre/repo/authorization.js +115 -134
  28. package/lib/chevre/repo/categoryCode.js +114 -147
  29. package/lib/chevre/repo/comment.js +73 -82
  30. package/lib/chevre/repo/concurrentLock.js +17 -29
  31. package/lib/chevre/repo/confirmationNumber.js +19 -35
  32. package/lib/chevre/repo/creativeWork.js +152 -180
  33. package/lib/chevre/repo/credentials.js +39 -51
  34. package/lib/chevre/repo/customer.js +64 -88
  35. package/lib/chevre/repo/customerType.js +52 -62
  36. package/lib/chevre/repo/emailMessage.js +51 -80
  37. package/lib/chevre/repo/event.js +640 -684
  38. package/lib/chevre/repo/eventOffer.js +122 -125
  39. package/lib/chevre/repo/eventSellerMakesOffer.js +64 -76
  40. package/lib/chevre/repo/eventSeries.js +207 -244
  41. package/lib/chevre/repo/identity.js +94 -107
  42. package/lib/chevre/repo/identityProvider.js +72 -96
  43. package/lib/chevre/repo/issuer.js +102 -135
  44. package/lib/chevre/repo/member.js +238 -259
  45. package/lib/chevre/repo/memberProgram.js +157 -177
  46. package/lib/chevre/repo/merchantReturnPolicy.js +61 -94
  47. package/lib/chevre/repo/message.js +122 -135
  48. package/lib/chevre/repo/mongoose/onIndexCreated.js +0 -1
  49. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +1 -1
  50. package/lib/chevre/repo/mongoose/schemas/account.js +1 -1
  51. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -1
  52. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  53. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -1
  54. package/lib/chevre/repo/mongoose/schemas/action.js +1 -1
  55. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +1 -1
  56. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -1
  57. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.js +1 -1
  58. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.js +1 -1
  59. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.js +1 -1
  60. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +1 -1
  61. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -1
  62. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -1
  63. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  64. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -1
  65. package/lib/chevre/repo/mongoose/schemas/civicStructure.js +1 -1
  66. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -1
  67. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -1
  68. package/lib/chevre/repo/mongoose/schemas/customerType.js +1 -1
  69. package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
  70. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +1 -1
  71. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +1 -1
  72. package/lib/chevre/repo/mongoose/schemas/identity.js +1 -1
  73. package/lib/chevre/repo/mongoose/schemas/identityProvider.js +1 -1
  74. package/lib/chevre/repo/mongoose/schemas/issuer.js +1 -1
  75. package/lib/chevre/repo/mongoose/schemas/member/global.js +1 -1
  76. package/lib/chevre/repo/mongoose/schemas/member.js +1 -1
  77. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -1
  78. package/lib/chevre/repo/mongoose/schemas/message.js +1 -1
  79. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.js +1 -1
  80. package/lib/chevre/repo/mongoose/schemas/note.js +1 -1
  81. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -1
  82. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +1 -1
  83. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +1 -1
  84. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  85. package/lib/chevre/repo/mongoose/schemas/paymentService.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.js +1 -1
  87. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +1 -1
  88. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +1 -1
  89. package/lib/chevre/repo/mongoose/schemas/place.js +1 -1
  90. package/lib/chevre/repo/mongoose/schemas/potentialAction.js +1 -1
  91. package/lib/chevre/repo/mongoose/schemas/product.js +1 -1
  92. package/lib/chevre/repo/mongoose/schemas/productModel.js +1 -1
  93. package/lib/chevre/repo/mongoose/schemas/productOffer.js +1 -1
  94. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  95. package/lib/chevre/repo/mongoose/schemas/reserveInterface.js +1 -1
  96. package/lib/chevre/repo/mongoose/schemas/role.js +1 -1
  97. package/lib/chevre/repo/mongoose/schemas/schedule.js +1 -1
  98. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -1
  99. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/service/availableHour.js +1 -1
  101. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -1
  102. package/lib/chevre/repo/mongoose/schemas/task.js +1 -2
  103. package/lib/chevre/repo/mongoose/schemas/ticket.js +1 -1
  104. package/lib/chevre/repo/mongoose/schemas/transaction.js +1 -1
  105. package/lib/chevre/repo/mongoose/schemas/transactionNumber.js +1 -1
  106. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -1
  107. package/lib/chevre/repo/mongoose/schemas/webSite.js +1 -1
  108. package/lib/chevre/repo/movieTicketType.js +67 -94
  109. package/lib/chevre/repo/note.js +143 -147
  110. package/lib/chevre/repo/noteAboutOrder.js +112 -113
  111. package/lib/chevre/repo/offer/unitPriceInCatalog.js +330 -314
  112. package/lib/chevre/repo/offerCatalog.js +302 -334
  113. package/lib/chevre/repo/offerCatalogItem.js +289 -317
  114. package/lib/chevre/repo/offerItemCondition.js +60 -85
  115. package/lib/chevre/repo/order.js +559 -607
  116. package/lib/chevre/repo/orderInTransaction.js +113 -136
  117. package/lib/chevre/repo/orderNumber.js +95 -112
  118. package/lib/chevre/repo/ownershipInfo.js +212 -240
  119. package/lib/chevre/repo/passport.js +93 -102
  120. package/lib/chevre/repo/paymentMethod/creditCard.js +151 -169
  121. package/lib/chevre/repo/paymentService.js +179 -200
  122. package/lib/chevre/repo/paymentServiceChannel.js +76 -100
  123. package/lib/chevre/repo/paymentServiceProvider.js +186 -201
  124. package/lib/chevre/repo/pendingReservation.js +272 -305
  125. package/lib/chevre/repo/permit.js +47 -42
  126. package/lib/chevre/repo/person.js +217 -256
  127. package/lib/chevre/repo/place/busStop.js +76 -106
  128. package/lib/chevre/repo/place/entranceGate.js +123 -128
  129. package/lib/chevre/repo/place/hasPOS.js +108 -120
  130. package/lib/chevre/repo/place/movieTheater.js +185 -220
  131. package/lib/chevre/repo/place/screeningRoom.js +339 -325
  132. package/lib/chevre/repo/place/seat.js +538 -481
  133. package/lib/chevre/repo/place/section.js +328 -296
  134. package/lib/chevre/repo/potentialAction.js +67 -87
  135. package/lib/chevre/repo/priceSpecification.js +102 -146
  136. package/lib/chevre/repo/product.js +203 -239
  137. package/lib/chevre/repo/productHasOfferCatalog.js +39 -50
  138. package/lib/chevre/repo/productModel.js +94 -127
  139. package/lib/chevre/repo/productOffer.js +119 -118
  140. package/lib/chevre/repo/project.js +123 -141
  141. package/lib/chevre/repo/projectMakesOffer.js +96 -108
  142. package/lib/chevre/repo/rateLimit/offer.js +43 -57
  143. package/lib/chevre/repo/reservation.js +369 -398
  144. package/lib/chevre/repo/reserveInterface.js +31 -42
  145. package/lib/chevre/repo/role.js +93 -112
  146. package/lib/chevre/repo/schedule.js +25 -36
  147. package/lib/chevre/repo/seller.js +114 -147
  148. package/lib/chevre/repo/sellerMakesOffer.js +95 -110
  149. package/lib/chevre/repo/sellerPaymentAccepted.js +92 -109
  150. package/lib/chevre/repo/sellerReturnPolicy.js +74 -97
  151. package/lib/chevre/repo/service/availableHour.js +27 -38
  152. package/lib/chevre/repo/serviceOutput.js +54 -67
  153. package/lib/chevre/repo/serviceOutputIdentifier.js +46 -58
  154. package/lib/chevre/repo/setting/jwt.js +40 -50
  155. package/lib/chevre/repo/setting.js +48 -48
  156. package/lib/chevre/repo/stockHolder.js +179 -199
  157. package/lib/chevre/repo/task.js +610 -619
  158. package/lib/chevre/repo/telemetry.js +1 -0
  159. package/lib/chevre/repo/ticket.js +52 -65
  160. package/lib/chevre/repo/transaction.js +754 -815
  161. package/lib/chevre/repo/transactionNumber.js +67 -80
  162. package/lib/chevre/repo/transactionNumberCounter.js +68 -79
  163. package/lib/chevre/repo/transactionProcess.js +36 -47
  164. package/lib/chevre/repo/trip.js +144 -164
  165. package/lib/chevre/repo/webSite.js +90 -106
  166. package/lib/chevre/repository.js +455 -647
  167. package/lib/chevre/service/account.js +9 -21
  168. package/lib/chevre/service/accountTransaction/deposit.js +16 -17
  169. package/lib/chevre/service/accountTransaction/transfer.js +18 -22
  170. package/lib/chevre/service/accountTransaction/withdraw.js +16 -17
  171. package/lib/chevre/service/accountTransaction.js +4 -16
  172. package/lib/chevre/service/aggregation/event/aggregateOffers.js +63 -60
  173. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +52 -55
  174. package/lib/chevre/service/aggregation/event/findEventOffers.js +7 -17
  175. package/lib/chevre/service/aggregation/event/importFromCOA.js +4 -14
  176. package/lib/chevre/service/aggregation/project.js +10 -19
  177. package/lib/chevre/service/aggregation/system.js +182 -99
  178. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +31 -17
  179. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +17 -24
  180. package/lib/chevre/service/assetTransaction/cancelReservation/startAndConfirm.js +17 -15
  181. package/lib/chevre/service/assetTransaction/cancelReservation.js +7 -18
  182. package/lib/chevre/service/assetTransaction/cancelReservationCOA/factory.js +11 -4
  183. package/lib/chevre/service/assetTransaction/cancelReservationCOA.js +4 -13
  184. package/lib/chevre/service/assetTransaction/fixInformAction.js +6 -16
  185. package/lib/chevre/service/assetTransaction/moneyTransfer/potentialActions.js +13 -25
  186. package/lib/chevre/service/assetTransaction/moneyTransfer.js +101 -90
  187. package/lib/chevre/service/assetTransaction/pay/cancel.js +3 -12
  188. package/lib/chevre/service/assetTransaction/pay/check.js +4 -14
  189. package/lib/chevre/service/assetTransaction/pay/confirm.js +18 -21
  190. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +4 -14
  191. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +33 -34
  192. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +7 -17
  193. package/lib/chevre/service/assetTransaction/pay/start/account/validation.js +6 -16
  194. package/lib/chevre/service/assetTransaction/pay/start/factory.js +64 -37
  195. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +7 -19
  196. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +6 -16
  197. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +7 -17
  198. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +9 -15
  199. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +3 -12
  200. package/lib/chevre/service/assetTransaction/pay/start.js +29 -35
  201. package/lib/chevre/service/assetTransaction/refund/factory.js +36 -16
  202. package/lib/chevre/service/assetTransaction/refund/potentialActions.js +12 -21
  203. package/lib/chevre/service/assetTransaction/refund.js +35 -41
  204. package/lib/chevre/service/assetTransaction/registerService/factory.js +65 -28
  205. package/lib/chevre/service/assetTransaction/registerService/potentialActions.js +50 -43
  206. package/lib/chevre/service/assetTransaction/registerService.js +45 -56
  207. package/lib/chevre/service/assetTransaction/reserve/cancel.js +5 -14
  208. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +15 -4
  209. package/lib/chevre/service/assetTransaction/reserve/confirm.js +21 -26
  210. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +3 -13
  211. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +99 -83
  212. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +17 -12
  213. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +108 -72
  214. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +69 -30
  215. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.js +29 -20
  216. package/lib/chevre/service/assetTransaction/reserve/start.js +91 -108
  217. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +5 -15
  218. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +41 -54
  219. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +42 -56
  220. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +7 -19
  221. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +15 -27
  222. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +24 -24
  223. package/lib/chevre/service/assetTransaction/reserveCOA/factory.js +12 -4
  224. package/lib/chevre/service/assetTransaction/reserveCOA.js +4 -13
  225. package/lib/chevre/service/assetTransaction.js +17 -21
  226. package/lib/chevre/service/delivery/factory.js +3 -4
  227. package/lib/chevre/service/delivery/product/factory.js +16 -7
  228. package/lib/chevre/service/delivery/reservation/factory.js +14 -3
  229. package/lib/chevre/service/delivery.js +48 -52
  230. package/lib/chevre/service/event/processUpdateMovieTheater.js +21 -26
  231. package/lib/chevre/service/event/saveScreeningEventSeries.js +56 -41
  232. package/lib/chevre/service/event/saveScreeningEvents.js +14 -29
  233. package/lib/chevre/service/event.js +34 -30
  234. package/lib/chevre/service/iam.js +8 -17
  235. package/lib/chevre/service/moneyTransfer.js +128 -112
  236. package/lib/chevre/service/notification/factory.js +11 -10
  237. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +11 -15
  238. package/lib/chevre/service/notification/notifyByEmail.js +7 -19
  239. package/lib/chevre/service/notification/sendEmailMessage.js +23 -26
  240. package/lib/chevre/service/notification/triggerWebhook.js +58 -56
  241. package/lib/chevre/service/offer/any.js +6 -15
  242. package/lib/chevre/service/offer/event/authorize/factory.js +139 -63
  243. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +8 -19
  244. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +43 -27
  245. package/lib/chevre/service/offer/event/authorize.js +114 -71
  246. package/lib/chevre/service/offer/event/checkAvailability.js +5 -15
  247. package/lib/chevre/service/offer/event/importFromCOA/factory.js +9 -3
  248. package/lib/chevre/service/offer/event/importFromCOA.js +13 -19
  249. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +38 -39
  250. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +26 -41
  251. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +11 -22
  252. package/lib/chevre/service/offer/event/searchOfferCatalogItemAvailability.js +13 -26
  253. package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +15 -23
  254. package/lib/chevre/service/offer/event/searchOffersByIds.js +24 -39
  255. package/lib/chevre/service/offer/event/searchPriceSpecs4event.js +5 -14
  256. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +4 -13
  257. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +6 -15
  258. package/lib/chevre/service/offer/event/voidTransaction.js +35 -41
  259. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +14 -20
  260. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/authorize.js +52 -42
  261. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/factory.js +5 -1
  262. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +34 -37
  263. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +45 -26
  264. package/lib/chevre/service/offer/eventServiceByCOA/authorize/validateAcceptedOffers.js +67 -62
  265. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +16 -27
  266. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +8 -18
  267. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +42 -43
  268. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +22 -25
  269. package/lib/chevre/service/offer/factory.js +18 -8
  270. package/lib/chevre/service/offer/moneyTransfer/authorize.js +31 -36
  271. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +9 -18
  272. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +10 -19
  273. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +14 -24
  274. package/lib/chevre/service/offer/onEventChanged.js +69 -65
  275. package/lib/chevre/service/offer/product/factory.js +54 -32
  276. package/lib/chevre/service/offer/product/searchProductOffers.js +30 -24
  277. package/lib/chevre/service/offer/product.js +106 -82
  278. package/lib/chevre/service/offer.js +48 -45
  279. package/lib/chevre/service/order/confirmPayTransaction.js +28 -27
  280. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +54 -41
  281. package/lib/chevre/service/order/deleteOrder.js +28 -36
  282. package/lib/chevre/service/order/findPlaceOrderTransaction.js +3 -12
  283. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +64 -70
  284. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +1 -2
  285. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +3 -12
  286. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +11 -6
  287. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +5 -14
  288. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +22 -9
  289. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +5 -14
  290. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +23 -26
  291. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +13 -19
  292. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +5 -14
  293. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +24 -14
  294. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +23 -32
  295. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +8 -18
  296. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +10 -9
  297. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +23 -28
  298. package/lib/chevre/service/order/onOrderUpdated/factory.js +3 -5
  299. package/lib/chevre/service/order/onOrderUpdated.js +13 -15
  300. package/lib/chevre/service/order/payOrder.js +3 -12
  301. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +9 -20
  302. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +31 -15
  303. package/lib/chevre/service/order/placeOrder/factory.js +35 -22
  304. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -12
  305. package/lib/chevre/service/order/placeOrder.js +12 -23
  306. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +10 -18
  307. package/lib/chevre/service/order/returnOrder.js +27 -30
  308. package/lib/chevre/service/order/sendOrder.js +37 -37
  309. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +19 -25
  310. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +24 -39
  311. package/lib/chevre/service/payment/any/factory.js +106 -50
  312. package/lib/chevre/service/payment/any/fixOrderAsNeeded.js +4 -13
  313. package/lib/chevre/service/payment/any/onPayActionCompleted.js +13 -18
  314. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +34 -37
  315. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +18 -24
  316. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +16 -16
  317. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +15 -21
  318. package/lib/chevre/service/payment/any/person2username.js +32 -45
  319. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +8 -18
  320. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +5 -17
  321. package/lib/chevre/service/payment/any.js +181 -142
  322. package/lib/chevre/service/payment/creditCard/authorize/handleAuthorizeError.js +2 -2
  323. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +44 -25
  324. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +6 -15
  325. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3dsResult2recipe.js +5 -1
  326. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCardResult2recipe.js +10 -2
  327. package/lib/chevre/service/payment/creditCard/authorize.js +20 -22
  328. package/lib/chevre/service/payment/creditCard/factory.js +22 -4
  329. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +8 -18
  330. package/lib/chevre/service/payment/creditCard/payCreditCard.js +31 -36
  331. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +40 -51
  332. package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +33 -45
  333. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -26
  334. package/lib/chevre/service/payment/faceToFace.js +14 -23
  335. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +44 -25
  336. package/lib/chevre/service/payment/factory.js +50 -24
  337. package/lib/chevre/service/payment/movieTicket/authorize.js +35 -30
  338. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +22 -25
  339. package/lib/chevre/service/payment/movieTicket/factory.js +33 -10
  340. package/lib/chevre/service/payment/movieTicket/getCredentials.js +5 -15
  341. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +29 -40
  342. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +8 -18
  343. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +60 -60
  344. package/lib/chevre/service/payment/movieTicket/validation.js +41 -37
  345. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +8 -18
  346. package/lib/chevre/service/payment/paymentCard.js +87 -104
  347. package/lib/chevre/service/permit.js +36 -35
  348. package/lib/chevre/service/product.js +23 -28
  349. package/lib/chevre/service/project.js +22 -31
  350. package/lib/chevre/service/report/ownershipInfo.js +3 -4
  351. package/lib/chevre/service/report/telemetry.js +51 -70
  352. package/lib/chevre/service/reserve/cancelReservation.js +92 -93
  353. package/lib/chevre/service/reserve/checkInReservation.js +24 -29
  354. package/lib/chevre/service/reserve/confirmReservation.js +33 -39
  355. package/lib/chevre/service/reserve/factory.js +42 -20
  356. package/lib/chevre/service/reserve/findByCode.js +13 -18
  357. package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +18 -24
  358. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +17 -25
  359. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +38 -30
  360. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +45 -37
  361. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +37 -33
  362. package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +17 -23
  363. package/lib/chevre/service/reserve/searchByOrder.js +10 -20
  364. package/lib/chevre/service/reserve/useReservation.js +47 -34
  365. package/lib/chevre/service/reserve/verifyToken4reservation.js +7 -14
  366. package/lib/chevre/service/reserveCOA/cancelReservation.js +7 -17
  367. package/lib/chevre/service/reserveCOA/factory.js +5 -1
  368. package/lib/chevre/service/task/acceptCOAOffer.js +20 -25
  369. package/lib/chevre/service/task/aggregateOffers.js +3 -12
  370. package/lib/chevre/service/task/aggregateOnSystem.js +4 -14
  371. package/lib/chevre/service/task/aggregateScreeningEvent.js +3 -12
  372. package/lib/chevre/service/task/authorizePayment.js +9 -15
  373. package/lib/chevre/service/task/cancelMoneyTransfer.js +3 -12
  374. package/lib/chevre/service/task/cancelPendingReservation.js +10 -20
  375. package/lib/chevre/service/task/cancelReservation.js +3 -12
  376. package/lib/chevre/service/task/checkMovieTicket.js +16 -19
  377. package/lib/chevre/service/task/checkResource.js +7 -16
  378. package/lib/chevre/service/task/confirmMoneyTransfer.js +3 -12
  379. package/lib/chevre/service/task/confirmPayTransaction.js +6 -12
  380. package/lib/chevre/service/task/confirmRegisterService.js +3 -12
  381. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +24 -31
  382. package/lib/chevre/service/task/confirmReserveTransaction.js +48 -45
  383. package/lib/chevre/service/task/createAccountingReport.js +14 -20
  384. package/lib/chevre/service/task/deletePerson.js +48 -60
  385. package/lib/chevre/service/task/deleteTransaction.js +3 -12
  386. package/lib/chevre/service/task/givePointAward.js +3 -12
  387. package/lib/chevre/service/task/handleNotification.js +4 -14
  388. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +6 -16
  389. package/lib/chevre/service/task/importEventsFromCOA.js +6 -16
  390. package/lib/chevre/service/task/importOffersFromCOA.js +8 -18
  391. package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -12
  392. package/lib/chevre/service/task/moneyTransfer.js +3 -12
  393. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +3 -12
  394. package/lib/chevre/service/task/onAuthorizationCreated.js +11 -19
  395. package/lib/chevre/service/task/onEventChanged.js +3 -12
  396. package/lib/chevre/service/task/onOrderPaymentCompleted.js +3 -12
  397. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +7 -16
  398. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +7 -16
  399. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +8 -17
  400. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +10 -19
  401. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +8 -17
  402. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +6 -15
  403. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +14 -24
  404. package/lib/chevre/service/task/onResourceDeleted.js +17 -27
  405. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +9 -21
  406. package/lib/chevre/service/task/onResourceUpdated/onCategoryCodeUpdated.js +3 -12
  407. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +11 -23
  408. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +13 -25
  409. package/lib/chevre/service/task/onResourceUpdated/syncCategoryCode.js +9 -15
  410. package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +21 -27
  411. package/lib/chevre/service/task/onResourceUpdated.js +113 -158
  412. package/lib/chevre/service/task/pay.js +8 -16
  413. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.js +4 -14
  414. package/lib/chevre/service/task/payment/payByTask.js +49 -38
  415. package/lib/chevre/service/task/payment/refundByTask.js +7 -17
  416. package/lib/chevre/service/task/payment/voidPaymentByTask.js +6 -15
  417. package/lib/chevre/service/task/placeOrder.js +6 -12
  418. package/lib/chevre/service/task/publishPaymentUrl.js +9 -14
  419. package/lib/chevre/service/task/refund.js +8 -16
  420. package/lib/chevre/service/task/registerService.js +3 -12
  421. package/lib/chevre/service/task/reserve.js +3 -12
  422. package/lib/chevre/service/task/returnMoneyTransfer.js +3 -12
  423. package/lib/chevre/service/task/returnOrder.js +6 -12
  424. package/lib/chevre/service/task/returnPayTransaction.js +54 -49
  425. package/lib/chevre/service/task/returnPointAward.js +3 -12
  426. package/lib/chevre/service/task/returnReserveTransaction.js +29 -30
  427. package/lib/chevre/service/task/sendEmailMessage.js +6 -13
  428. package/lib/chevre/service/task/sendOrder.js +12 -15
  429. package/lib/chevre/service/task/syncResourcesFromCOA.js +39 -45
  430. package/lib/chevre/service/task/triggerWebhook.js +6 -12
  431. package/lib/chevre/service/task/useReservation.js +11 -14
  432. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +3 -12
  433. package/lib/chevre/service/task/voidPayTransaction.js +7 -12
  434. package/lib/chevre/service/task/voidPayment.js +3 -12
  435. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -12
  436. package/lib/chevre/service/task/voidReserveTransaction.js +10 -16
  437. package/lib/chevre/service/task.js +16 -26
  438. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +9 -20
  439. package/lib/chevre/service/taskHandler/onOperationFailed.js +20 -17
  440. package/lib/chevre/service/taskHandler.js +19 -22
  441. package/lib/chevre/service/transaction/deleteTransaction.js +104 -88
  442. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +15 -9
  443. package/lib/chevre/service/transaction/moneyTransfer/factory.js +13 -4
  444. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +12 -24
  445. package/lib/chevre/service/transaction/moneyTransfer.js +119 -98
  446. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +49 -51
  447. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +14 -25
  448. package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +4 -14
  449. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +3 -4
  450. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.js +3 -6
  451. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  452. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +30 -47
  453. package/lib/chevre/service/transaction/placeOrder/confirm.js +75 -59
  454. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +31 -15
  455. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +6 -15
  456. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +6 -15
  457. package/lib/chevre/service/transaction/placeOrder/publishOrderNumberIfNotExist.js +7 -16
  458. package/lib/chevre/service/transaction/placeOrder/start/factory.js +27 -7
  459. package/lib/chevre/service/transaction/placeOrder/start/validateStartRequest.js +53 -60
  460. package/lib/chevre/service/transaction/placeOrder/start.js +14 -18
  461. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +13 -7
  462. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +176 -190
  463. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +75 -89
  464. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +40 -48
  465. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +52 -56
  466. package/lib/chevre/service/transaction/returnOrder/preStart/findApplicableReturnPolicy.js +100 -104
  467. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +60 -80
  468. package/lib/chevre/service/transaction/returnOrder/preStart.js +42 -47
  469. package/lib/chevre/service/transaction/returnOrder.js +32 -37
  470. package/lib/chevre/service/transaction.js +75 -46
  471. package/lib/chevre/service/validation/validateEvent.js +2 -11
  472. package/lib/chevre/service/validation/validateOrder.js +7 -18
  473. package/lib/chevre/service.js +85 -131
  474. package/lib/chevre/settings/aggregation.js +4 -0
  475. package/lib/chevre/settings.js +7 -1
  476. package/lib/index.js +0 -1
  477. package/package.json +6 -11
  478. package/example/src/chevre/addEventBySchedule.ts +0 -46
  479. package/example/src/idaas/auth0/adminApplications.ts +0 -183
  480. package/example/src/idaas/auth0/getToken.ts +0 -55
  481. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +0 -84
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.PendingReservationRepo = void 0;
13
4
  const createDebug = require("debug");
@@ -20,45 +11,45 @@ const debug = createDebug('chevre-domain:repo:pendingReservation');
20
11
  * 保留予約リポジトリ
21
12
  */
22
13
  class PendingReservationRepo {
14
+ // private readonly aggregateReservationModel: IModel;
15
+ pendingReservationModel;
23
16
  constructor(connection) {
24
17
  // this.aggregateReservationModel = connection.model(modelName, createSchema());
25
18
  this.pendingReservationModel = connection.model(pendingReservation_1.modelName, (0, pendingReservation_1.createSchema)());
26
19
  }
27
20
  static CREATE_FILTER_QUERY(params) {
28
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
29
21
  const filterQueries = [
30
22
  // { numSeats: { $gte: 1 } }
31
23
  ];
32
- const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
24
+ const projectIdEq = params.project?.id?.$eq;
33
25
  if (typeof projectIdEq === 'string') {
34
26
  filterQueries.push({ 'project.id': { $eq: projectIdEq } });
35
27
  }
36
- const providerIdEq = (_d = (_c = params.provider) === null || _c === void 0 ? void 0 : _c.id) === null || _d === void 0 ? void 0 : _d.$eq;
28
+ const providerIdEq = params.provider?.id?.$eq;
37
29
  if (typeof providerIdEq === 'string') {
38
30
  filterQueries.push({ 'provider.id': { $eq: providerIdEq } });
39
31
  }
40
- const reservationForIdEq = (_f = (_e = params.reservationFor) === null || _e === void 0 ? void 0 : _e.id) === null || _f === void 0 ? void 0 : _f.$eq;
32
+ const reservationForIdEq = params.reservationFor?.id?.$eq;
41
33
  if (typeof reservationForIdEq === 'string') {
42
34
  filterQueries.push({ 'reservationFor.id': { $eq: reservationForIdEq } });
43
35
  }
44
- const reservationNumberEq = (_g = params.reservationNumber) === null || _g === void 0 ? void 0 : _g.$eq;
36
+ const reservationNumberEq = params.reservationNumber?.$eq;
45
37
  if (typeof reservationNumberEq === 'string') {
46
38
  filterQueries.push({ reservationNumber: { $eq: reservationNumberEq } });
47
39
  }
48
- const subReservationIdentifierEq = (_j = (_h = params.subReservation) === null || _h === void 0 ? void 0 : _h.identifier) === null || _j === void 0 ? void 0 : _j.$eq;
40
+ const subReservationIdentifierEq = params.subReservation?.identifier?.$eq;
49
41
  if (typeof subReservationIdentifierEq === 'string') {
50
42
  filterQueries.push({ 'subReservation.identifier': { $eq: subReservationIdentifierEq } });
51
43
  }
52
44
  return filterQueries;
53
45
  }
54
46
  static offer2identifier(params, hasTicketedSeat) {
55
- var _a, _b;
56
47
  if (hasTicketedSeat) {
57
48
  return `${params.seatSection}:${params.seatNumber}`;
58
49
  }
59
50
  else {
60
51
  // 予約IDをfieldにする場合
61
- const serviceOutputId = (_b = (_a = params.itemOffered) === null || _a === void 0 ? void 0 : _a.serviceOutput) === null || _b === void 0 ? void 0 : _b.id;
52
+ const serviceOutputId = params.itemOffered?.serviceOutput?.id;
62
53
  if (typeof serviceOutputId === 'string' && serviceOutputId !== '') {
63
54
  return serviceOutputId;
64
55
  }
@@ -141,57 +132,51 @@ class PendingReservationRepo {
141
132
  // throw error;
142
133
  // }
143
134
  // }
144
- lockIfNotLimitExceeded(lockKey, maximumReservationCount) {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- const { eventId } = lockKey;
147
- const reservationPackage = PendingReservationRepo.lockKey2reservationPackage(lockKey);
148
- // lock前でもcapacity確認
149
- // dateCreated < bookingTimeの集計
150
- const currentReservationCountBeforeLock = yield this.aggregateNumSeats({
135
+ async lockIfNotLimitExceeded(lockKey, maximumReservationCount) {
136
+ const { eventId } = lockKey;
137
+ const reservationPackage = PendingReservationRepo.lockKey2reservationPackage(lockKey);
138
+ // lock前でもcapacity確認
139
+ // dateCreated < bookingTimeの集計
140
+ const currentReservationCountBeforeLock = await this.aggregateNumSeats({
141
+ bookingTime: { $lte: reservationPackage.bookingTime },
142
+ dateCreated: { $lt: reservationPackage.bookingTime },
143
+ reservationFor: { id: eventId },
144
+ limit: maximumReservationCount
145
+ });
146
+ const remainingAttendeeCapacity = maximumReservationCount - currentReservationCountBeforeLock;
147
+ if (remainingAttendeeCapacity <= 0) {
148
+ throw new factory.errors.Argument('Event', 'maximumAttendeeCapacity exceeded');
149
+ }
150
+ await this.createReservationPackageIfPossible(reservationPackage);
151
+ try {
152
+ // dateCreated >= bookingTimeの集計
153
+ const reservationCountAfterAggregate = await this.aggregateNumSeats({
151
154
  bookingTime: { $lte: reservationPackage.bookingTime },
152
- dateCreated: { $lt: reservationPackage.bookingTime },
155
+ dateCreated: { $gte: reservationPackage.bookingTime },
153
156
  reservationFor: { id: eventId },
154
- limit: maximumReservationCount
157
+ limit: remainingAttendeeCapacity
155
158
  });
156
- const remainingAttendeeCapacity = maximumReservationCount - currentReservationCountBeforeLock;
157
- if (remainingAttendeeCapacity <= 0) {
159
+ // console.log('reservationCountAfterAggregate:', reservationCountAfterAggregate, remainingAttendeeCapacity);
160
+ if (reservationCountAfterAggregate > remainingAttendeeCapacity) {
158
161
  throw new factory.errors.Argument('Event', 'maximumAttendeeCapacity exceeded');
159
162
  }
160
- yield this.createReservationPackageIfPossible(reservationPackage);
161
- try {
162
- // dateCreated >= bookingTimeの集計
163
- const reservationCountAfterAggregate = yield this.aggregateNumSeats({
164
- bookingTime: { $lte: reservationPackage.bookingTime },
165
- dateCreated: { $gte: reservationPackage.bookingTime },
166
- reservationFor: { id: eventId },
167
- limit: remainingAttendeeCapacity
168
- });
169
- // console.log('reservationCountAfterAggregate:', reservationCountAfterAggregate, remainingAttendeeCapacity);
170
- if (reservationCountAfterAggregate > remainingAttendeeCapacity) {
171
- throw new factory.errors.Argument('Event', 'maximumAttendeeCapacity exceeded');
172
- }
173
- }
174
- catch (error) {
175
- // 最大数超過であればreservationPackageを削除
176
- yield this.deleteReservationPackage(reservationPackage);
177
- throw error;
178
- }
179
- });
163
+ }
164
+ catch (error) {
165
+ // 最大数超過であればreservationPackageを削除
166
+ await this.deleteReservationPackage(reservationPackage);
167
+ throw error;
168
+ }
180
169
  }
181
- lock(lockKey) {
182
- return __awaiter(this, void 0, void 0, function* () {
183
- const reservationPackage = PendingReservationRepo.lockKey2reservationPackage(lockKey);
184
- yield this.createReservationPackageIfPossible(reservationPackage);
185
- });
170
+ async lock(lockKey) {
171
+ const reservationPackage = PendingReservationRepo.lockKey2reservationPackage(lockKey);
172
+ await this.createReservationPackageIfPossible(reservationPackage);
186
173
  }
187
174
  // public async unlock(params: IUnlockKey): Promise<void> {
188
175
  // await this.decreaseReservationCount(params);
189
176
  // await this.deleteReservationIfExists(params);
190
177
  // }
191
- unlock(params) {
192
- return __awaiter(this, void 0, void 0, function* () {
193
- yield this.deleteReservationIfExists(params);
194
- });
178
+ async unlock(params) {
179
+ await this.deleteReservationIfExists(params);
195
180
  }
196
181
  // public async countUnavailableOffers(params: {
197
182
  // event: {
@@ -216,74 +201,66 @@ class PendingReservationRepo {
216
201
  /**
217
202
  * 現時点での保留予約数を集計する
218
203
  */
219
- countUnavailableOffers(params) {
220
- return __awaiter(this, void 0, void 0, function* () {
221
- const { event } = params;
222
- return this.aggregateNumSeats({
223
- bookingTime: { $lte: new Date() }, // 指定有無での性能は対して変わらないか(2025-04-25)
224
- reservationFor: { id: event.id }
225
- });
204
+ async countUnavailableOffers(params) {
205
+ const { event } = params;
206
+ return this.aggregateNumSeats({
207
+ bookingTime: { $lte: new Date() }, // 指定有無での性能は対して変わらないか(2025-04-25)
208
+ reservationFor: { id: event.id }
226
209
  });
227
210
  }
228
- getHolder(params) {
229
- return __awaiter(this, void 0, void 0, function* () {
230
- const { eventId, offer, hasTicketedSeat } = params;
231
- const reservationIdentifier = PendingReservationRepo.offer2identifier(offer, hasTicketedSeat);
232
- const doc = yield this.pendingReservationModel.findOne({
233
- 'reservationFor.id': { $eq: eventId },
234
- 'subReservation.identifier': { $exists: true, $eq: reservationIdentifier }
235
- }, { _id: 0, reservationNumber: 1 })
236
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
237
- .lean()
238
- .exec();
239
- return (doc !== null) ? doc.reservationNumber : undefined;
240
- });
211
+ async getHolder(params) {
212
+ const { eventId, offer, hasTicketedSeat } = params;
213
+ const reservationIdentifier = PendingReservationRepo.offer2identifier(offer, hasTicketedSeat);
214
+ const doc = await this.pendingReservationModel.findOne({
215
+ 'reservationFor.id': { $eq: eventId },
216
+ 'subReservation.identifier': { $exists: true, $eq: reservationIdentifier }
217
+ }, { _id: 0, reservationNumber: 1 })
218
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
219
+ .lean()
220
+ .exec();
221
+ return (doc !== null) ? doc.reservationNumber : undefined;
241
222
  }
242
- searchHolders(params) {
243
- return __awaiter(this, void 0, void 0, function* () {
244
- const { eventId, offers, hasTicketedSeat } = params;
245
- const reservationIdentifiers = offers.map((offer) => PendingReservationRepo.offer2identifier(offer, hasTicketedSeat));
246
- const aggregate = this.pendingReservationModel.aggregate([
247
- // unwind,matchの順序
248
- // unwind->matchでは遅い?
249
- // match->unwind->matchにする
250
- {
251
- $match: {
252
- 'reservationFor.id': { $eq: eventId },
253
- 'subReservation.identifier': { $exists: true, $in: reservationIdentifiers }
254
- }
255
- },
256
- {
257
- $unwind: {
258
- path: '$subReservation'
259
- }
260
- },
261
- {
262
- $match: {
263
- // 'subReservation.identifier': { $exists: true, $in: reservationIdentifiers }
264
- 'subReservation.identifier': { $in: reservationIdentifiers } // $exists不要か?
265
- }
266
- }, // unwind後にもmatchがないと、reservationIdentifiers以外のsubReservationもprojectされる
267
- {
268
- $project: {
269
- _id: 0,
270
- // reservationNumber: '$reservationNumber',
271
- identifier: '$subReservation.identifier'
272
- }
223
+ async searchHolders(params) {
224
+ const { eventId, offers, hasTicketedSeat } = params;
225
+ const reservationIdentifiers = offers.map((offer) => PendingReservationRepo.offer2identifier(offer, hasTicketedSeat));
226
+ const aggregate = this.pendingReservationModel.aggregate([
227
+ // unwind,matchの順序
228
+ // unwind->matchでは遅い?
229
+ // match->unwind->matchにする
230
+ {
231
+ $match: {
232
+ 'reservationFor.id': { $eq: eventId },
233
+ 'subReservation.identifier': { $exists: true, $in: reservationIdentifiers }
273
234
  }
274
- ]);
275
- const docs = yield aggregate
276
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
277
- .exec();
278
- debug('searchHolders: aggregated.', docs, docs.length, 'docs');
279
- // reservationNumberを正確に返す必要はなく、存在しているかどうかだけ分かればよい(stringを返せばよい)
280
- return reservationIdentifiers.map((reservationIdentifier) => {
281
- const doc = docs.find(({ identifier }) => identifier === reservationIdentifier);
282
- // tslint:disable-next-line:no-null-keyword
283
- // return (doc !== undefined) ? doc.reservationNumber : null;
284
- // tslint:disable-next-line:no-null-keyword
285
- return (doc !== undefined) ? doc.identifier : null;
286
- });
235
+ },
236
+ {
237
+ $unwind: {
238
+ path: '$subReservation'
239
+ }
240
+ },
241
+ {
242
+ $match: {
243
+ // 'subReservation.identifier': { $exists: true, $in: reservationIdentifiers }
244
+ 'subReservation.identifier': { $in: reservationIdentifiers } // $exists不要か?
245
+ }
246
+ }, // unwind後にもmatchがないと、reservationIdentifiers以外のsubReservationもprojectされる
247
+ {
248
+ $project: {
249
+ _id: 0,
250
+ // reservationNumber: '$reservationNumber',
251
+ identifier: '$subReservation.identifier'
252
+ }
253
+ }
254
+ ]);
255
+ const docs = await aggregate
256
+ .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
257
+ .exec();
258
+ debug('searchHolders: aggregated.', docs, docs.length, 'docs');
259
+ // reservationNumberを正確に返す必要はなく、存在しているかどうかだけ分かればよい(stringを返せばよい)
260
+ return reservationIdentifiers.map((reservationIdentifier) => {
261
+ const doc = docs.find(({ identifier }) => identifier === reservationIdentifier);
262
+ // return (doc !== undefined) ? doc.reservationNumber : null;
263
+ return (doc !== undefined) ? doc.identifier : null;
287
264
  });
288
265
  }
289
266
  // public async findSubReservationsByEvent(params: {
@@ -337,163 +314,157 @@ class PendingReservationRepo {
337
314
  // .option({ maxTimeMS: MONGO_MAX_TIME_MS })
338
315
  // .exec();
339
316
  // }
340
- docExists(params) {
341
- return __awaiter(this, void 0, void 0, function* () {
342
- const { eventId } = params;
343
- const doc = yield this.pendingReservationModel.findOne({ 'reservationFor.id': { $eq: eventId } }, { _id: 0, typeOf: 1 })
344
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
345
- .lean()
346
- .exec();
347
- return doc !== null;
348
- });
317
+ async docExists(params) {
318
+ const { eventId } = params;
319
+ const doc = await this.pendingReservationModel.findOne({ 'reservationFor.id': { $eq: eventId } }, { _id: 0, typeOf: 1 })
320
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
321
+ .lean()
322
+ .exec();
323
+ return doc !== null;
349
324
  }
350
- deleteExpiredMany(params) {
351
- return __awaiter(this, void 0, void 0, function* () {
352
- const { expires } = params;
353
- return this.pendingReservationModel.deleteMany({
354
- expires: { $lte: expires.$lte }
355
- })
356
- .exec();
357
- });
325
+ async deleteExpiredMany(params) {
326
+ const { expires } = params;
327
+ return this.pendingReservationModel.deleteMany({
328
+ expires: { $lte: expires.$lte }
329
+ })
330
+ .exec();
358
331
  }
359
- projectFields(params) {
360
- return __awaiter(this, void 0, void 0, function* () {
361
- const { limit, page } = params;
362
- const filterQueries = PendingReservationRepo.CREATE_FILTER_QUERY(params);
363
- const matchStage = (filterQueries.length > 0) ? { $match: { $and: filterQueries } } : undefined;
364
- let limitStage;
365
- let skipStage;
366
- if (typeof limit === 'number' && limit > 0) {
367
- const pageMustBePositive = (typeof page === 'number' && page > 0) ? page : 1;
368
- skipStage = { $skip: limit * (pageMustBePositive - 1) };
369
- limitStage = { $limit: limit };
332
+ async projectFields(params) {
333
+ const { limit, page } = params;
334
+ const filterQueries = PendingReservationRepo.CREATE_FILTER_QUERY(params);
335
+ const matchStage = (filterQueries.length > 0) ? { $match: { $and: filterQueries } } : undefined;
336
+ let limitStage;
337
+ let skipStage;
338
+ if (typeof limit === 'number' && limit > 0) {
339
+ const pageMustBePositive = (typeof page === 'number' && page > 0) ? page : 1;
340
+ skipStage = { $skip: limit * (pageMustBePositive - 1) };
341
+ limitStage = { $limit: limit };
342
+ }
343
+ const projectStage = {
344
+ $project: {
345
+ _id: 0,
346
+ typeOf: '$typeOf',
347
+ bookingTime: '$bookingTime',
348
+ dateCreated: '$dateCreated',
349
+ dateModified: '$dateModified',
350
+ expires: '$expires',
351
+ numSeats: '$numSeats',
352
+ reservationFor: '$reservationFor',
353
+ reservationNumber: '$reservationNumber',
354
+ subReservationCount: { $size: '$subReservation' }
370
355
  }
371
- const projectStage = {
372
- $project: {
373
- _id: 0,
374
- typeOf: '$typeOf',
375
- bookingTime: '$bookingTime',
376
- dateCreated: '$dateCreated',
377
- dateModified: '$dateModified',
378
- expires: '$expires',
379
- numSeats: '$numSeats',
380
- reservationFor: '$reservationFor',
381
- reservationNumber: '$reservationNumber',
382
- subReservationCount: { $size: '$subReservation' }
383
- }
384
- };
385
- const pipeline = [
386
- ...(matchStage !== undefined) ? [matchStage] : [],
387
- { $sort: { bookingTime: factory.sortType.Descending } },
388
- ...(skipStage !== undefined) ? [skipStage] : [],
389
- ...(limitStage !== undefined) ? [limitStage] : [],
390
- projectStage
391
- ];
392
- return this.pendingReservationModel.aggregate(pipeline)
393
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
394
- .exec();
395
- });
356
+ };
357
+ const pipeline = [
358
+ ...(matchStage !== undefined) ? [matchStage] : [],
359
+ { $sort: { bookingTime: factory.sortType.Descending } },
360
+ ...(skipStage !== undefined) ? [skipStage] : [],
361
+ ...(limitStage !== undefined) ? [limitStage] : [],
362
+ projectStage
363
+ ];
364
+ return this.pendingReservationModel.aggregate(pipeline)
365
+ .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
366
+ .exec();
396
367
  }
397
- projectSubReservationByReservationNumber(params) {
398
- return __awaiter(this, void 0, void 0, function* () {
399
- const matchStage = {
400
- $match: {
401
- 'project.id': { $eq: params.project.id.$eq },
402
- reservationNumber: { $eq: params.reservationNumber.$eq }
403
- }
404
- };
405
- const projectStage = {
406
- $project: {
407
- _id: 0,
408
- identifier: '$subReservation.identifier',
409
- index: `$reservationIndex`
410
- }
411
- };
412
- const unwindStage = {
413
- $unwind: {
414
- path: '$subReservation',
415
- includeArrayIndex: 'reservationIndex'
416
- }
417
- };
418
- const pipeline = [
419
- matchStage,
420
- unwindStage,
421
- projectStage
422
- ];
423
- return this.pendingReservationModel.aggregate(pipeline)
424
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
425
- .exec();
426
- });
368
+ async projectSubReservationByReservationNumber(params) {
369
+ const matchStage = {
370
+ $match: {
371
+ 'project.id': { $eq: params.project.id.$eq },
372
+ reservationNumber: { $eq: params.reservationNumber.$eq }
373
+ }
374
+ };
375
+ const projectStage = {
376
+ $project: {
377
+ _id: 0,
378
+ identifier: '$subReservation.identifier',
379
+ index: `$reservationIndex`
380
+ }
381
+ };
382
+ const unwindStage = {
383
+ $unwind: {
384
+ path: '$subReservation',
385
+ includeArrayIndex: 'reservationIndex'
386
+ }
387
+ };
388
+ const pipeline = [
389
+ matchStage,
390
+ unwindStage,
391
+ projectStage
392
+ ];
393
+ return this.pendingReservationModel.aggregate(pipeline)
394
+ .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
395
+ .exec();
427
396
  }
428
397
  /**
429
398
  * expiresを最新の情報に同期する
430
399
  */
431
- syncEvent2expires(params) {
432
- return __awaiter(this, void 0, void 0, function* () {
433
- const { expires, reservationFor } = params;
434
- if (!(expires instanceof Date)) {
435
- throw new factory.errors.Argument('expires', 'must be Date');
436
- }
437
- return this.pendingReservationModel.updateMany({
438
- 'reservationFor.id': { $eq: reservationFor.id },
439
- numSeats: { $gte: 1 } // numSeats:0についてはもはや不要なドキュメントなので除外
440
- }, {
441
- $set: { expires }
442
- })
443
- .exec();
444
- });
400
+ async syncEvent2expires(params) {
401
+ const { expires, reservationFor } = params;
402
+ if (!(expires instanceof Date)) {
403
+ throw new factory.errors.Argument('expires', 'must be Date');
404
+ }
405
+ return this.pendingReservationModel.updateMany({
406
+ 'reservationFor.id': { $eq: reservationFor.id },
407
+ numSeats: { $gte: 1 } // numSeats:0についてはもはや不要なドキュメントなので除外
408
+ }, {
409
+ $set: { expires }
410
+ })
411
+ .exec();
445
412
  }
446
- aggregateNumSeats(params) {
447
- return __awaiter(this, void 0, void 0, function* () {
448
- const { bookingTime, dateCreated, reservationFor, limit } = params;
449
- const bookingTimeLte = bookingTime === null || bookingTime === void 0 ? void 0 : bookingTime.$lte;
450
- const dateCreatedGte = dateCreated === null || dateCreated === void 0 ? void 0 : dateCreated.$gte;
451
- const dateCreatedLt = dateCreated === null || dateCreated === void 0 ? void 0 : dateCreated.$lt;
452
- const matchStage = {
453
- $match: Object.assign(Object.assign({ 'reservationFor.id': { $eq: reservationFor.id },
454
- // 'subReservation.identifier': { $exists: true },
455
- numSeats: { $gte: 1 } }, (bookingTimeLte instanceof Date) ? { bookingTime: { $lte: bookingTimeLte } } : undefined), (dateCreatedGte instanceof Date || dateCreatedLt instanceof Date)
413
+ async aggregateNumSeats(params) {
414
+ const { bookingTime, dateCreated, reservationFor, limit } = params;
415
+ const bookingTimeLte = bookingTime?.$lte;
416
+ const dateCreatedGte = dateCreated?.$gte;
417
+ const dateCreatedLt = dateCreated?.$lt;
418
+ const matchStage = {
419
+ $match: {
420
+ 'reservationFor.id': { $eq: reservationFor.id },
421
+ // 'subReservation.identifier': { $exists: true },
422
+ numSeats: { $gte: 1 }, // 'subReservation.identifier': { $exists: true }よりも明らかに性能が高い
423
+ ...(bookingTimeLte instanceof Date) ? { bookingTime: { $lte: bookingTimeLte } } : undefined,
424
+ ...(dateCreatedGte instanceof Date || dateCreatedLt instanceof Date)
456
425
  ? {
457
- dateCreated: Object.assign(Object.assign({}, (dateCreatedGte instanceof Date) ? { $gte: dateCreatedGte } : undefined), (dateCreatedLt instanceof Date) ? { $lt: dateCreatedLt } : undefined)
426
+ dateCreated: {
427
+ ...(dateCreatedGte instanceof Date) ? { $gte: dateCreatedGte } : undefined,
428
+ ...(dateCreatedLt instanceof Date) ? { $lt: dateCreatedLt } : undefined
429
+ }
458
430
  }
459
- : undefined)
460
- };
461
- let limitStage;
462
- if (typeof limit === 'number' && limit > 0) {
463
- limitStage = { $limit: limit };
431
+ : undefined
464
432
  }
465
- const aggregate = this.pendingReservationModel.aggregate([
466
- matchStage,
467
- ...(limitStage !== undefined)
468
- ? [limitStage]
469
- : [],
470
- {
471
- $project: {
472
- numSeats: '$numSeats'
473
- }
474
- },
475
- {
476
- $group: {
477
- // tslint:disable-next-line:no-null-keyword
478
- _id: null,
479
- totalNumSeats: { $sum: '$numSeats' }
480
- }
481
- },
482
- {
483
- $project: {
484
- _id: 0,
485
- numSeats: '$totalNumSeats'
486
- }
433
+ };
434
+ let limitStage;
435
+ if (typeof limit === 'number' && limit > 0) {
436
+ limitStage = { $limit: limit };
437
+ }
438
+ const aggregate = this.pendingReservationModel.aggregate([
439
+ matchStage,
440
+ ...(limitStage !== undefined)
441
+ ? [limitStage]
442
+ : [],
443
+ {
444
+ $project: {
445
+ numSeats: '$numSeats'
446
+ }
447
+ },
448
+ {
449
+ $group: {
450
+ _id: null,
451
+ totalNumSeats: { $sum: '$numSeats' }
452
+ }
453
+ },
454
+ {
455
+ $project: {
456
+ _id: 0,
457
+ numSeats: '$totalNumSeats'
487
458
  }
488
- ]);
489
- const aggregations = yield aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
490
- .exec();
491
- debug('countUnavailableOffers:', aggregations);
492
- if (aggregations.length === 0) {
493
- return 0;
494
459
  }
495
- return aggregations[0].numSeats;
496
- });
460
+ ]);
461
+ const aggregations = await aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
462
+ .exec();
463
+ debug('countUnavailableOffers:', aggregations);
464
+ if (aggregations.length === 0) {
465
+ return 0;
466
+ }
467
+ return aggregations[0].numSeats;
497
468
  }
498
469
  // private async createIfNotExist(aggregateReservation: IAggregateReservation): Promise<void> {
499
470
  // try {
@@ -526,34 +497,32 @@ class PendingReservationRepo {
526
497
  // }
527
498
  // }
528
499
  // }
529
- createReservationPackageIfPossible(reservationPackage) {
530
- return __awaiter(this, void 0, void 0, function* () {
531
- var _a, _b;
532
- try {
533
- const result = yield this.pendingReservationModel.insertMany(Object.assign(Object.assign({}, reservationPackage), { dateCreated: new Date() }), {
534
- rawResult: true
535
- });
536
- const id = (_b = (_a = result.insertedIds) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.toHexString();
537
- if (typeof id !== 'string') {
538
- throw new factory.errors.Internal('pending reservationPackage not saved');
539
- }
500
+ async createReservationPackageIfPossible(reservationPackage) {
501
+ try {
502
+ const result = await this.pendingReservationModel.insertMany({
503
+ ...reservationPackage,
504
+ dateCreated: new Date()
505
+ }, {
506
+ rawResult: true
507
+ });
508
+ const id = result.insertedIds?.[0]?.toHexString();
509
+ if (typeof id !== 'string') {
510
+ throw new factory.errors.Internal('pending reservationPackage not saved');
540
511
  }
541
- catch (error) {
542
- if (yield (0, errorHandler_1.isMongoError)(error)) {
543
- if (error.code === errorHandler_1.MongoErrorCode.DuplicateKey) {
544
- throw new factory.errors.AlreadyInUse(factory.reservationType.EventReservation, ['ticketedSeat'], 'Already hold');
545
- }
512
+ }
513
+ catch (error) {
514
+ if (await (0, errorHandler_1.isMongoError)(error)) {
515
+ if (error.code === errorHandler_1.MongoErrorCode.DuplicateKey) {
516
+ throw new factory.errors.AlreadyInUse(factory.reservationType.EventReservation, ['ticketedSeat'], 'Already hold');
546
517
  }
547
- throw error;
548
518
  }
549
- });
519
+ throw error;
520
+ }
550
521
  }
551
- deleteReservationPackage(reservationPackage) {
552
- return __awaiter(this, void 0, void 0, function* () {
553
- const { reservationNumber } = reservationPackage;
554
- yield this.pendingReservationModel.deleteOne({ reservationNumber: { $eq: reservationNumber } })
555
- .exec();
556
- });
522
+ async deleteReservationPackage(reservationPackage) {
523
+ const { reservationNumber } = reservationPackage;
524
+ await this.pendingReservationModel.deleteOne({ reservationNumber: { $eq: reservationNumber } })
525
+ .exec();
557
526
  }
558
527
  // private async decreaseReservationCountByLockKey(
559
528
  // lockKey: ILockKey
@@ -613,23 +582,21 @@ class PendingReservationRepo {
613
582
  // throw new factory.errors.Argument('Event', 'maximumAttendeeCapacity exceeded');
614
583
  // }
615
584
  // }
616
- deleteReservationIfExists(params) {
617
- return __awaiter(this, void 0, void 0, function* () {
618
- const { eventId, offer, hasTicketedSeat, holder } = params;
619
- const reservationIdentifier = PendingReservationRepo.offer2identifier(offer, hasTicketedSeat);
620
- yield this.pendingReservationModel.updateOne({
621
- 'reservationFor.id': { $eq: eventId },
622
- reservationNumber: { $eq: holder },
623
- 'subReservation.identifier': { $exists: true, $eq: reservationIdentifier }
624
- }, {
625
- $inc: { numSeats: -1 },
626
- $pull: { subReservation: { identifier: reservationIdentifier } },
627
- $set: { dateModified: new Date() }
628
- })
629
- .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
630
- .exec();
631
- // debug('unlocked', pendingReservationDoc);
632
- });
585
+ async deleteReservationIfExists(params) {
586
+ const { eventId, offer, hasTicketedSeat, holder } = params;
587
+ const reservationIdentifier = PendingReservationRepo.offer2identifier(offer, hasTicketedSeat);
588
+ await this.pendingReservationModel.updateOne({
589
+ 'reservationFor.id': { $eq: eventId },
590
+ reservationNumber: { $eq: holder },
591
+ 'subReservation.identifier': { $exists: true, $eq: reservationIdentifier }
592
+ }, {
593
+ $inc: { numSeats: -1 },
594
+ $pull: { subReservation: { identifier: reservationIdentifier } },
595
+ $set: { dateModified: new Date() }
596
+ })
597
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
598
+ .exec();
599
+ // debug('unlocked', pendingReservationDoc);
633
600
  }
634
601
  }
635
602
  exports.PendingReservationRepo = PendingReservationRepo;