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

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 (476) 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 -54
  7. package/lib/chevre/factory/event.js +69 -42
  8. package/lib/chevre/factory/transactionNumber.js +2 -0
  9. package/lib/chevre/index.js +15 -30
  10. package/lib/chevre/repo/acceptedOffer.js +178 -197
  11. package/lib/chevre/repo/acceptedPaymentMethod.js +131 -143
  12. package/lib/chevre/repo/account.js +196 -223
  13. package/lib/chevre/repo/accountTitle.js +9 -21
  14. package/lib/chevre/repo/accountTransaction.js +189 -189
  15. package/lib/chevre/repo/accountingReport.js +88 -107
  16. package/lib/chevre/repo/action.js +853 -880
  17. package/lib/chevre/repo/additionalProperty.js +65 -91
  18. package/lib/chevre/repo/advanceBookingRequirement.js +69 -90
  19. package/lib/chevre/repo/aggregateOffer.js +394 -427
  20. package/lib/chevre/repo/aggregateOrder.js +50 -62
  21. package/lib/chevre/repo/aggregateReservation.js +76 -89
  22. package/lib/chevre/repo/aggregation.js +42 -63
  23. package/lib/chevre/repo/assetTransaction.js +696 -716
  24. package/lib/chevre/repo/authorization.js +115 -127
  25. package/lib/chevre/repo/categoryCode.js +115 -143
  26. package/lib/chevre/repo/comment.js +74 -82
  27. package/lib/chevre/repo/concurrentLock.js +17 -29
  28. package/lib/chevre/repo/confirmationNumber.js +20 -32
  29. package/lib/chevre/repo/creativeWork.js +154 -176
  30. package/lib/chevre/repo/credentials.js +40 -51
  31. package/lib/chevre/repo/customer.js +65 -88
  32. package/lib/chevre/repo/customerType.js +52 -61
  33. package/lib/chevre/repo/emailMessage.js +52 -80
  34. package/lib/chevre/repo/event.js +646 -669
  35. package/lib/chevre/repo/eventOffer.js +122 -125
  36. package/lib/chevre/repo/eventSellerMakesOffer.js +64 -76
  37. package/lib/chevre/repo/eventSeries.js +208 -231
  38. package/lib/chevre/repo/identity.js +94 -106
  39. package/lib/chevre/repo/identityProvider.js +72 -95
  40. package/lib/chevre/repo/issuer.js +102 -135
  41. package/lib/chevre/repo/member.js +238 -258
  42. package/lib/chevre/repo/memberProgram.js +157 -177
  43. package/lib/chevre/repo/merchantReturnPolicy.js +62 -93
  44. package/lib/chevre/repo/message.js +122 -135
  45. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +1 -1
  46. package/lib/chevre/repo/mongoose/schemas/account.js +1 -1
  47. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -1
  48. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  49. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -1
  50. package/lib/chevre/repo/mongoose/schemas/action.js +1 -1
  51. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +1 -1
  52. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -1
  53. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.js +1 -1
  54. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.js +1 -1
  55. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.js +1 -1
  56. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +1 -1
  57. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -1
  58. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -1
  59. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  60. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -1
  61. package/lib/chevre/repo/mongoose/schemas/civicStructure.js +1 -1
  62. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -1
  63. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -1
  64. package/lib/chevre/repo/mongoose/schemas/customerType.js +1 -1
  65. package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
  66. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +1 -1
  67. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +1 -1
  68. package/lib/chevre/repo/mongoose/schemas/identity.js +1 -1
  69. package/lib/chevre/repo/mongoose/schemas/identityProvider.js +1 -1
  70. package/lib/chevre/repo/mongoose/schemas/issuer.js +1 -1
  71. package/lib/chevre/repo/mongoose/schemas/member/global.js +1 -1
  72. package/lib/chevre/repo/mongoose/schemas/member.js +1 -1
  73. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -1
  74. package/lib/chevre/repo/mongoose/schemas/message.js +1 -1
  75. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.js +1 -1
  76. package/lib/chevre/repo/mongoose/schemas/note.js +1 -1
  77. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -1
  78. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +1 -1
  79. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +1 -1
  80. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  81. package/lib/chevre/repo/mongoose/schemas/paymentService.js +1 -1
  82. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.js +1 -1
  83. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +1 -1
  84. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +1 -1
  85. package/lib/chevre/repo/mongoose/schemas/place.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/potentialAction.js +1 -1
  87. package/lib/chevre/repo/mongoose/schemas/product.js +1 -1
  88. package/lib/chevre/repo/mongoose/schemas/productModel.js +1 -1
  89. package/lib/chevre/repo/mongoose/schemas/productOffer.js +1 -1
  90. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  91. package/lib/chevre/repo/mongoose/schemas/reserveInterface.js +1 -1
  92. package/lib/chevre/repo/mongoose/schemas/role.js +1 -1
  93. package/lib/chevre/repo/mongoose/schemas/schedule.js +1 -1
  94. package/lib/chevre/repo/mongoose/schemas/seller.js +1 -1
  95. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.js +1 -1
  96. package/lib/chevre/repo/mongoose/schemas/service/availableHour.js +1 -1
  97. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -1
  98. package/lib/chevre/repo/mongoose/schemas/task.js +1 -1
  99. package/lib/chevre/repo/mongoose/schemas/ticket.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/transaction.js +1 -1
  101. package/lib/chevre/repo/mongoose/schemas/transactionNumber.js +1 -1
  102. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -1
  103. package/lib/chevre/repo/mongoose/schemas/webSite.js +1 -1
  104. package/lib/chevre/repo/movieTicketType.js +68 -89
  105. package/lib/chevre/repo/note.js +143 -146
  106. package/lib/chevre/repo/noteAboutOrder.js +112 -113
  107. package/lib/chevre/repo/offer/unitPriceInCatalog.js +331 -313
  108. package/lib/chevre/repo/offerCatalog.js +302 -333
  109. package/lib/chevre/repo/offerCatalogItem.js +289 -316
  110. package/lib/chevre/repo/offerItemCondition.js +60 -85
  111. package/lib/chevre/repo/order.js +563 -572
  112. package/lib/chevre/repo/orderInTransaction.js +113 -136
  113. package/lib/chevre/repo/orderNumber.js +99 -112
  114. package/lib/chevre/repo/ownershipInfo.js +213 -233
  115. package/lib/chevre/repo/passport.js +94 -102
  116. package/lib/chevre/repo/paymentMethod/creditCard.js +153 -169
  117. package/lib/chevre/repo/paymentService.js +180 -199
  118. package/lib/chevre/repo/paymentServiceChannel.js +76 -99
  119. package/lib/chevre/repo/paymentServiceProvider.js +186 -201
  120. package/lib/chevre/repo/pendingReservation.js +275 -305
  121. package/lib/chevre/repo/permit.js +47 -42
  122. package/lib/chevre/repo/person.js +227 -247
  123. package/lib/chevre/repo/place/busStop.js +77 -103
  124. package/lib/chevre/repo/place/entranceGate.js +123 -128
  125. package/lib/chevre/repo/place/hasPOS.js +108 -120
  126. package/lib/chevre/repo/place/movieTheater.js +187 -219
  127. package/lib/chevre/repo/place/screeningRoom.js +340 -324
  128. package/lib/chevre/repo/place/seat.js +539 -475
  129. package/lib/chevre/repo/place/section.js +329 -292
  130. package/lib/chevre/repo/potentialAction.js +67 -86
  131. package/lib/chevre/repo/priceSpecification.js +103 -141
  132. package/lib/chevre/repo/product.js +204 -238
  133. package/lib/chevre/repo/productHasOfferCatalog.js +39 -50
  134. package/lib/chevre/repo/productModel.js +94 -126
  135. package/lib/chevre/repo/productOffer.js +119 -118
  136. package/lib/chevre/repo/project.js +123 -141
  137. package/lib/chevre/repo/projectMakesOffer.js +96 -108
  138. package/lib/chevre/repo/rateLimit/offer.js +43 -56
  139. package/lib/chevre/repo/reservation.js +370 -345
  140. package/lib/chevre/repo/reserveInterface.js +31 -42
  141. package/lib/chevre/repo/role.js +94 -112
  142. package/lib/chevre/repo/schedule.js +25 -36
  143. package/lib/chevre/repo/seller.js +115 -145
  144. package/lib/chevre/repo/sellerMakesOffer.js +95 -110
  145. package/lib/chevre/repo/sellerPaymentAccepted.js +92 -109
  146. package/lib/chevre/repo/sellerReturnPolicy.js +74 -96
  147. package/lib/chevre/repo/service/availableHour.js +27 -38
  148. package/lib/chevre/repo/serviceOutput.js +55 -66
  149. package/lib/chevre/repo/serviceOutputIdentifier.js +46 -57
  150. package/lib/chevre/repo/setting/jwt.js +40 -50
  151. package/lib/chevre/repo/setting.js +48 -48
  152. package/lib/chevre/repo/stockHolder.js +179 -197
  153. package/lib/chevre/repo/task.js +615 -617
  154. package/lib/chevre/repo/telemetry.js +1 -0
  155. package/lib/chevre/repo/ticket.js +52 -65
  156. package/lib/chevre/repo/transaction.js +758 -795
  157. package/lib/chevre/repo/transactionNumber.js +67 -80
  158. package/lib/chevre/repo/transactionNumberCounter.js +69 -79
  159. package/lib/chevre/repo/transactionProcess.js +36 -47
  160. package/lib/chevre/repo/trip.js +145 -163
  161. package/lib/chevre/repo/webSite.js +90 -105
  162. package/lib/chevre/repository.js +455 -646
  163. package/lib/chevre/service/account.js +9 -18
  164. package/lib/chevre/service/accountTransaction/deposit.js +16 -17
  165. package/lib/chevre/service/accountTransaction/transfer.js +18 -19
  166. package/lib/chevre/service/accountTransaction/withdraw.js +16 -17
  167. package/lib/chevre/service/accountTransaction.js +4 -13
  168. package/lib/chevre/service/aggregation/event/aggregateOffers.js +63 -60
  169. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +52 -55
  170. package/lib/chevre/service/aggregation/event/findEventOffers.js +7 -17
  171. package/lib/chevre/service/aggregation/event/importFromCOA.js +4 -13
  172. package/lib/chevre/service/aggregation/project.js +10 -19
  173. package/lib/chevre/service/aggregation/system.js +182 -99
  174. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +31 -17
  175. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +17 -23
  176. package/lib/chevre/service/assetTransaction/cancelReservation/startAndConfirm.js +17 -15
  177. package/lib/chevre/service/assetTransaction/cancelReservation.js +7 -16
  178. package/lib/chevre/service/assetTransaction/cancelReservationCOA/factory.js +11 -4
  179. package/lib/chevre/service/assetTransaction/cancelReservationCOA.js +4 -13
  180. package/lib/chevre/service/assetTransaction/fixInformAction.js +6 -16
  181. package/lib/chevre/service/assetTransaction/moneyTransfer/potentialActions.js +13 -25
  182. package/lib/chevre/service/assetTransaction/moneyTransfer.js +101 -88
  183. package/lib/chevre/service/assetTransaction/pay/cancel.js +3 -12
  184. package/lib/chevre/service/assetTransaction/pay/check.js +4 -14
  185. package/lib/chevre/service/assetTransaction/pay/confirm.js +18 -21
  186. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +4 -13
  187. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +33 -32
  188. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +7 -17
  189. package/lib/chevre/service/assetTransaction/pay/start/account/validation.js +6 -16
  190. package/lib/chevre/service/assetTransaction/pay/start/factory.js +64 -36
  191. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +7 -17
  192. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +6 -16
  193. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +7 -17
  194. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +9 -15
  195. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +3 -12
  196. package/lib/chevre/service/assetTransaction/pay/start.js +29 -35
  197. package/lib/chevre/service/assetTransaction/refund/factory.js +36 -16
  198. package/lib/chevre/service/assetTransaction/refund/potentialActions.js +12 -21
  199. package/lib/chevre/service/assetTransaction/refund.js +35 -39
  200. package/lib/chevre/service/assetTransaction/registerService/factory.js +65 -28
  201. package/lib/chevre/service/assetTransaction/registerService/potentialActions.js +50 -41
  202. package/lib/chevre/service/assetTransaction/registerService.js +45 -52
  203. package/lib/chevre/service/assetTransaction/reserve/cancel.js +5 -14
  204. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +15 -3
  205. package/lib/chevre/service/assetTransaction/reserve/confirm.js +21 -26
  206. package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +3 -12
  207. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +99 -79
  208. package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +17 -12
  209. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +108 -70
  210. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +69 -30
  211. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.js +29 -20
  212. package/lib/chevre/service/assetTransaction/reserve/start.js +91 -106
  213. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +5 -15
  214. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +41 -54
  215. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +42 -55
  216. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +7 -17
  217. package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +15 -27
  218. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +24 -24
  219. package/lib/chevre/service/assetTransaction/reserveCOA/factory.js +12 -4
  220. package/lib/chevre/service/assetTransaction/reserveCOA.js +4 -13
  221. package/lib/chevre/service/assetTransaction.js +17 -21
  222. package/lib/chevre/service/delivery/factory.js +3 -4
  223. package/lib/chevre/service/delivery/product/factory.js +16 -7
  224. package/lib/chevre/service/delivery/reservation/factory.js +14 -3
  225. package/lib/chevre/service/delivery.js +47 -49
  226. package/lib/chevre/service/event/processUpdateMovieTheater.js +21 -23
  227. package/lib/chevre/service/event/saveScreeningEventSeries.js +56 -37
  228. package/lib/chevre/service/event/saveScreeningEvents.js +14 -23
  229. package/lib/chevre/service/event.js +34 -27
  230. package/lib/chevre/service/iam.js +8 -17
  231. package/lib/chevre/service/moneyTransfer.js +128 -112
  232. package/lib/chevre/service/notification/factory.js +11 -8
  233. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +11 -15
  234. package/lib/chevre/service/notification/notifyByEmail.js +7 -17
  235. package/lib/chevre/service/notification/sendEmailMessage.js +23 -26
  236. package/lib/chevre/service/notification/triggerWebhook.js +58 -54
  237. package/lib/chevre/service/offer/any.js +6 -15
  238. package/lib/chevre/service/offer/event/authorize/factory.js +139 -61
  239. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +8 -18
  240. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +43 -27
  241. package/lib/chevre/service/offer/event/authorize.js +114 -68
  242. package/lib/chevre/service/offer/event/checkAvailability.js +5 -15
  243. package/lib/chevre/service/offer/event/importFromCOA/factory.js +9 -2
  244. package/lib/chevre/service/offer/event/importFromCOA.js +13 -19
  245. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +38 -39
  246. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +26 -38
  247. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +11 -22
  248. package/lib/chevre/service/offer/event/searchOfferCatalogItemAvailability.js +13 -24
  249. package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +15 -22
  250. package/lib/chevre/service/offer/event/searchOffersByIds.js +24 -36
  251. package/lib/chevre/service/offer/event/searchPriceSpecs4event.js +5 -14
  252. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +4 -13
  253. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +6 -15
  254. package/lib/chevre/service/offer/event/voidTransaction.js +35 -39
  255. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +14 -20
  256. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/authorize.js +52 -40
  257. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/factory.js +5 -1
  258. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +34 -37
  259. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +45 -22
  260. package/lib/chevre/service/offer/eventServiceByCOA/authorize/validateAcceptedOffers.js +67 -59
  261. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +16 -26
  262. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +8 -18
  263. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +42 -41
  264. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +22 -25
  265. package/lib/chevre/service/offer/factory.js +18 -7
  266. package/lib/chevre/service/offer/moneyTransfer/authorize.js +31 -36
  267. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +9 -18
  268. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +10 -19
  269. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +14 -24
  270. package/lib/chevre/service/offer/onEventChanged.js +69 -64
  271. package/lib/chevre/service/offer/product/factory.js +54 -29
  272. package/lib/chevre/service/offer/product/searchProductOffers.js +30 -23
  273. package/lib/chevre/service/offer/product.js +106 -80
  274. package/lib/chevre/service/offer.js +48 -44
  275. package/lib/chevre/service/order/confirmPayTransaction.js +28 -27
  276. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +54 -41
  277. package/lib/chevre/service/order/deleteOrder.js +28 -35
  278. package/lib/chevre/service/order/findPlaceOrderTransaction.js +3 -12
  279. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +64 -68
  280. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +1 -2
  281. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +3 -12
  282. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +11 -6
  283. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +5 -14
  284. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +22 -9
  285. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +5 -14
  286. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +23 -26
  287. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +13 -19
  288. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +5 -14
  289. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +24 -13
  290. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +23 -32
  291. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +8 -18
  292. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +10 -9
  293. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +23 -28
  294. package/lib/chevre/service/order/onOrderUpdated/factory.js +3 -5
  295. package/lib/chevre/service/order/onOrderUpdated.js +13 -15
  296. package/lib/chevre/service/order/payOrder.js +3 -12
  297. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +9 -19
  298. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +31 -15
  299. package/lib/chevre/service/order/placeOrder/factory.js +35 -22
  300. package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -12
  301. package/lib/chevre/service/order/placeOrder.js +12 -22
  302. package/lib/chevre/service/order/placeOrderWithoutTransaction.js +10 -18
  303. package/lib/chevre/service/order/returnOrder.js +27 -29
  304. package/lib/chevre/service/order/sendOrder.js +37 -36
  305. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +19 -25
  306. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +24 -37
  307. package/lib/chevre/service/payment/any/factory.js +106 -49
  308. package/lib/chevre/service/payment/any/fixOrderAsNeeded.js +4 -13
  309. package/lib/chevre/service/payment/any/onPayActionCompleted.js +13 -18
  310. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +34 -37
  311. package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +18 -24
  312. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +16 -16
  313. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +15 -20
  314. package/lib/chevre/service/payment/any/person2username.js +33 -45
  315. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +8 -18
  316. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +5 -15
  317. package/lib/chevre/service/payment/any.js +181 -137
  318. package/lib/chevre/service/payment/creditCard/authorize/handleAuthorizeError.js +2 -2
  319. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +44 -24
  320. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +6 -15
  321. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3dsResult2recipe.js +5 -1
  322. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCardResult2recipe.js +10 -2
  323. package/lib/chevre/service/payment/creditCard/authorize.js +20 -22
  324. package/lib/chevre/service/payment/creditCard/factory.js +22 -4
  325. package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +8 -18
  326. package/lib/chevre/service/payment/creditCard/payCreditCard.js +31 -36
  327. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +40 -49
  328. package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +33 -45
  329. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -25
  330. package/lib/chevre/service/payment/faceToFace.js +14 -23
  331. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +44 -25
  332. package/lib/chevre/service/payment/factory.js +50 -23
  333. package/lib/chevre/service/payment/movieTicket/authorize.js +35 -28
  334. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +22 -25
  335. package/lib/chevre/service/payment/movieTicket/factory.js +33 -10
  336. package/lib/chevre/service/payment/movieTicket/getCredentials.js +5 -15
  337. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +29 -40
  338. package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +8 -18
  339. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +60 -59
  340. package/lib/chevre/service/payment/movieTicket/validation.js +41 -36
  341. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +8 -18
  342. package/lib/chevre/service/payment/paymentCard.js +87 -103
  343. package/lib/chevre/service/permit.js +36 -35
  344. package/lib/chevre/service/product.js +23 -27
  345. package/lib/chevre/service/project.js +22 -31
  346. package/lib/chevre/service/report/ownershipInfo.js +3 -4
  347. package/lib/chevre/service/report/telemetry.js +51 -55
  348. package/lib/chevre/service/reserve/cancelReservation.js +92 -90
  349. package/lib/chevre/service/reserve/checkInReservation.js +24 -29
  350. package/lib/chevre/service/reserve/confirmReservation.js +33 -38
  351. package/lib/chevre/service/reserve/factory.js +42 -20
  352. package/lib/chevre/service/reserve/findByCode.js +13 -18
  353. package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +18 -24
  354. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +17 -24
  355. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +38 -29
  356. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +45 -35
  357. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +37 -32
  358. package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +17 -23
  359. package/lib/chevre/service/reserve/searchByOrder.js +10 -19
  360. package/lib/chevre/service/reserve/useReservation.js +47 -32
  361. package/lib/chevre/service/reserve/verifyToken4reservation.js +7 -14
  362. package/lib/chevre/service/reserveCOA/cancelReservation.js +7 -16
  363. package/lib/chevre/service/reserveCOA/factory.js +5 -1
  364. package/lib/chevre/service/task/acceptCOAOffer.js +20 -24
  365. package/lib/chevre/service/task/aggregateOffers.js +3 -12
  366. package/lib/chevre/service/task/aggregateOnSystem.js +4 -14
  367. package/lib/chevre/service/task/aggregateScreeningEvent.js +3 -12
  368. package/lib/chevre/service/task/authorizePayment.js +9 -15
  369. package/lib/chevre/service/task/cancelMoneyTransfer.js +3 -12
  370. package/lib/chevre/service/task/cancelPendingReservation.js +10 -20
  371. package/lib/chevre/service/task/cancelReservation.js +3 -12
  372. package/lib/chevre/service/task/checkMovieTicket.js +16 -19
  373. package/lib/chevre/service/task/checkResource.js +7 -16
  374. package/lib/chevre/service/task/confirmMoneyTransfer.js +3 -12
  375. package/lib/chevre/service/task/confirmPayTransaction.js +6 -12
  376. package/lib/chevre/service/task/confirmRegisterService.js +3 -12
  377. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +24 -31
  378. package/lib/chevre/service/task/confirmReserveTransaction.js +48 -42
  379. package/lib/chevre/service/task/createAccountingReport.js +14 -20
  380. package/lib/chevre/service/task/deletePerson.js +48 -58
  381. package/lib/chevre/service/task/deleteTransaction.js +3 -12
  382. package/lib/chevre/service/task/givePointAward.js +3 -12
  383. package/lib/chevre/service/task/handleNotification.js +4 -14
  384. package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +6 -16
  385. package/lib/chevre/service/task/importEventsFromCOA.js +6 -16
  386. package/lib/chevre/service/task/importOffersFromCOA.js +8 -18
  387. package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -12
  388. package/lib/chevre/service/task/moneyTransfer.js +3 -12
  389. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +3 -12
  390. package/lib/chevre/service/task/onAuthorizationCreated.js +11 -18
  391. package/lib/chevre/service/task/onEventChanged.js +3 -12
  392. package/lib/chevre/service/task/onOrderPaymentCompleted.js +3 -12
  393. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +7 -16
  394. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +7 -16
  395. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +8 -17
  396. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +10 -19
  397. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +8 -17
  398. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +6 -15
  399. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +14 -23
  400. package/lib/chevre/service/task/onResourceDeleted.js +17 -26
  401. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +9 -21
  402. package/lib/chevre/service/task/onResourceUpdated/onCategoryCodeUpdated.js +3 -12
  403. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +11 -23
  404. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +13 -25
  405. package/lib/chevre/service/task/onResourceUpdated/syncCategoryCode.js +9 -15
  406. package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +21 -27
  407. package/lib/chevre/service/task/onResourceUpdated.js +113 -153
  408. package/lib/chevre/service/task/pay.js +8 -16
  409. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.js +4 -14
  410. package/lib/chevre/service/task/payment/payByTask.js +49 -38
  411. package/lib/chevre/service/task/payment/refundByTask.js +7 -17
  412. package/lib/chevre/service/task/payment/voidPaymentByTask.js +6 -15
  413. package/lib/chevre/service/task/placeOrder.js +6 -12
  414. package/lib/chevre/service/task/publishPaymentUrl.js +9 -14
  415. package/lib/chevre/service/task/refund.js +8 -16
  416. package/lib/chevre/service/task/registerService.js +3 -12
  417. package/lib/chevre/service/task/reserve.js +3 -12
  418. package/lib/chevre/service/task/returnMoneyTransfer.js +3 -12
  419. package/lib/chevre/service/task/returnOrder.js +6 -12
  420. package/lib/chevre/service/task/returnPayTransaction.js +54 -48
  421. package/lib/chevre/service/task/returnPointAward.js +3 -12
  422. package/lib/chevre/service/task/returnReserveTransaction.js +29 -30
  423. package/lib/chevre/service/task/sendEmailMessage.js +6 -13
  424. package/lib/chevre/service/task/sendOrder.js +12 -15
  425. package/lib/chevre/service/task/syncResourcesFromCOA.js +39 -40
  426. package/lib/chevre/service/task/triggerWebhook.js +6 -12
  427. package/lib/chevre/service/task/useReservation.js +11 -14
  428. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +3 -12
  429. package/lib/chevre/service/task/voidPayTransaction.js +7 -12
  430. package/lib/chevre/service/task/voidPayment.js +3 -12
  431. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -12
  432. package/lib/chevre/service/task/voidReserveTransaction.js +10 -16
  433. package/lib/chevre/service/task.js +16 -22
  434. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +9 -20
  435. package/lib/chevre/service/taskHandler/onOperationFailed.js +20 -17
  436. package/lib/chevre/service/taskHandler.js +19 -21
  437. package/lib/chevre/service/transaction/deleteTransaction.js +104 -84
  438. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +15 -6
  439. package/lib/chevre/service/transaction/moneyTransfer/factory.js +13 -4
  440. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +12 -24
  441. package/lib/chevre/service/transaction/moneyTransfer.js +119 -96
  442. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +49 -51
  443. package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +14 -25
  444. package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +4 -14
  445. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +3 -4
  446. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.js +3 -4
  447. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  448. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +30 -45
  449. package/lib/chevre/service/transaction/placeOrder/confirm.js +75 -55
  450. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +31 -13
  451. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +6 -15
  452. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +6 -15
  453. package/lib/chevre/service/transaction/placeOrder/publishOrderNumberIfNotExist.js +7 -16
  454. package/lib/chevre/service/transaction/placeOrder/start/factory.js +27 -7
  455. package/lib/chevre/service/transaction/placeOrder/start/validateStartRequest.js +53 -59
  456. package/lib/chevre/service/transaction/placeOrder/start.js +14 -18
  457. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +13 -6
  458. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +176 -190
  459. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +77 -89
  460. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +40 -48
  461. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +52 -56
  462. package/lib/chevre/service/transaction/returnOrder/preStart/findApplicableReturnPolicy.js +100 -102
  463. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +60 -80
  464. package/lib/chevre/service/transaction/returnOrder/preStart.js +42 -46
  465. package/lib/chevre/service/transaction/returnOrder.js +32 -36
  466. package/lib/chevre/service/transaction.js +75 -46
  467. package/lib/chevre/service/validation/validateEvent.js +2 -11
  468. package/lib/chevre/service/validation/validateOrder.js +7 -16
  469. package/lib/chevre/service.js +85 -128
  470. package/lib/chevre/settings/aggregation.js +4 -0
  471. package/lib/chevre/settings.js +7 -0
  472. package/package.json +6 -7
  473. package/example/src/chevre/addEventBySchedule.ts +0 -46
  474. package/example/src/idaas/auth0/adminApplications.ts +0 -183
  475. package/example/src/idaas/auth0/getToken.ts +0 -55
  476. 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.OfferRepo = void 0;
13
4
  const mongoose_1 = require("mongoose");
@@ -21,6 +12,9 @@ const OFFERS_ARRAY_INDEX_NAME = 'offerIndex';
21
12
  * 単価オファー読取リポジトリ
22
13
  */
23
14
  class OfferRepo {
15
+ aggregateOfferModel;
16
+ offerCatalogModel;
17
+ offerCatalogItemModel;
24
18
  constructor(connection) {
25
19
  this.aggregateOfferModel = connection.model(aggregateOffer_2.modelName, (0, aggregateOffer_2.createSchema)());
26
20
  this.offerCatalogModel = connection.model(offerCatalog_1.modelName, (0, offerCatalog_1.createSchema)());
@@ -108,387 +102,411 @@ class OfferRepo {
108
102
  * カタログIDで単価オファーを全て検索する
109
103
  * 必ずカタログデータから単価オファーIDを参照する
110
104
  */
111
- searchAllByOfferCatalogId(params) {
112
- return __awaiter(this, void 0, void 0, function* () {
113
- const sortedOfferIds = yield this.searchAggregateOfferIdsBySubOfferCatalog({
114
- id: params.subOfferCatalog.id,
115
- isOfferCatalogItem: params.subOfferCatalog.isOfferCatalogItem
116
- });
117
- let offers = [];
118
- if (sortedOfferIds.length > 0) {
119
- const searchOffersConditions = {
120
- parentOffer: { id: { $in: sortedOfferIds } }
121
- };
122
- offers = yield this.search(searchOffersConditions, params.projection);
123
- }
124
- return { offers };
105
+ async searchAllByOfferCatalogId(params) {
106
+ const sortedOfferIds = await this.searchAggregateOfferIdsBySubOfferCatalog({
107
+ id: params.subOfferCatalog.id,
108
+ isOfferCatalogItem: params.subOfferCatalog.isOfferCatalogItem
125
109
  });
110
+ let offers = [];
111
+ if (sortedOfferIds.length > 0) {
112
+ const searchOffersConditions = {
113
+ parentOffer: { id: { $in: sortedOfferIds } }
114
+ };
115
+ offers = await this.search(searchOffersConditions, params.projection);
116
+ }
117
+ return { offers };
126
118
  }
127
119
  /**
128
120
  * 単価オファーIDとカタログIDで単価オファーを全て検索する
129
121
  * 単価オファーIDを一定数指定する想定なのでpagingは不要
130
122
  */
131
- searchAllByIdsAndOfferCatalogId(params) {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- var _a;
134
- if (!Array.isArray(params.ids) || params.ids.length === 0) {
135
- throw new factory.errors.ArgumentNull('offer.ids');
136
- }
137
- // 解釈を集計オファーIDに変更する必要がある(2023-09-11~)
138
- // 単価オファーIDリスト→集計オファーIDに変換→カタログ条件にセット
139
- const aggregateOfferIds = yield this.aggregateOfferModel.distinct('_id',
140
- // { 'offers.id': { $in: params.ids } }
141
- { _id: { $in: params.ids } } // _idに変更(2023-12-22~)
142
- )
143
- .exec();
144
- if (aggregateOfferIds.length === 0) {
145
- throw new factory.errors.NotFound(factory.offerType.AggregateOffer);
146
- }
147
- const aggregateOfferIdsInDataCatalog = yield this.searchAggregateOfferIdsBySubOfferCatalogs({
148
- id: params.includedInDataCatalog.id,
149
- isOfferCatalogItem: params.includedInDataCatalog.isOfferCatalogItem,
150
- itemListElementIds: aggregateOfferIds
151
- });
152
- let offers = [];
153
- if (aggregateOfferIdsInDataCatalog.length > 0) {
154
- const searchOffersConditions = Object.assign({
155
- // aggregateOffer.idで検索する(2023-09-09~)
156
- parentOffer: { id: { $in: aggregateOfferIdsInDataCatalog } }, id: { $in: params.ids }, priceSpecification: {
157
- appliesToMovieTicket: Object.assign(Object.assign({}, (Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
123
+ async searchAllByIdsAndOfferCatalogId(params) {
124
+ if (!Array.isArray(params.ids) || params.ids.length === 0) {
125
+ throw new factory.errors.ArgumentNull('offer.ids');
126
+ }
127
+ // 解釈を集計オファーIDに変更する必要がある(2023-09-11~)
128
+ // 単価オファーIDリスト→集計オファーIDに変換→カタログ条件にセット
129
+ const aggregateOfferIds = await this.aggregateOfferModel.distinct('_id',
130
+ // { 'offers.id': { $in: params.ids } }
131
+ { _id: { $in: params.ids } } // _idに変更(2023-12-22~)
132
+ )
133
+ .exec();
134
+ if (aggregateOfferIds.length === 0) {
135
+ throw new factory.errors.NotFound(factory.offerType.AggregateOffer);
136
+ }
137
+ const aggregateOfferIdsInDataCatalog = await this.searchAggregateOfferIdsBySubOfferCatalogs({
138
+ id: params.includedInDataCatalog.id,
139
+ isOfferCatalogItem: params.includedInDataCatalog.isOfferCatalogItem,
140
+ itemListElementIds: aggregateOfferIds
141
+ });
142
+ let offers = [];
143
+ if (aggregateOfferIdsInDataCatalog.length > 0) {
144
+ const searchOffersConditions = {
145
+ // aggregateOffer.idで検索する(2023-09-09~)
146
+ parentOffer: { id: { $in: aggregateOfferIdsInDataCatalog } },
147
+ id: { $in: params.ids },
148
+ priceSpecification: {
149
+ appliesToMovieTicket: {
150
+ // 利用不可決済方法区分条件を追加(2023-02-21~)
151
+ ...(Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
158
152
  ? {
159
153
  serviceOutput: {
160
154
  typeOf: { $nin: params.unacceptedPaymentMethod }
161
155
  }
162
156
  }
163
- : undefined), (params.excludeAppliesToMovieTicket)
157
+ : undefined,
158
+ // MovieTicket除外条件を追加(2023-02-21~)
159
+ ...(params.excludeAppliesToMovieTicket)
164
160
  ? {
165
161
  serviceType: { $exists: false }
166
162
  }
167
- : undefined)
168
- }, onlyValid: params.onlyValid === true }, (typeof ((_a = params.availableAtOrFrom) === null || _a === void 0 ? void 0 : _a.id) === 'string')
163
+ : undefined
164
+ }
165
+ },
166
+ onlyValid: params.onlyValid === true,
167
+ ...(typeof params.availableAtOrFrom?.id === 'string')
169
168
  ? { availableAtOrFrom: { id: { $eq: params.availableAtOrFrom.id } } } // store.idでのフィルターをmongoで処理(2023-01-27~)
170
- : undefined);
171
- offers = yield this.search(searchOffersConditions, params.projection);
172
- }
173
- return offers;
174
- });
169
+ : undefined
170
+ };
171
+ offers = await this.search(searchOffersConditions, params.projection);
172
+ }
173
+ return offers;
175
174
  }
176
175
  /**
177
176
  * カタログに含まれるオファーを検索する(カタログ内ソートは保証しない)
178
177
  * カタログ内ソートインデックスはsortedOfferIdsで判断する
179
178
  */
180
- searchByOfferCatalogIdWithSortIndex(params) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
183
- const sortedOfferIds = yield this.searchAggregateOfferIdsBySubOfferCatalog({
184
- id: params.offerCatalog.id,
185
- isOfferCatalogItem: params.offerCatalog.isOfferCatalogItem
186
- });
187
- let offers = [];
188
- if (sortedOfferIds.length > 0) {
189
- const appliesToMovieTicketServiceOutputTypeOfEq = (_d = (_c = (_b = (_a = params.priceSpecification) === null || _a === void 0 ? void 0 : _a.appliesToMovieTicket) === null || _b === void 0 ? void 0 : _b.serviceOutput) === null || _c === void 0 ? void 0 : _c.typeOf) === null || _d === void 0 ? void 0 : _d.$eq;
190
- const appliesToMovieTicketServiceOutputTypeOfAll = (_h = (_g = (_f = (_e = params.priceSpecification) === null || _e === void 0 ? void 0 : _e.appliesToMovieTicket) === null || _f === void 0 ? void 0 : _f.serviceOutput) === null || _g === void 0 ? void 0 : _g.typeOf) === null || _h === void 0 ? void 0 : _h.$all;
191
- const appliesToMovieTicketServiceTypeExists = (_l = (_k = (_j = params.priceSpecification) === null || _j === void 0 ? void 0 : _j.appliesToMovieTicket) === null || _k === void 0 ? void 0 : _k.serviceType) === null || _l === void 0 ? void 0 : _l.$exists;
192
- // 適用決済カード条件なしのみを検索するかどうか
193
- const onlyNoAppliesToMovieTicket = params.excludeAppliesToMovieTicket || (appliesToMovieTicketServiceTypeExists === false);
194
- const onlyAppliesToMovieTicket = !params.excludeAppliesToMovieTicket && (appliesToMovieTicketServiceTypeExists === true);
195
- const priceSpecificationConditions = {
196
- appliesToMovieTicket: Object.assign(Object.assign({ serviceOutput: {
197
- typeOf: Object.assign(Object.assign(Object.assign({}, (Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
179
+ async searchByOfferCatalogIdWithSortIndex(params) {
180
+ const sortedOfferIds = await this.searchAggregateOfferIdsBySubOfferCatalog({
181
+ id: params.offerCatalog.id,
182
+ isOfferCatalogItem: params.offerCatalog.isOfferCatalogItem
183
+ });
184
+ let offers = [];
185
+ if (sortedOfferIds.length > 0) {
186
+ const appliesToMovieTicketServiceOutputTypeOfEq = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$eq;
187
+ const appliesToMovieTicketServiceOutputTypeOfAll = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$all;
188
+ const appliesToMovieTicketServiceTypeExists = params.priceSpecification?.appliesToMovieTicket?.serviceType?.$exists;
189
+ // 適用決済カード条件なしのみを検索するかどうか
190
+ const onlyNoAppliesToMovieTicket = params.excludeAppliesToMovieTicket || (appliesToMovieTicketServiceTypeExists === false);
191
+ const onlyAppliesToMovieTicket = !params.excludeAppliesToMovieTicket && (appliesToMovieTicketServiceTypeExists === true);
192
+ const priceSpecificationConditions = {
193
+ appliesToMovieTicket: {
194
+ serviceOutput: {
195
+ typeOf: {
196
+ ...(Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
198
197
  // 利用不可決済方法区分条件を追加(2023-02-21~)
199
198
  ? { $nin: params.unacceptedPaymentMethod }
200
- : undefined), (typeof appliesToMovieTicketServiceOutputTypeOfEq === 'string')
199
+ : undefined,
200
+ ...(typeof appliesToMovieTicketServiceOutputTypeOfEq === 'string')
201
201
  ? { $eq: appliesToMovieTicketServiceOutputTypeOfEq }
202
- : undefined), (Array.isArray(appliesToMovieTicketServiceOutputTypeOfAll))
202
+ : undefined,
203
+ ...(Array.isArray(appliesToMovieTicketServiceOutputTypeOfAll))
203
204
  ? { $all: appliesToMovieTicketServiceOutputTypeOfAll }
204
- : undefined)
205
- } }, (onlyNoAppliesToMovieTicket)
205
+ : undefined
206
+ }
207
+ },
208
+ ...(onlyNoAppliesToMovieTicket)
206
209
  ? { serviceType: { $exists: false } }
207
- : undefined), (onlyAppliesToMovieTicket)
210
+ : undefined,
211
+ ...(onlyAppliesToMovieTicket)
208
212
  ? { serviceType: { $exists: true } }
209
- : undefined)
210
- };
211
- const searchOffersConditions = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ priceSpecification: priceSpecificationConditions, onlyValid: params.onlyValid === true }, (params.useIncludeInDataCatalog)
213
+ : undefined
214
+ }
215
+ };
216
+ const searchOffersConditions = {
217
+ priceSpecification: priceSpecificationConditions,
218
+ onlyValid: params.onlyValid === true,
219
+ // aggregateOffer.idで検索する(2023-09-09~)
220
+ ...(params.useIncludeInDataCatalog)
212
221
  ? { includedInDataCatalog: { id: { $in: [params.offerCatalog.id] } } }
213
- : { parentOffer: { id: { $in: sortedOfferIds } } }), (typeof ((_m = params.availableAtOrFrom) === null || _m === void 0 ? void 0 : _m.id) === 'string')
222
+ : { parentOffer: { id: { $in: sortedOfferIds } } },
223
+ ...(typeof params.availableAtOrFrom?.id === 'string')
214
224
  ? { availableAtOrFrom: { id: { $eq: params.availableAtOrFrom.id } } } // store.idでのフィルターをmongoで処理(2023-01-27~)
215
- : undefined), (typeof params.limit === 'number' && typeof params.page === 'number')
225
+ : undefined,
226
+ ...(typeof params.limit === 'number' && typeof params.page === 'number')
216
227
  // 明示的なソート指定を調整(決して重複しない属性が相応)(2023-09-07~)
217
228
  ? { sort: { identifier: factory.sortType.Ascending } }
218
- : undefined), (typeof params.limit === 'number') ? { limit: params.limit } : undefined), (typeof params.page === 'number') ? { page: params.page } : undefined);
219
- offers = yield this.search(searchOffersConditions, params.projection);
220
- }
221
- return { offers, sortedOfferIds };
222
- });
229
+ : undefined,
230
+ ...(typeof params.limit === 'number') ? { limit: params.limit } : undefined,
231
+ ...(typeof params.page === 'number') ? { page: params.page } : undefined
232
+ };
233
+ offers = await this.search(searchOffersConditions, params.projection);
234
+ }
235
+ return { offers, sortedOfferIds };
223
236
  }
224
237
  /**
225
238
  * カタログに記載されたオファーにおいて利用可能な決済方法区分を検索する
226
239
  */
227
- searchAvaialbleAppliesToMovieTicketByOfferCatalogId(params) {
228
- return __awaiter(this, void 0, void 0, function* () {
229
- var _a;
230
- const { useIncludeInDataCatalog } = params;
231
- // カタログのみ対応でよい?
232
- let offerIds;
233
- if (!useIncludeInDataCatalog) {
234
- if (params.subOfferCatalog.isOfferCatalogItem) {
235
- const offerCatalog = yield this.offerCatalogItemModel.findOne({ _id: { $eq: params.subOfferCatalog.id } }, { _id: 0, itemListElement: 1 })
236
- .lean()
237
- .exec();
238
- offerIds = offerCatalog === null || offerCatalog === void 0 ? void 0 : offerCatalog.itemListElement.map(({ id }) => id);
239
- }
240
- else {
241
- const offerCatalog = yield this.offerCatalogModel.findOne({ _id: { $eq: params.subOfferCatalog.id } }, { _id: 0, itemListElement: 1 })
242
- .lean()
243
- .exec();
244
- offerIds = offerCatalog === null || offerCatalog === void 0 ? void 0 : offerCatalog.itemListElement.map(({ id }) => id);
245
- }
246
- if (!Array.isArray(offerIds) || offerIds.length === 0) {
247
- return [];
248
- }
240
+ async searchAvaialbleAppliesToMovieTicketByOfferCatalogId(params) {
241
+ const { useIncludeInDataCatalog } = params;
242
+ // カタログのみ対応でよい?
243
+ let offerIds;
244
+ if (!useIncludeInDataCatalog) {
245
+ if (params.subOfferCatalog.isOfferCatalogItem) {
246
+ const offerCatalog = await this.offerCatalogItemModel.findOne({ _id: { $eq: params.subOfferCatalog.id } }, { _id: 0, itemListElement: 1 })
247
+ .lean()
248
+ .exec();
249
+ offerIds = offerCatalog?.itemListElement.map(({ id }) => id);
249
250
  }
250
- // support useIncludeInDataCatalog(2025-05-08~)
251
- const searchOffersConditions = Object.assign(Object.assign(Object.assign({}, (Array.isArray(offerIds))
251
+ else {
252
+ const offerCatalog = await this.offerCatalogModel.findOne({ _id: { $eq: params.subOfferCatalog.id } }, { _id: 0, itemListElement: 1 })
253
+ .lean()
254
+ .exec();
255
+ offerIds = offerCatalog?.itemListElement.map(({ id }) => id);
256
+ }
257
+ if (!Array.isArray(offerIds) || offerIds.length === 0) {
258
+ return [];
259
+ }
260
+ }
261
+ // support useIncludeInDataCatalog(2025-05-08~)
262
+ const searchOffersConditions = {
263
+ ...(Array.isArray(offerIds))
252
264
  ? { parentOffer: { id: { $in: offerIds } } }
253
- : { includedInDataCatalog: { id: { $in: [params.subOfferCatalog.id] } } }), (typeof ((_a = params.availableAtOrFrom) === null || _a === void 0 ? void 0 : _a.id) === 'string')
265
+ : { includedInDataCatalog: { id: { $in: [params.subOfferCatalog.id] } } },
266
+ ...(typeof params.availableAtOrFrom?.id === 'string')
254
267
  ? { availableAtOrFrom: { id: { $eq: params.availableAtOrFrom.id } } }
255
- : undefined), { priceSpecification: {
256
- appliesToMovieTicket: Object.assign({
257
- // 基本は適用決済カード区分有のみ検索
258
- serviceType: { $exists: (!params.excludeAppliesToMovieTicket === true) } }, (Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
268
+ : undefined,
269
+ priceSpecification: {
270
+ appliesToMovieTicket: {
271
+ // 基本は適用決済カード区分有のみ検索
272
+ serviceType: { $exists: (!params.excludeAppliesToMovieTicket === true) },
273
+ // 利用不可決済方法区分を指定されれば除外
274
+ ...(Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
259
275
  ? { serviceOutput: { typeOf: { $nin: params.unacceptedPaymentMethod } } }
260
- : undefined)
261
- }, onlyValid: params.onlyValid === true });
262
- const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(searchOffersConditions);
263
- const aggregate = this.aggregateOfferModel.aggregate([
264
- { $unwind: { path: '$offers' } },
265
- { $unwind: { path: '$offers.priceSpecification.appliesToMovieTicket' } },
266
- ...matchStages,
267
- {
268
- $group: {
269
- _id: '$offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf',
270
- appliesToMovieTicket: { $first: '$offers.priceSpecification.appliesToMovieTicket' }
271
- }
272
- },
273
- { $sort: { _id: factory.sortType.Ascending } },
274
- {
275
- $project: {
276
- _id: 0,
277
- serviceOutput: { typeOf: '$_id' }
278
- }
276
+ : undefined
277
+ }
278
+ },
279
+ onlyValid: params.onlyValid === true
280
+ };
281
+ const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(searchOffersConditions);
282
+ const aggregate = this.aggregateOfferModel.aggregate([
283
+ { $unwind: { path: '$offers' } },
284
+ { $unwind: { path: '$offers.priceSpecification.appliesToMovieTicket' } },
285
+ ...matchStages,
286
+ {
287
+ $group: {
288
+ _id: '$offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf',
289
+ appliesToMovieTicket: { $first: '$offers.priceSpecification.appliesToMovieTicket' }
290
+ }
291
+ },
292
+ { $sort: { _id: factory.sortType.Ascending } },
293
+ {
294
+ $project: {
295
+ _id: 0,
296
+ serviceOutput: { typeOf: '$_id' }
279
297
  }
280
- ]);
281
- if (typeof params.limit === 'number' && params.limit > 0) {
282
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
283
- aggregate.limit(params.limit * page)
284
- .skip(params.limit * (page - 1));
285
298
  }
286
- return aggregate.exec();
287
- });
299
+ ]);
300
+ if (typeof params.limit === 'number' && params.limit > 0) {
301
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
302
+ aggregate.limit(params.limit * page)
303
+ .skip(params.limit * (page - 1));
304
+ }
305
+ return aggregate.exec();
288
306
  }
289
307
  /**
290
308
  * クライアントの利用可能カタログを検索する
291
309
  */
292
- searchAvailableCatalogs(params) {
293
- return __awaiter(this, void 0, void 0, function* () {
294
- const { unacceptedPaymentMethod } = params;
295
- const aggregate = this.aggregateOfferModel.aggregate([
296
- { $unwind: { path: '$offers' } },
297
- { $unwind: { path: '$includedInDataCatalog' } },
298
- {
299
- $match: Object.assign({ 'project.id': { $eq: params.project.id }, 'includedInDataCatalog.id': { $exists: true, $in: params.includedInDataCatalog.id }, 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id } }, (Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
310
+ async searchAvailableCatalogs(params) {
311
+ const { unacceptedPaymentMethod } = params;
312
+ const aggregate = this.aggregateOfferModel.aggregate([
313
+ { $unwind: { path: '$offers' } },
314
+ { $unwind: { path: '$includedInDataCatalog' } },
315
+ {
316
+ $match: {
317
+ 'project.id': { $eq: params.project.id },
318
+ 'includedInDataCatalog.id': { $exists: true, $in: params.includedInDataCatalog.id },
319
+ 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id },
320
+ // 利用不可決済方法区分を考慮(2024-09-26~)
321
+ ...(Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
300
322
  ? {
301
323
  'offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf': {
302
324
  $nin: unacceptedPaymentMethod
303
325
  }
304
326
  }
305
- : undefined)
306
- },
307
- {
308
- $group: {
309
- _id: '$includedInDataCatalog.id'
310
- }
311
- },
312
- {
313
- $project: {
314
- _id: 0,
315
- id: '$_id'
316
- }
327
+ : undefined
317
328
  }
318
- ]);
319
- return aggregate.exec();
320
- });
329
+ },
330
+ {
331
+ $group: {
332
+ _id: '$includedInDataCatalog.id'
333
+ }
334
+ },
335
+ {
336
+ $project: {
337
+ _id: 0,
338
+ id: '$_id'
339
+ }
340
+ }
341
+ ]);
342
+ return aggregate.exec();
321
343
  }
322
344
  /**
323
345
  * サブカタログがクライアントで利用可能かどうか
324
346
  */
325
- isCatalogAvailable(params) {
326
- return __awaiter(this, void 0, void 0, function* () {
327
- const { unacceptedPaymentMethod } = params;
328
- // サブカタログのみ対応でよい
329
- const offerCatalogItem = yield this.offerCatalogItemModel.findOne({ _id: { $eq: params.includedInDataCatalog.id } }, { _id: 0, itemListElement: 1 })
330
- .lean()
331
- .exec();
332
- const offerIds = offerCatalogItem === null || offerCatalogItem === void 0 ? void 0 : offerCatalogItem.itemListElement.map(({ id }) => id);
333
- if (!Array.isArray(offerIds) || offerIds.length === 0) {
334
- return false;
335
- }
336
- const doc = yield this.aggregateOfferModel.findOne(Object.assign({
337
- // 'project.id': { $eq: params.project.id },
338
- _id: { $in: offerIds }, 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id } }, (Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
347
+ async isCatalogAvailable(params) {
348
+ const { unacceptedPaymentMethod } = params;
349
+ // サブカタログのみ対応でよい
350
+ const offerCatalogItem = await this.offerCatalogItemModel.findOne({ _id: { $eq: params.includedInDataCatalog.id } }, { _id: 0, itemListElement: 1 })
351
+ .lean()
352
+ .exec();
353
+ const offerIds = offerCatalogItem?.itemListElement.map(({ id }) => id);
354
+ if (!Array.isArray(offerIds) || offerIds.length === 0) {
355
+ return false;
356
+ }
357
+ const doc = await this.aggregateOfferModel.findOne({
358
+ // 'project.id': { $eq: params.project.id },
359
+ _id: { $in: offerIds }, // includedInDataCatalog.idには依存しない
360
+ 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id },
361
+ // 利用不可決済方法区分を考慮(2024-09-26~)
362
+ ...(Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
339
363
  ? {
340
364
  'offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf': {
341
365
  $nin: unacceptedPaymentMethod
342
366
  }
343
367
  }
344
- : undefined), {
345
- _id: 1
346
- })
347
- .lean()
348
- .exec();
349
- return doc !== null;
350
- });
368
+ : undefined
369
+ }, {
370
+ _id: 1
371
+ })
372
+ .lean()
373
+ .exec();
374
+ return doc !== null;
351
375
  }
352
- count(params) {
353
- return __awaiter(this, void 0, void 0, function* () {
354
- const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(params);
355
- const result = yield this.aggregateOfferModel.aggregate([
356
- {
357
- $unwind: { path: '$offers' }
358
- },
359
- ...matchStages,
360
- {
361
- $count: 'offerCount'
362
- }
363
- ])
364
- .exec();
365
- return (result.length > 0) ? result[0].offerCount : 0;
366
- });
376
+ async count(params) {
377
+ const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(params);
378
+ const result = await this.aggregateOfferModel.aggregate([
379
+ {
380
+ $unwind: { path: '$offers' }
381
+ },
382
+ ...matchStages,
383
+ {
384
+ $count: 'offerCount'
385
+ }
386
+ ])
387
+ .exec();
388
+ return (result.length > 0) ? result[0].offerCount : 0;
367
389
  }
368
- search(params, projection) {
369
- return __awaiter(this, void 0, void 0, function* () {
370
- var _a, _b;
371
- const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(params);
372
- const projectStage = OfferRepo.CREATE_AGGREGATE_OFFERS_PROJECTION(Object.assign({}, projection));
373
- const sortByPrice = (_a = params.sort) === null || _a === void 0 ? void 0 : _a['priceSpecification.price'];
374
- const sortByIdentifier = (_b = params.sort) === null || _b === void 0 ? void 0 : _b.identifier;
375
- const aggregate = this.aggregateOfferModel.aggregate([
376
- {
377
- $unwind: {
378
- path: '$offers',
379
- includeArrayIndex: OFFERS_ARRAY_INDEX_NAME
380
- }
381
- },
382
- ...matchStages,
383
- ...(typeof sortByPrice === 'number' || typeof sortByIdentifier === 'number')
384
- ? [
385
- {
386
- $sort: Object.assign(Object.assign({}, (typeof sortByPrice === 'number')
390
+ async search(params, projection) {
391
+ const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(params);
392
+ const projectStage = OfferRepo.CREATE_AGGREGATE_OFFERS_PROJECTION({ ...projection });
393
+ const sortByPrice = params.sort?.['priceSpecification.price'];
394
+ const sortByIdentifier = params.sort?.identifier;
395
+ const aggregate = this.aggregateOfferModel.aggregate([
396
+ {
397
+ $unwind: {
398
+ path: '$offers',
399
+ includeArrayIndex: OFFERS_ARRAY_INDEX_NAME
400
+ }
401
+ },
402
+ ...matchStages,
403
+ ...(typeof sortByPrice === 'number' || typeof sortByIdentifier === 'number')
404
+ ? [
405
+ {
406
+ $sort: {
407
+ ...(typeof sortByPrice === 'number')
387
408
  ? { 'offers.priceSpecification.price': sortByPrice }
388
- : undefined), (typeof sortByIdentifier === 'number')
409
+ : undefined,
410
+ ...(typeof sortByIdentifier === 'number')
389
411
  ? { 'offers.identifier': sortByIdentifier }
390
- : undefined)
412
+ : undefined
391
413
  }
392
- ]
393
- : [],
394
- { $project: projectStage }
395
- ]);
396
- // tslint:disable-next-line:no-single-line-block-comment
397
- /* istanbul ignore else */
398
- if (typeof params.limit === 'number' && params.limit > 0) {
399
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
400
- aggregate.limit(params.limit * page)
401
- .skip(params.limit * (page - 1));
402
- }
403
- return aggregate.exec();
404
- });
414
+ }
415
+ ]
416
+ : [],
417
+ { $project: projectStage }
418
+ ]);
419
+ // tslint:disable-next-line:no-single-line-block-comment
420
+ /* istanbul ignore else */
421
+ if (typeof params.limit === 'number' && params.limit > 0) {
422
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
423
+ aggregate.limit(params.limit * page)
424
+ .skip(params.limit * (page - 1));
425
+ }
426
+ return aggregate.exec();
405
427
  }
406
428
  /**
407
429
  * サブカタログから集計オファーIDリストを検索する
408
430
  */
409
- searchAggregateOfferIdsBySubOfferCatalog(params) {
410
- return __awaiter(this, void 0, void 0, function* () {
411
- let itemListElements;
412
- if (params.isOfferCatalogItem) {
413
- const matchStages = [{ $match: { _id: { $eq: new mongoose_1.Types.ObjectId(params.id) } } }]; // ObjectIdなので注意
414
- itemListElements = yield this.offerCatalogItemModel.aggregate([
415
- { $unwind: '$itemListElement' },
416
- ...matchStages,
417
- {
418
- $project: {
419
- _id: 0,
420
- id: '$itemListElement.id'
421
- }
431
+ async searchAggregateOfferIdsBySubOfferCatalog(params) {
432
+ let itemListElements;
433
+ if (params.isOfferCatalogItem) {
434
+ const matchStages = [{ $match: { _id: { $eq: new mongoose_1.Types.ObjectId(params.id) } } }]; // ObjectIdなので注意
435
+ itemListElements = await this.offerCatalogItemModel.aggregate([
436
+ { $unwind: '$itemListElement' },
437
+ ...matchStages,
438
+ {
439
+ $project: {
440
+ _id: 0,
441
+ id: '$itemListElement.id'
422
442
  }
423
- ])
424
- .exec();
425
- }
426
- else {
427
- const matchStages = [{ $match: { _id: { $eq: params.id } } }];
428
- itemListElements = yield this.offerCatalogModel.aggregate([
429
- { $unwind: '$itemListElement' },
430
- ...matchStages,
431
- {
432
- $project: {
433
- _id: 0,
434
- id: '$itemListElement.id'
435
- }
443
+ }
444
+ ])
445
+ .exec();
446
+ }
447
+ else {
448
+ const matchStages = [{ $match: { _id: { $eq: params.id } } }];
449
+ itemListElements = await this.offerCatalogModel.aggregate([
450
+ { $unwind: '$itemListElement' },
451
+ ...matchStages,
452
+ {
453
+ $project: {
454
+ _id: 0,
455
+ id: '$itemListElement.id'
436
456
  }
437
- ])
438
- .exec();
439
- }
440
- return (Array.isArray(itemListElements))
441
- ? itemListElements.map((element) => element.id)
442
- : [];
443
- });
457
+ }
458
+ ])
459
+ .exec();
460
+ }
461
+ return (Array.isArray(itemListElements))
462
+ ? itemListElements.map((element) => element.id)
463
+ : [];
444
464
  }
445
465
  /**
446
466
  * 複数サブカタログから集計オファーIDリストを検索する
447
467
  */
448
- searchAggregateOfferIdsBySubOfferCatalogs(params) {
449
- return __awaiter(this, void 0, void 0, function* () {
450
- if (!Array.isArray(params.itemListElementIds) || params.itemListElementIds.length === 0) {
451
- throw new factory.errors.ArgumentNull('itemListElementIds');
468
+ async searchAggregateOfferIdsBySubOfferCatalogs(params) {
469
+ if (!Array.isArray(params.itemListElementIds) || params.itemListElementIds.length === 0) {
470
+ throw new factory.errors.ArgumentNull('itemListElementIds');
471
+ }
472
+ let itemListElements;
473
+ if (params.isOfferCatalogItem) {
474
+ const matchStages = [
475
+ { $match: { _id: { $in: params.id.map((id) => new mongoose_1.Types.ObjectId(id)) } } }, // ObjectIdなので注意
476
+ { $match: { 'itemListElement.id': { $exists: true, $in: params.itemListElementIds } } }
477
+ ];
478
+ itemListElements = await this.offerCatalogItemModel.aggregate([
479
+ { $unwind: '$itemListElement' },
480
+ ...matchStages,
481
+ {
482
+ $group: { _id: '$itemListElement.id' }
483
+ }
484
+ ])
485
+ .exec();
486
+ }
487
+ else {
488
+ // 1カタログしかありえないはず
489
+ if (params.id.length !== 1) {
490
+ throw new factory.errors.Argument('id', 'length must be 1');
452
491
  }
453
- let itemListElements;
454
- if (params.isOfferCatalogItem) {
455
- const matchStages = [
456
- { $match: { _id: { $in: params.id.map((id) => new mongoose_1.Types.ObjectId(id)) } } }, // ObjectIdなので注意
457
- { $match: { 'itemListElement.id': { $exists: true, $in: params.itemListElementIds } } }
458
- ];
459
- itemListElements = yield this.offerCatalogItemModel.aggregate([
460
- { $unwind: '$itemListElement' },
461
- ...matchStages,
462
- {
463
- $group: { _id: '$itemListElement.id' }
492
+ const matchStages = [
493
+ { $match: { _id: { $in: params.id } } },
494
+ { $match: { 'itemListElement.id': { $exists: true, $in: params.itemListElementIds } } }
495
+ ];
496
+ itemListElements = await this.offerCatalogModel.aggregate([
497
+ { $unwind: '$itemListElement' },
498
+ ...matchStages,
499
+ {
500
+ $project: {
501
+ _id: '$itemListElement.id'
464
502
  }
465
- ])
466
- .exec();
467
- }
468
- else {
469
- // 1カタログしかありえないはず
470
- if (params.id.length !== 1) {
471
- throw new factory.errors.Argument('id', 'length must be 1');
472
503
  }
473
- const matchStages = [
474
- { $match: { _id: { $in: params.id } } },
475
- { $match: { 'itemListElement.id': { $exists: true, $in: params.itemListElementIds } } }
476
- ];
477
- itemListElements = yield this.offerCatalogModel.aggregate([
478
- { $unwind: '$itemListElement' },
479
- ...matchStages,
480
- {
481
- $project: {
482
- _id: '$itemListElement.id'
483
- }
484
- }
485
- ])
486
- .exec();
487
- }
488
- return (Array.isArray(itemListElements))
489
- ? itemListElements.map((element) => element._id)
490
- : [];
491
- });
504
+ ])
505
+ .exec();
506
+ }
507
+ return (Array.isArray(itemListElements))
508
+ ? itemListElements.map((element) => element._id)
509
+ : [];
492
510
  }
493
511
  }
494
512
  exports.OfferRepo = OfferRepo;