@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.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)());
@@ -96,7 +90,6 @@ class OfferRepo {
96
90
  // idは除外しない(2023-12-14~)
97
91
  if (field !== 'id') {
98
92
  if (typeof projectStage[field] === 'string') {
99
- // tslint:disable-next-line:no-dynamic-delete
100
93
  delete projectStage[field];
101
94
  }
102
95
  }
@@ -108,387 +101,410 @@ class OfferRepo {
108
101
  * カタログIDで単価オファーを全て検索する
109
102
  * 必ずカタログデータから単価オファーIDを参照する
110
103
  */
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 };
104
+ async searchAllByOfferCatalogId(params) {
105
+ const sortedOfferIds = await this.searchAggregateOfferIdsBySubOfferCatalog({
106
+ id: params.subOfferCatalog.id,
107
+ isOfferCatalogItem: params.subOfferCatalog.isOfferCatalogItem
125
108
  });
109
+ let offers = [];
110
+ if (sortedOfferIds.length > 0) {
111
+ const searchOffersConditions = {
112
+ parentOffer: { id: { $in: sortedOfferIds } }
113
+ };
114
+ offers = await this.search(searchOffersConditions, params.projection);
115
+ }
116
+ return { offers };
126
117
  }
127
118
  /**
128
119
  * 単価オファーIDとカタログIDで単価オファーを全て検索する
129
120
  * 単価オファーIDを一定数指定する想定なのでpagingは不要
130
121
  */
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)
122
+ async searchAllByIdsAndOfferCatalogId(params) {
123
+ if (!Array.isArray(params.ids) || params.ids.length === 0) {
124
+ throw new factory.errors.ArgumentNull('offer.ids');
125
+ }
126
+ // 解釈を集計オファーIDに変更する必要がある(2023-09-11~)
127
+ // 単価オファーIDリスト→集計オファーIDに変換→カタログ条件にセット
128
+ const aggregateOfferIds = await this.aggregateOfferModel.distinct('_id',
129
+ // { 'offers.id': { $in: params.ids } }
130
+ { _id: { $in: params.ids } } // _idに変更(2023-12-22~)
131
+ )
132
+ .exec();
133
+ if (aggregateOfferIds.length === 0) {
134
+ throw new factory.errors.NotFound(factory.offerType.AggregateOffer);
135
+ }
136
+ const aggregateOfferIdsInDataCatalog = await this.searchAggregateOfferIdsBySubOfferCatalogs({
137
+ id: params.includedInDataCatalog.id,
138
+ isOfferCatalogItem: params.includedInDataCatalog.isOfferCatalogItem,
139
+ itemListElementIds: aggregateOfferIds
140
+ });
141
+ let offers = [];
142
+ if (aggregateOfferIdsInDataCatalog.length > 0) {
143
+ const searchOffersConditions = {
144
+ // aggregateOffer.idで検索する(2023-09-09~)
145
+ parentOffer: { id: { $in: aggregateOfferIdsInDataCatalog } },
146
+ id: { $in: params.ids },
147
+ priceSpecification: {
148
+ appliesToMovieTicket: {
149
+ // 利用不可決済方法区分条件を追加(2023-02-21~)
150
+ ...(Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
158
151
  ? {
159
152
  serviceOutput: {
160
153
  typeOf: { $nin: params.unacceptedPaymentMethod }
161
154
  }
162
155
  }
163
- : undefined), (params.excludeAppliesToMovieTicket)
156
+ : undefined,
157
+ // MovieTicket除外条件を追加(2023-02-21~)
158
+ ...(params.excludeAppliesToMovieTicket)
164
159
  ? {
165
160
  serviceType: { $exists: false }
166
161
  }
167
- : undefined)
168
- }, onlyValid: params.onlyValid === true }, (typeof ((_a = params.availableAtOrFrom) === null || _a === void 0 ? void 0 : _a.id) === 'string')
162
+ : undefined
163
+ }
164
+ },
165
+ onlyValid: params.onlyValid === true,
166
+ ...(typeof params.availableAtOrFrom?.id === 'string')
169
167
  ? { 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
- });
168
+ : undefined
169
+ };
170
+ offers = await this.search(searchOffersConditions, params.projection);
171
+ }
172
+ return offers;
175
173
  }
176
174
  /**
177
175
  * カタログに含まれるオファーを検索する(カタログ内ソートは保証しない)
178
176
  * カタログ内ソートインデックスはsortedOfferIdsで判断する
179
177
  */
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)
178
+ async searchByOfferCatalogIdWithSortIndex(params) {
179
+ const sortedOfferIds = await this.searchAggregateOfferIdsBySubOfferCatalog({
180
+ id: params.offerCatalog.id,
181
+ isOfferCatalogItem: params.offerCatalog.isOfferCatalogItem
182
+ });
183
+ let offers = [];
184
+ if (sortedOfferIds.length > 0) {
185
+ const appliesToMovieTicketServiceOutputTypeOfEq = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$eq;
186
+ const appliesToMovieTicketServiceOutputTypeOfAll = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$all;
187
+ const appliesToMovieTicketServiceTypeExists = params.priceSpecification?.appliesToMovieTicket?.serviceType?.$exists;
188
+ // 適用決済カード条件なしのみを検索するかどうか
189
+ const onlyNoAppliesToMovieTicket = params.excludeAppliesToMovieTicket || (appliesToMovieTicketServiceTypeExists === false);
190
+ const onlyAppliesToMovieTicket = !params.excludeAppliesToMovieTicket && (appliesToMovieTicketServiceTypeExists === true);
191
+ const priceSpecificationConditions = {
192
+ appliesToMovieTicket: {
193
+ serviceOutput: {
194
+ typeOf: {
195
+ ...(Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
198
196
  // 利用不可決済方法区分条件を追加(2023-02-21~)
199
197
  ? { $nin: params.unacceptedPaymentMethod }
200
- : undefined), (typeof appliesToMovieTicketServiceOutputTypeOfEq === 'string')
198
+ : undefined,
199
+ ...(typeof appliesToMovieTicketServiceOutputTypeOfEq === 'string')
201
200
  ? { $eq: appliesToMovieTicketServiceOutputTypeOfEq }
202
- : undefined), (Array.isArray(appliesToMovieTicketServiceOutputTypeOfAll))
201
+ : undefined,
202
+ ...(Array.isArray(appliesToMovieTicketServiceOutputTypeOfAll))
203
203
  ? { $all: appliesToMovieTicketServiceOutputTypeOfAll }
204
- : undefined)
205
- } }, (onlyNoAppliesToMovieTicket)
204
+ : undefined
205
+ }
206
+ },
207
+ ...(onlyNoAppliesToMovieTicket)
206
208
  ? { serviceType: { $exists: false } }
207
- : undefined), (onlyAppliesToMovieTicket)
209
+ : undefined,
210
+ ...(onlyAppliesToMovieTicket)
208
211
  ? { 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)
212
+ : undefined
213
+ }
214
+ };
215
+ const searchOffersConditions = {
216
+ priceSpecification: priceSpecificationConditions,
217
+ onlyValid: params.onlyValid === true,
218
+ // aggregateOffer.idで検索する(2023-09-09~)
219
+ ...(params.useIncludeInDataCatalog)
212
220
  ? { includedInDataCatalog: { id: { $in: [params.offerCatalog.id] } } }
213
- : { parentOffer: { id: { $in: sortedOfferIds } } }), (typeof ((_m = params.availableAtOrFrom) === null || _m === void 0 ? void 0 : _m.id) === 'string')
221
+ : { parentOffer: { id: { $in: sortedOfferIds } } },
222
+ ...(typeof params.availableAtOrFrom?.id === 'string')
214
223
  ? { availableAtOrFrom: { id: { $eq: params.availableAtOrFrom.id } } } // store.idでのフィルターをmongoで処理(2023-01-27~)
215
- : undefined), (typeof params.limit === 'number' && typeof params.page === 'number')
224
+ : undefined,
225
+ ...(typeof params.limit === 'number' && typeof params.page === 'number')
216
226
  // 明示的なソート指定を調整(決して重複しない属性が相応)(2023-09-07~)
217
227
  ? { 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
- });
228
+ : undefined,
229
+ ...(typeof params.limit === 'number') ? { limit: params.limit } : undefined,
230
+ ...(typeof params.page === 'number') ? { page: params.page } : undefined
231
+ };
232
+ offers = await this.search(searchOffersConditions, params.projection);
233
+ }
234
+ return { offers, sortedOfferIds };
223
235
  }
224
236
  /**
225
237
  * カタログに記載されたオファーにおいて利用可能な決済方法区分を検索する
226
238
  */
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
- }
239
+ async searchAvaialbleAppliesToMovieTicketByOfferCatalogId(params) {
240
+ const { useIncludeInDataCatalog } = params;
241
+ // カタログのみ対応でよい?
242
+ let offerIds;
243
+ if (!useIncludeInDataCatalog) {
244
+ if (params.subOfferCatalog.isOfferCatalogItem) {
245
+ const offerCatalog = await this.offerCatalogItemModel.findOne({ _id: { $eq: params.subOfferCatalog.id } }, { _id: 0, itemListElement: 1 })
246
+ .lean()
247
+ .exec();
248
+ offerIds = offerCatalog?.itemListElement.map(({ id }) => id);
249
249
  }
250
- // support useIncludeInDataCatalog(2025-05-08~)
251
- const searchOffersConditions = Object.assign(Object.assign(Object.assign({}, (Array.isArray(offerIds))
250
+ else {
251
+ const offerCatalog = await this.offerCatalogModel.findOne({ _id: { $eq: params.subOfferCatalog.id } }, { _id: 0, itemListElement: 1 })
252
+ .lean()
253
+ .exec();
254
+ offerIds = offerCatalog?.itemListElement.map(({ id }) => id);
255
+ }
256
+ if (!Array.isArray(offerIds) || offerIds.length === 0) {
257
+ return [];
258
+ }
259
+ }
260
+ // support useIncludeInDataCatalog(2025-05-08~)
261
+ const searchOffersConditions = {
262
+ ...(Array.isArray(offerIds))
252
263
  ? { parentOffer: { id: { $in: offerIds } } }
253
- : { includedInDataCatalog: { id: { $in: [params.subOfferCatalog.id] } } }), (typeof ((_a = params.availableAtOrFrom) === null || _a === void 0 ? void 0 : _a.id) === 'string')
264
+ : { includedInDataCatalog: { id: { $in: [params.subOfferCatalog.id] } } },
265
+ ...(typeof params.availableAtOrFrom?.id === 'string')
254
266
  ? { 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)
267
+ : undefined,
268
+ priceSpecification: {
269
+ appliesToMovieTicket: {
270
+ // 基本は適用決済カード区分有のみ検索
271
+ serviceType: { $exists: (!params.excludeAppliesToMovieTicket === true) },
272
+ // 利用不可決済方法区分を指定されれば除外
273
+ ...(Array.isArray(params.unacceptedPaymentMethod) && params.unacceptedPaymentMethod.length > 0)
259
274
  ? { 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
- }
275
+ : undefined
276
+ }
277
+ },
278
+ onlyValid: params.onlyValid === true
279
+ };
280
+ const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(searchOffersConditions);
281
+ const aggregate = this.aggregateOfferModel.aggregate([
282
+ { $unwind: { path: '$offers' } },
283
+ { $unwind: { path: '$offers.priceSpecification.appliesToMovieTicket' } },
284
+ ...matchStages,
285
+ {
286
+ $group: {
287
+ _id: '$offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf',
288
+ appliesToMovieTicket: { $first: '$offers.priceSpecification.appliesToMovieTicket' }
289
+ }
290
+ },
291
+ { $sort: { _id: factory.sortType.Ascending } },
292
+ {
293
+ $project: {
294
+ _id: 0,
295
+ serviceOutput: { typeOf: '$_id' }
279
296
  }
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
297
  }
286
- return aggregate.exec();
287
- });
298
+ ]);
299
+ if (typeof params.limit === 'number' && params.limit > 0) {
300
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
301
+ aggregate.limit(params.limit * page)
302
+ .skip(params.limit * (page - 1));
303
+ }
304
+ return aggregate.exec();
288
305
  }
289
306
  /**
290
307
  * クライアントの利用可能カタログを検索する
291
308
  */
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)
309
+ async searchAvailableCatalogs(params) {
310
+ const { unacceptedPaymentMethod } = params;
311
+ const aggregate = this.aggregateOfferModel.aggregate([
312
+ { $unwind: { path: '$offers' } },
313
+ { $unwind: { path: '$includedInDataCatalog' } },
314
+ {
315
+ $match: {
316
+ 'project.id': { $eq: params.project.id },
317
+ 'includedInDataCatalog.id': { $exists: true, $in: params.includedInDataCatalog.id },
318
+ 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id },
319
+ // 利用不可決済方法区分を考慮(2024-09-26~)
320
+ ...(Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
300
321
  ? {
301
322
  'offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf': {
302
323
  $nin: unacceptedPaymentMethod
303
324
  }
304
325
  }
305
- : undefined)
306
- },
307
- {
308
- $group: {
309
- _id: '$includedInDataCatalog.id'
310
- }
311
- },
312
- {
313
- $project: {
314
- _id: 0,
315
- id: '$_id'
316
- }
326
+ : undefined
317
327
  }
318
- ]);
319
- return aggregate.exec();
320
- });
328
+ },
329
+ {
330
+ $group: {
331
+ _id: '$includedInDataCatalog.id'
332
+ }
333
+ },
334
+ {
335
+ $project: {
336
+ _id: 0,
337
+ id: '$_id'
338
+ }
339
+ }
340
+ ]);
341
+ return aggregate.exec();
321
342
  }
322
343
  /**
323
344
  * サブカタログがクライアントで利用可能かどうか
324
345
  */
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)
346
+ async isCatalogAvailable(params) {
347
+ const { unacceptedPaymentMethod } = params;
348
+ // サブカタログのみ対応でよい
349
+ const offerCatalogItem = await this.offerCatalogItemModel.findOne({ _id: { $eq: params.includedInDataCatalog.id } }, { _id: 0, itemListElement: 1 })
350
+ .lean()
351
+ .exec();
352
+ const offerIds = offerCatalogItem?.itemListElement.map(({ id }) => id);
353
+ if (!Array.isArray(offerIds) || offerIds.length === 0) {
354
+ return false;
355
+ }
356
+ const doc = await this.aggregateOfferModel.findOne({
357
+ // 'project.id': { $eq: params.project.id },
358
+ _id: { $in: offerIds }, // includedInDataCatalog.idには依存しない
359
+ 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id },
360
+ // 利用不可決済方法区分を考慮(2024-09-26~)
361
+ ...(Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
339
362
  ? {
340
363
  'offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf': {
341
364
  $nin: unacceptedPaymentMethod
342
365
  }
343
366
  }
344
- : undefined), {
345
- _id: 1
346
- })
347
- .lean()
348
- .exec();
349
- return doc !== null;
350
- });
367
+ : undefined
368
+ }, {
369
+ _id: 1
370
+ })
371
+ .lean()
372
+ .exec();
373
+ return doc !== null;
351
374
  }
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
- });
375
+ async count(params) {
376
+ const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(params);
377
+ const result = await this.aggregateOfferModel.aggregate([
378
+ {
379
+ $unwind: { path: '$offers' }
380
+ },
381
+ ...matchStages,
382
+ {
383
+ $count: 'offerCount'
384
+ }
385
+ ])
386
+ .exec();
387
+ return (result.length > 0) ? result[0].offerCount : 0;
367
388
  }
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')
389
+ async search(params, projection) {
390
+ const matchStages = aggregateOffer_1.AggregateOfferRepo.CREATE_MATCH_STAGE(params);
391
+ const projectStage = OfferRepo.CREATE_AGGREGATE_OFFERS_PROJECTION({ ...projection });
392
+ const sortByPrice = params.sort?.['priceSpecification.price'];
393
+ const sortByIdentifier = params.sort?.identifier;
394
+ const aggregate = this.aggregateOfferModel.aggregate([
395
+ {
396
+ $unwind: {
397
+ path: '$offers',
398
+ includeArrayIndex: OFFERS_ARRAY_INDEX_NAME
399
+ }
400
+ },
401
+ ...matchStages,
402
+ ...(typeof sortByPrice === 'number' || typeof sortByIdentifier === 'number')
403
+ ? [
404
+ {
405
+ $sort: {
406
+ ...(typeof sortByPrice === 'number')
387
407
  ? { 'offers.priceSpecification.price': sortByPrice }
388
- : undefined), (typeof sortByIdentifier === 'number')
408
+ : undefined,
409
+ ...(typeof sortByIdentifier === 'number')
389
410
  ? { 'offers.identifier': sortByIdentifier }
390
- : undefined)
411
+ : undefined
391
412
  }
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
- });
413
+ }
414
+ ]
415
+ : [],
416
+ { $project: projectStage }
417
+ ]);
418
+ /* istanbul ignore else */
419
+ if (typeof params.limit === 'number' && params.limit > 0) {
420
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
421
+ aggregate.limit(params.limit * page)
422
+ .skip(params.limit * (page - 1));
423
+ }
424
+ return aggregate.exec();
405
425
  }
406
426
  /**
407
427
  * サブカタログから集計オファーIDリストを検索する
408
428
  */
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
- }
429
+ async searchAggregateOfferIdsBySubOfferCatalog(params) {
430
+ let itemListElements;
431
+ if (params.isOfferCatalogItem) {
432
+ const matchStages = [{ $match: { _id: { $eq: new mongoose_1.Types.ObjectId(params.id) } } }]; // ObjectIdなので注意
433
+ itemListElements = await this.offerCatalogItemModel.aggregate([
434
+ { $unwind: '$itemListElement' },
435
+ ...matchStages,
436
+ {
437
+ $project: {
438
+ _id: 0,
439
+ id: '$itemListElement.id'
422
440
  }
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
- }
441
+ }
442
+ ])
443
+ .exec();
444
+ }
445
+ else {
446
+ const matchStages = [{ $match: { _id: { $eq: params.id } } }];
447
+ itemListElements = await this.offerCatalogModel.aggregate([
448
+ { $unwind: '$itemListElement' },
449
+ ...matchStages,
450
+ {
451
+ $project: {
452
+ _id: 0,
453
+ id: '$itemListElement.id'
436
454
  }
437
- ])
438
- .exec();
439
- }
440
- return (Array.isArray(itemListElements))
441
- ? itemListElements.map((element) => element.id)
442
- : [];
443
- });
455
+ }
456
+ ])
457
+ .exec();
458
+ }
459
+ return (Array.isArray(itemListElements))
460
+ ? itemListElements.map((element) => element.id)
461
+ : [];
444
462
  }
445
463
  /**
446
464
  * 複数サブカタログから集計オファーIDリストを検索する
447
465
  */
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');
466
+ async searchAggregateOfferIdsBySubOfferCatalogs(params) {
467
+ if (!Array.isArray(params.itemListElementIds) || params.itemListElementIds.length === 0) {
468
+ throw new factory.errors.ArgumentNull('itemListElementIds');
469
+ }
470
+ let itemListElements;
471
+ if (params.isOfferCatalogItem) {
472
+ const matchStages = [
473
+ { $match: { _id: { $in: params.id.map((id) => new mongoose_1.Types.ObjectId(id)) } } }, // ObjectIdなので注意
474
+ { $match: { 'itemListElement.id': { $exists: true, $in: params.itemListElementIds } } }
475
+ ];
476
+ itemListElements = await this.offerCatalogItemModel.aggregate([
477
+ { $unwind: '$itemListElement' },
478
+ ...matchStages,
479
+ {
480
+ $group: { _id: '$itemListElement.id' }
481
+ }
482
+ ])
483
+ .exec();
484
+ }
485
+ else {
486
+ // 1カタログしかありえないはず
487
+ if (params.id.length !== 1) {
488
+ throw new factory.errors.Argument('id', 'length must be 1');
452
489
  }
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' }
490
+ const matchStages = [
491
+ { $match: { _id: { $in: params.id } } },
492
+ { $match: { 'itemListElement.id': { $exists: true, $in: params.itemListElementIds } } }
493
+ ];
494
+ itemListElements = await this.offerCatalogModel.aggregate([
495
+ { $unwind: '$itemListElement' },
496
+ ...matchStages,
497
+ {
498
+ $project: {
499
+ _id: '$itemListElement.id'
464
500
  }
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
501
  }
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
- });
502
+ ])
503
+ .exec();
504
+ }
505
+ return (Array.isArray(itemListElements))
506
+ ? itemListElements.map((element) => element._id)
507
+ : [];
492
508
  }
493
509
  }
494
510
  exports.OfferRepo = OfferRepo;