@chevre/domain 24.0.0-alpha.4 → 24.0.0-alpha.41

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 (490) hide show
  1. package/lib/chevre/errorHandler.js +1 -1
  2. package/lib/chevre/factory/transaction.d.ts +0 -3
  3. package/lib/chevre/repo/accountTitle.d.ts +7 -3
  4. package/lib/chevre/repo/accountTransaction.js +1 -2
  5. package/lib/chevre/repo/action/acceptCOAOffer.d.ts +32 -0
  6. package/lib/chevre/repo/action/acceptCOAOffer.js +73 -0
  7. package/lib/chevre/repo/action/acceptPay.d.ts +40 -0
  8. package/lib/chevre/repo/action/acceptPay.js +93 -0
  9. package/lib/chevre/repo/action/actionProcess.d.ts +146 -0
  10. package/lib/chevre/repo/action/actionProcess.js +792 -0
  11. package/lib/chevre/repo/action/authorizeInvoice.d.ts +26 -0
  12. package/lib/chevre/repo/action/authorizeInvoice.js +49 -0
  13. package/lib/chevre/repo/action/authorizeOffer.d.ts +72 -0
  14. package/lib/chevre/repo/action/authorizeOffer.js +139 -0
  15. package/lib/chevre/repo/action/authorizePaymentMethod.d.ts +48 -0
  16. package/lib/chevre/repo/action/authorizePaymentMethod.js +64 -0
  17. package/lib/chevre/repo/action/authorizeProductOffer.d.ts +26 -0
  18. package/lib/chevre/repo/action/authorizeProductOffer.js +55 -0
  19. package/lib/chevre/repo/action/authorizeTicketedObject.d.ts +8 -0
  20. package/lib/chevre/repo/action/authorizeTicketedObject.js +11 -0
  21. package/lib/chevre/repo/action/checkMovieTicket.d.ts +111 -0
  22. package/lib/chevre/repo/action/checkMovieTicket.js +200 -0
  23. package/lib/chevre/repo/action/checkThing.d.ts +8 -0
  24. package/lib/chevre/repo/action/checkThing.js +13 -0
  25. package/lib/chevre/repo/action/pay.d.ts +9 -0
  26. package/lib/chevre/repo/action/pay.js +13 -0
  27. package/lib/chevre/repo/action/refund.d.ts +9 -0
  28. package/lib/chevre/repo/action/refund.js +13 -0
  29. package/lib/chevre/repo/action.d.ts +25 -269
  30. package/lib/chevre/repo/action.js +338 -1233
  31. package/lib/chevre/repo/additionalProperty.js +2 -2
  32. package/lib/chevre/repo/advanceBookingRequirement.d.ts +1 -3
  33. package/lib/chevre/repo/advanceBookingRequirement.js +2 -2
  34. package/lib/chevre/repo/aggregateAction.d.ts +102 -0
  35. package/lib/chevre/repo/aggregateAction.js +378 -0
  36. package/lib/chevre/repo/aggregateOffer.d.ts +12 -12
  37. package/lib/chevre/repo/aggregateOffer.js +4 -3
  38. package/lib/chevre/repo/assetTransaction.d.ts +47 -26
  39. package/lib/chevre/repo/assetTransaction.js +13 -6
  40. package/lib/chevre/repo/categoryCode.d.ts +9 -6
  41. package/lib/chevre/repo/categoryCode.js +2 -2
  42. package/lib/chevre/repo/comment.d.ts +7 -3
  43. package/lib/chevre/repo/creativeWork.d.ts +10 -9
  44. package/lib/chevre/repo/creativeWork.js +4 -3
  45. package/lib/chevre/repo/customer.d.ts +8 -3
  46. package/lib/chevre/repo/customer.js +2 -2
  47. package/lib/chevre/repo/customerType.d.ts +1 -1
  48. package/lib/chevre/repo/customerType.js +1 -0
  49. package/lib/chevre/repo/emailMessage.js +1 -1
  50. package/lib/chevre/repo/event.d.ts +12 -24
  51. package/lib/chevre/repo/event.js +32 -27
  52. package/lib/chevre/repo/eventOffer.d.ts +3 -3
  53. package/lib/chevre/repo/eventOffer.js +1 -0
  54. package/lib/chevre/repo/eventSellerMakesOffer.d.ts +3 -3
  55. package/lib/chevre/repo/eventSellerMakesOffer.js +1 -0
  56. package/lib/chevre/repo/eventSeries.d.ts +11 -5
  57. package/lib/chevre/repo/eventSeries.js +2 -2
  58. package/lib/chevre/repo/identity.d.ts +13 -6
  59. package/lib/chevre/repo/identityProvider.d.ts +8 -21
  60. package/lib/chevre/repo/identityProvider.js +2 -2
  61. package/lib/chevre/repo/issuer.d.ts +8 -8
  62. package/lib/chevre/repo/issuer.js +3 -3
  63. package/lib/chevre/repo/member.d.ts +7 -3
  64. package/lib/chevre/repo/merchantReturnPolicy.d.ts +7 -3
  65. package/lib/chevre/repo/merchantReturnPolicy.js +1 -1
  66. package/lib/chevre/repo/message.js +1 -1
  67. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.d.ts +4 -3
  68. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -3
  69. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +4 -3
  70. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +5 -4
  71. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +3 -2
  72. package/lib/chevre/repo/mongoose/schemas/action.d.ts +4 -3
  73. package/lib/chevre/repo/mongoose/schemas/actionRecipe.d.ts +4 -3
  74. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +5 -4
  75. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.d.ts +3 -2
  76. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.d.ts +4 -3
  77. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.d.ts +3 -2
  78. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.d.ts +4 -3
  79. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -3
  80. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +4 -3
  81. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +4 -3
  82. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +5 -4
  83. package/lib/chevre/repo/mongoose/schemas/civicStructure.d.ts +3 -2
  84. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +4 -3
  85. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +5 -4
  86. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +5 -4
  87. package/lib/chevre/repo/mongoose/schemas/customerType.d.ts +5 -4
  88. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +4 -3
  89. package/lib/chevre/repo/mongoose/schemas/event.d.ts +3 -2
  90. package/lib/chevre/repo/mongoose/schemas/eventOffer.d.ts +4 -3
  91. package/lib/chevre/repo/mongoose/schemas/eventSeries.d.ts +3 -2
  92. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +4 -3
  93. package/lib/chevre/repo/mongoose/schemas/identityProvider.d.ts +4 -3
  94. package/lib/chevre/repo/mongoose/schemas/issuer.d.ts +4 -3
  95. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +4 -3
  96. package/lib/chevre/repo/mongoose/schemas/member.d.ts +4 -3
  97. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +4 -3
  98. package/lib/chevre/repo/mongoose/schemas/message.d.ts +5 -4
  99. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.d.ts +4 -3
  100. package/lib/chevre/repo/mongoose/schemas/note.d.ts +3 -2
  101. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +4 -3
  102. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.d.ts +4 -3
  103. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +5 -4
  104. package/lib/chevre/repo/mongoose/schemas/order.d.ts +4 -3
  105. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +6 -5
  106. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +78 -71
  107. package/lib/chevre/repo/mongoose/schemas/paymentService.d.ts +4 -3
  108. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.d.ts +4 -3
  109. package/lib/chevre/repo/mongoose/schemas/pendingReservation.d.ts +4 -3
  110. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.d.ts +4 -3
  111. package/lib/chevre/repo/mongoose/schemas/place.d.ts +3 -2
  112. package/lib/chevre/repo/mongoose/schemas/potentialAction.d.ts +4 -3
  113. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +6 -3
  114. package/lib/chevre/repo/mongoose/schemas/product.d.ts +4 -3
  115. package/lib/chevre/repo/mongoose/schemas/productModel.d.ts +6 -5
  116. package/lib/chevre/repo/mongoose/schemas/productOffer.d.ts +3 -2
  117. package/lib/chevre/repo/mongoose/schemas/project.d.ts +4 -3
  118. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +5 -4
  119. package/lib/chevre/repo/mongoose/schemas/reserveInterface.d.ts +4 -3
  120. package/lib/chevre/repo/mongoose/schemas/role.d.ts +3 -2
  121. package/lib/chevre/repo/mongoose/schemas/schedule.d.ts +5 -4
  122. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +4 -3
  123. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.d.ts +4 -3
  124. package/lib/chevre/repo/mongoose/schemas/service/availableHour.d.ts +3 -2
  125. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +5 -4
  126. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +4 -3
  127. package/lib/chevre/repo/mongoose/schemas/task.d.ts +4 -3
  128. package/lib/chevre/repo/mongoose/schemas/task.js +1 -0
  129. package/lib/chevre/repo/mongoose/schemas/ticket.d.ts +4 -3
  130. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +7 -4
  131. package/lib/chevre/repo/mongoose/schemas/transaction.js +31 -0
  132. package/lib/chevre/repo/mongoose/schemas/transactionNumber.d.ts +3 -2
  133. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +4 -3
  134. package/lib/chevre/repo/mongoose/schemas/webSite.d.ts +4 -3
  135. package/lib/chevre/repo/mongoose/virtuals.d.ts +3 -0
  136. package/lib/chevre/repo/mongoose/virtuals.js +2 -0
  137. package/lib/chevre/repo/movieTicketType.d.ts +3 -4
  138. package/lib/chevre/repo/movieTicketType.js +2 -2
  139. package/lib/chevre/repo/note.d.ts +3 -3
  140. package/lib/chevre/repo/note.js +1 -0
  141. package/lib/chevre/repo/noteAboutOrder.d.ts +1 -1
  142. package/lib/chevre/repo/noteAboutOrder.js +1 -0
  143. package/lib/chevre/repo/offer/offerInCatalogReadOnly.d.ts +1 -3
  144. package/lib/chevre/repo/offer/unitPriceInCatalog.d.ts +1 -3
  145. package/lib/chevre/repo/offerCatalog.d.ts +11 -7
  146. package/lib/chevre/repo/offerCatalog.js +6 -4
  147. package/lib/chevre/repo/offerCatalogItem.d.ts +3 -3
  148. package/lib/chevre/repo/offerCatalogItem.js +5 -4
  149. package/lib/chevre/repo/offerItemCondition.js +2 -2
  150. package/lib/chevre/repo/order.d.ts +8 -7
  151. package/lib/chevre/repo/order.js +3 -1
  152. package/lib/chevre/repo/orderInTransaction.d.ts +8 -0
  153. package/lib/chevre/repo/orderInTransaction.js +16 -2
  154. package/lib/chevre/repo/orderNumber.d.ts +3 -2
  155. package/lib/chevre/repo/orderNumber.js +23 -28
  156. package/lib/chevre/repo/ownershipInfo.d.ts +15 -8
  157. package/lib/chevre/repo/ownershipInfo.js +13 -10
  158. package/lib/chevre/repo/passport.d.ts +1 -1
  159. package/lib/chevre/repo/passport.js +1 -1
  160. package/lib/chevre/repo/paymentService.d.ts +1 -16
  161. package/lib/chevre/repo/paymentService.js +7 -7
  162. package/lib/chevre/repo/paymentServiceChannel.d.ts +1 -3
  163. package/lib/chevre/repo/paymentServiceChannel.js +2 -2
  164. package/lib/chevre/repo/pendingReservation.js +0 -1
  165. package/lib/chevre/repo/person.js +2 -2
  166. package/lib/chevre/repo/place/busStop.js +1 -1
  167. package/lib/chevre/repo/place/hasPOS.js +3 -3
  168. package/lib/chevre/repo/place/movieTheater.d.ts +7 -3
  169. package/lib/chevre/repo/place/movieTheater.js +10 -4
  170. package/lib/chevre/repo/place/screeningRoom.d.ts +7 -3
  171. package/lib/chevre/repo/place/screeningRoom.js +2 -2
  172. package/lib/chevre/repo/place/seat.d.ts +8 -10
  173. package/lib/chevre/repo/place/seat.js +3 -0
  174. package/lib/chevre/repo/potentialAction.d.ts +8 -29
  175. package/lib/chevre/repo/potentialAction.js +2 -2
  176. package/lib/chevre/repo/priceSpecification.d.ts +51 -24
  177. package/lib/chevre/repo/priceSpecification.js +11 -15
  178. package/lib/chevre/repo/product.d.ts +13 -13
  179. package/lib/chevre/repo/product.js +4 -3
  180. package/lib/chevre/repo/productModel.d.ts +3 -1
  181. package/lib/chevre/repo/productModel.js +17 -13
  182. package/lib/chevre/repo/productOffer.d.ts +3 -3
  183. package/lib/chevre/repo/productOffer.js +1 -0
  184. package/lib/chevre/repo/project.d.ts +8 -11
  185. package/lib/chevre/repo/rateLimit/offer.js +1 -1
  186. package/lib/chevre/repo/reservation.d.ts +13 -32
  187. package/lib/chevre/repo/reservation.js +36 -48
  188. package/lib/chevre/repo/reserveInterface.js +4 -4
  189. package/lib/chevre/repo/role.d.ts +39 -3
  190. package/lib/chevre/repo/schedule.js +1 -1
  191. package/lib/chevre/repo/seller.d.ts +9 -56
  192. package/lib/chevre/repo/seller.js +2 -2
  193. package/lib/chevre/repo/sellerMakesOffer.d.ts +2 -2
  194. package/lib/chevre/repo/sellerMakesOffer.js +2 -0
  195. package/lib/chevre/repo/sellerReturnPolicy.d.ts +1 -3
  196. package/lib/chevre/repo/sellerReturnPolicy.js +2 -2
  197. package/lib/chevre/repo/task.d.ts +8 -68
  198. package/lib/chevre/repo/task.js +1 -1
  199. package/lib/chevre/repo/transaction/placeOrder.d.ts +140 -0
  200. package/lib/chevre/repo/transaction/placeOrder.js +528 -0
  201. package/lib/chevre/repo/transaction/returnOrder.d.ts +45 -0
  202. package/lib/chevre/repo/transaction/returnOrder.js +341 -0
  203. package/lib/chevre/repo/transaction.d.ts +71 -142
  204. package/lib/chevre/repo/transaction.js +727 -632
  205. package/lib/chevre/repo/transactionProcess.js +1 -1
  206. package/lib/chevre/repo/trip.d.ts +4 -12
  207. package/lib/chevre/repo/trip.js +3 -3
  208. package/lib/chevre/repo/webSite.d.ts +1 -3
  209. package/lib/chevre/repo/webSite.js +3 -2
  210. package/lib/chevre/repository.d.ts +74 -5
  211. package/lib/chevre/repository.js +162 -13
  212. package/lib/chevre/service/aggregation/system.d.ts +10 -10
  213. package/lib/chevre/service/aggregation/system.js +9 -9
  214. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +1 -17
  215. package/lib/chevre/service/assetTransaction/moneyTransfer.js +8 -5
  216. package/lib/chevre/service/assetTransaction/pay/check.d.ts +5 -4
  217. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +1 -1
  218. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +2 -1
  219. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +7 -4
  220. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +5 -4
  221. package/lib/chevre/service/assetTransaction/pay/start/factory.d.ts +51 -3
  222. package/lib/chevre/service/assetTransaction/pay/start/factory.js +60 -22
  223. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.d.ts +10 -0
  224. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.js +88 -0
  225. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +63 -0
  226. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.js +56 -0
  227. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +2 -2
  228. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +9 -1
  229. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +1 -11
  230. package/lib/chevre/service/assetTransaction/pay/start.d.ts +10 -0
  231. package/lib/chevre/service/assetTransaction/pay/start.js +8 -132
  232. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +6 -3
  233. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +1 -41
  234. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +1 -11
  235. package/lib/chevre/service/assetTransaction/reserve/start.js +2 -5
  236. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.d.ts +19 -4
  237. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +7 -1
  238. package/lib/chevre/service/assetTransaction.d.ts +1 -1
  239. package/lib/chevre/service/delivery/factory.js +44 -40
  240. package/lib/chevre/service/delivery/product/factory.js +2 -4
  241. package/lib/chevre/service/delivery/reservation/factory.js +17 -22
  242. package/lib/chevre/service/event/saveScreeningEvents.js +2 -2
  243. package/lib/chevre/service/event.js +1 -1
  244. package/lib/chevre/service/notification/notifyByEmail.d.ts +1 -1
  245. package/lib/chevre/service/notification/triggerWebhook.d.ts +7 -6
  246. package/lib/chevre/service/notification/triggerWebhook.js +1 -1
  247. package/lib/chevre/service/offer/any.d.ts +1 -1
  248. package/lib/chevre/service/offer/event/authorize/factory.js +0 -40
  249. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +0 -2
  250. package/lib/chevre/service/offer/event/authorize.d.ts +6 -5
  251. package/lib/chevre/service/offer/event/authorize.js +27 -25
  252. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +17 -15
  253. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +4 -4
  254. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +2 -1
  255. package/lib/chevre/service/offer/event/searchOffersByIds.js +2 -1
  256. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +0 -2
  257. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -0
  258. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.d.ts +2 -0
  259. package/lib/chevre/service/offer/event/voidTransaction.d.ts +10 -3
  260. package/lib/chevre/service/offer/event/voidTransaction.js +20 -16
  261. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +8 -3
  262. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +6 -5
  263. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +16 -5
  264. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +7 -7
  265. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +0 -2
  266. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +7 -5
  267. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +3 -10
  268. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +21 -13
  269. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.d.ts +1 -1
  270. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +19 -10
  271. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +2 -2
  272. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +2 -1
  273. package/lib/chevre/service/offer/product/factory.d.ts +5 -5
  274. package/lib/chevre/service/offer/product/factory.js +13 -5
  275. package/lib/chevre/service/offer/product.d.ts +9 -7
  276. package/lib/chevre/service/offer/product.js +21 -17
  277. package/lib/chevre/service/offer.d.ts +1 -2
  278. package/lib/chevre/service/offer.js +1 -3
  279. package/lib/chevre/service/order/confirmPayTransaction.d.ts +1 -3
  280. package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
  281. package/lib/chevre/service/order/deleteOrder.js +2 -2
  282. package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +2 -2
  283. package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -1
  284. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.d.ts +16 -0
  285. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +97 -0
  286. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts +21 -0
  287. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +86 -0
  288. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +22 -0
  289. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +112 -0
  290. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +22 -0
  291. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.js +74 -0
  292. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +25 -0
  293. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +111 -0
  294. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +16 -0
  295. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.js +74 -0
  296. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +8 -30
  297. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +39 -349
  298. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  299. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +6 -7
  300. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  301. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +6 -5
  302. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +7 -6
  303. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  304. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +54 -37
  305. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  306. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +82 -66
  307. package/lib/chevre/service/order/payOrder.d.ts +2 -2
  308. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +12 -8
  309. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +41 -26
  310. package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +0 -1
  311. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +3 -28
  312. package/lib/chevre/service/order/placeOrder/factory.js +5 -6
  313. package/lib/chevre/service/order/placeOrder.d.ts +17 -12
  314. package/lib/chevre/service/order/placeOrder.js +7 -2
  315. package/lib/chevre/service/order/returnOrder.d.ts +2 -2
  316. package/lib/chevre/service/order/returnOrder.js +1 -1
  317. package/lib/chevre/service/order/sendOrder.d.ts +6 -6
  318. package/lib/chevre/service/order/sendOrder.js +14 -10
  319. package/lib/chevre/service/order.d.ts +3 -6
  320. package/lib/chevre/service/order.js +3 -9
  321. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +6 -6
  322. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +5 -8
  323. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +8 -5
  324. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +14 -10
  325. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +34 -17
  326. package/lib/chevre/service/payment/any/authorize.d.ts +104 -0
  327. package/lib/chevre/service/payment/any/authorize.js +239 -0
  328. package/lib/chevre/service/payment/any/factory.js +1 -0
  329. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
  330. package/lib/chevre/service/payment/any/findAcceptAction.js +95 -0
  331. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +42 -0
  332. package/lib/chevre/service/payment/any/findAuthorizeAction.js +84 -0
  333. package/lib/chevre/service/payment/any/findCheckAction.d.ts +45 -0
  334. package/lib/chevre/service/payment/any/findCheckAction.js +90 -0
  335. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +29 -0
  336. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +188 -0
  337. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +13 -5
  338. package/lib/chevre/service/payment/any/onPayActionCompleted.js +10 -2
  339. package/lib/chevre/service/payment/any/onPaymentStatusChanged.d.ts +10 -5
  340. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +21 -11
  341. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.d.ts +12 -10
  342. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +9 -6
  343. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +30 -0
  344. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +126 -0
  345. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +2 -2
  346. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +66 -0
  347. package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
  348. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +2 -1
  349. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +34 -0
  350. package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
  351. package/lib/chevre/service/payment/any.d.ts +8 -305
  352. package/lib/chevre/service/payment/any.js +17 -857
  353. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.d.ts +8 -6
  354. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +4 -4
  355. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.d.ts +8 -6
  356. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +3 -3
  357. package/lib/chevre/service/payment/creditCard/authorize.d.ts +3 -2
  358. package/lib/chevre/service/payment/creditCard/authorize.js +2 -2
  359. package/lib/chevre/service/payment/creditCard/payCreditCard.d.ts +6 -0
  360. package/lib/chevre/service/payment/creditCard/refundCreditCard.d.ts +6 -0
  361. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +1 -1
  362. package/lib/chevre/service/payment/creditCard/voidTransaction.d.ts +9 -8
  363. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -7
  364. package/lib/chevre/service/payment/faceToFace.d.ts +10 -0
  365. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +2 -1
  366. package/lib/chevre/service/payment/factory.js +4 -2
  367. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +8 -0
  368. package/lib/chevre/service/payment/movieTicket/authorize.js +1 -1
  369. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +3 -3
  370. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
  371. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.d.ts +12 -0
  372. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.js +72 -0
  373. package/lib/chevre/service/payment/movieTicket/payMovieTicket/processSeatInfoSync.d.ts +8 -0
  374. package/lib/chevre/service/payment/movieTicket/payMovieTicket/processSeatInfoSync.js +29 -0
  375. package/lib/chevre/service/payment/movieTicket/payMovieTicket.d.ts +7 -1
  376. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +4 -71
  377. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.d.ts +6 -0
  378. package/lib/chevre/service/payment/movieTicket/validation.d.ts +11 -11
  379. package/lib/chevre/service/payment/movieTicket/validation.js +50 -32
  380. package/lib/chevre/service/payment/movieTicket/voidTransaction.d.ts +6 -0
  381. package/lib/chevre/service/payment/paymentCard.d.ts +10 -0
  382. package/lib/chevre/service/permit.js +4 -2
  383. package/lib/chevre/service/reserve/cancelReservation.js +5 -12
  384. package/lib/chevre/service/reserve/confirmReservation.js +1 -1
  385. package/lib/chevre/service/reserve/factory.d.ts +1 -1
  386. package/lib/chevre/service/reserve/findByCode.d.ts +1 -1
  387. package/lib/chevre/service/reserve/findByCode.js +2 -1
  388. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +1 -2
  389. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +1 -0
  390. package/lib/chevre/service/reserve/searchByOrder.d.ts +1 -1
  391. package/lib/chevre/service/reserve/searchByOrder.js +2 -1
  392. package/lib/chevre/service/reserve/verifyToken4reservation.js +2 -1
  393. package/lib/chevre/service/task/acceptCOAOffer.js +11 -6
  394. package/lib/chevre/service/task/authorizePayment.js +22 -5
  395. package/lib/chevre/service/task/checkMovieTicket.js +3 -3
  396. package/lib/chevre/service/task/checkResource.js +2 -2
  397. package/lib/chevre/service/task/confirmPayTransaction.js +2 -2
  398. package/lib/chevre/service/task/confirmReserveTransaction.js +4 -2
  399. package/lib/chevre/service/task/deletePerson.js +0 -1
  400. package/lib/chevre/service/task/deleteTransaction.js +5 -1
  401. package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -0
  402. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +4 -2
  403. package/lib/chevre/service/task/onOrderPaymentCompleted.js +2 -2
  404. package/lib/chevre/service/task/onResourceUpdated.js +1 -1
  405. package/lib/chevre/service/task/pay.js +9 -1
  406. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.d.ts +6 -0
  407. package/lib/chevre/service/task/payment/payByTask.d.ts +21 -12
  408. package/lib/chevre/service/task/payment/payByTask.js +3 -2
  409. package/lib/chevre/service/task/payment/refundByTask.d.ts +6 -0
  410. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +8 -0
  411. package/lib/chevre/service/task/placeOrder.js +10 -4
  412. package/lib/chevre/service/task/publishPaymentUrl.js +11 -5
  413. package/lib/chevre/service/task/refund.js +6 -0
  414. package/lib/chevre/service/task/returnOrder.js +4 -4
  415. package/lib/chevre/service/task/returnPayTransaction.js +4 -3
  416. package/lib/chevre/service/task/returnReserveTransaction.js +2 -1
  417. package/lib/chevre/service/task/sendOrder.js +4 -4
  418. package/lib/chevre/service/task/syncResourcesFromCOA.js +2 -0
  419. package/lib/chevre/service/task/voidPayTransaction.js +10 -4
  420. package/lib/chevre/service/task/voidPayment.js +8 -0
  421. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +7 -6
  422. package/lib/chevre/service/task/voidReserveTransaction.js +8 -3
  423. package/lib/chevre/service/transaction/deleteTransaction.d.ts +4 -0
  424. package/lib/chevre/service/transaction/deleteTransaction.js +49 -49
  425. package/lib/chevre/service/transaction/placeOrder/confirm/validation/factory.d.ts +1 -1
  426. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.d.ts +2 -2
  427. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  428. package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +3 -3
  429. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +4 -6
  430. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +10 -5
  431. package/lib/chevre/service/transaction/placeOrder/confirm.js +77 -53
  432. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +4 -16
  433. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +7 -6
  434. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -1
  435. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.d.ts → issueOrderNumberIfNotExist.d.ts} +4 -4
  436. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.js → issueOrderNumberIfNotExist.js} +21 -13
  437. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.d.ts +2 -2
  438. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +3 -3
  439. package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -3
  440. package/lib/chevre/service/transaction/placeOrder/start.js +2 -2
  441. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +23 -0
  442. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +126 -0
  443. package/lib/chevre/service/transaction/placeOrder.d.ts +2 -1
  444. package/lib/chevre/service/transaction/placeOrder.js +3 -1
  445. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +2 -1
  446. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -2
  447. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +5 -3
  448. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +1 -1
  449. package/lib/chevre/service/transaction/returnOrder.d.ts +16 -14
  450. package/lib/chevre/service/transaction/returnOrder.js +4 -4
  451. package/lib/chevre/service/transaction.d.ts +8 -24
  452. package/lib/chevre/service/transaction.js +6 -122
  453. package/lib/chevre/service/validation/validateOrder.js +7 -7
  454. package/lib/chevre/service.d.ts +0 -4
  455. package/lib/chevre/service.js +1 -12
  456. package/package.json +5 -5
  457. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +0 -9
  458. package/lib/chevre/repo/mongoose/schemas/telemetry.js +0 -80
  459. package/lib/chevre/repo/telemetry.d.ts +0 -9
  460. package/lib/chevre/repo/telemetry.js +0 -14
  461. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +0 -37
  462. package/lib/chevre/service/offer/moneyTransfer/authorize.js +0 -247
  463. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.d.ts +0 -16
  464. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +0 -96
  465. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.d.ts +0 -9
  466. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +0 -91
  467. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.d.ts +0 -9
  468. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +0 -78
  469. package/lib/chevre/service/offer/moneyTransfer.d.ts +0 -5
  470. package/lib/chevre/service/offer/moneyTransfer.js +0 -11
  471. package/lib/chevre/service/report/ownershipInfo.d.ts +0 -27
  472. package/lib/chevre/service/report/ownershipInfo.js +0 -39
  473. package/lib/chevre/service/report/telemetry.d.ts +0 -309
  474. package/lib/chevre/service/report/telemetry.js +0 -449
  475. package/lib/chevre/service/report.d.ts +0 -6
  476. package/lib/chevre/service/report.js +0 -33
  477. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +0 -6
  478. package/lib/chevre/service/task/confirmMoneyTransfer.js +0 -19
  479. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +0 -6
  480. package/lib/chevre/service/task/returnMoneyTransfer.js +0 -55
  481. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +0 -6
  482. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +0 -22
  483. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.d.ts +0 -9
  484. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +0 -138
  485. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +0 -2
  486. package/lib/chevre/service/transaction/moneyTransfer/factory.js +0 -55
  487. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +0 -9
  488. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +0 -65
  489. package/lib/chevre/service/transaction/moneyTransfer.d.ts +0 -69
  490. package/lib/chevre/service/transaction/moneyTransfer.js +0 -649
@@ -29,658 +29,259 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.ActionRepo = void 0;
30
30
  const moment_1 = __importDefault(require("moment"));
31
31
  const factory = __importStar(require("../factory"));
32
- const settings_1 = require("../settings");
33
- const action_1 = require("./mongoose/schemas/action");
34
- const actionRecipe_1 = require("./mongoose/schemas/actionRecipe");
35
- const AVAILABLE_PROJECT_FIELDS = [
36
- 'project',
37
- 'actionStatus',
38
- 'typeOf',
39
- 'description',
40
- 'agent',
41
- 'recipient',
42
- 'result',
43
- 'error',
44
- 'object',
45
- 'startDate',
46
- 'endDate',
47
- 'purpose',
48
- 'potentialActions',
49
- 'amount',
50
- 'fromLocation',
51
- 'toLocation',
52
- 'instrument',
53
- 'location',
54
- 'replacer',
55
- 'targetCollection',
56
- 'sameAs',
57
- 'cancelAction',
58
- 'about',
59
- 'target',
60
- 'identifier'
61
- ];
32
+ // import { createSchema as createRecipeSchema, IModel as IActionRecipeModel, modelName as recipeModelName } from './mongoose/schemas/actionRecipe';
33
+ const actionProcess_1 = require("./action/actionProcess");
62
34
  /**
63
35
  * アクションリポジトリ
64
36
  */
65
- class ActionRepo {
66
- actionModel;
67
- actionRecipeModel;
68
- constructor(connection) {
69
- this.actionModel = connection.model(action_1.modelName, (0, action_1.createSchema)());
70
- this.actionRecipeModel = connection.model(actionRecipe_1.modelName, (0, actionRecipe_1.createSchema)());
71
- }
72
- static CREATE_MONGO_CONDITIONS(params) {
73
- const andConditions = [];
74
- const idIn = params.id?.$in;
75
- if (Array.isArray(idIn)) {
76
- andConditions.push({ _id: { $in: idIn } });
77
- }
78
- const idNin = params.id?.$nin;
79
- if (Array.isArray(idNin)) {
80
- andConditions.push({ _id: { $nin: idNin } });
81
- }
82
- const projectIdEq = params.project?.id?.$eq;
83
- if (typeof projectIdEq === 'string') {
84
- andConditions.push({
85
- 'project.id': {
86
- $eq: projectIdEq
87
- }
88
- });
89
- }
90
- const agentTypeOfIn = params.agent?.typeOf?.$in;
91
- if (Array.isArray(agentTypeOfIn)) {
92
- andConditions.push({
93
- 'agent.typeOf': {
94
- $exists: true,
95
- $in: agentTypeOfIn
96
- }
97
- });
98
- }
99
- const agentIdIn = params.agent?.id?.$in;
100
- if (Array.isArray(agentIdIn)) {
101
- andConditions.push({
102
- 'agent.id': {
103
- $exists: true,
104
- $in: agentIdIn
105
- }
106
- });
107
- }
108
- const instrumentTransactionNumberEq = params.instrument?.transactionNumber?.$eq;
109
- if (typeof instrumentTransactionNumberEq === 'string') {
110
- andConditions.push({ 'instrument.transactionNumber': { $exists: true, $eq: instrumentTransactionNumberEq } });
111
- }
112
- const instrumentTypeOfEq = params.instrument?.typeOf?.$eq;
113
- if (typeof instrumentTypeOfEq === 'string') {
114
- andConditions.push({ 'instrument.typeOf': { $exists: true, $eq: instrumentTypeOfEq } });
115
- }
116
- const instrumentIdentifierEq = params.instrument?.identifier?.$eq;
117
- if (typeof instrumentIdentifierEq === 'string') {
118
- andConditions.push({ 'instrument.identifier': { $exists: true, $eq: instrumentIdentifierEq } });
119
- }
120
- const instrumentIdEq = params.instrument?.id?.$eq;
121
- if (typeof instrumentIdEq === 'string') {
122
- andConditions.push({ 'instrument.id': { $exists: true, $eq: instrumentIdEq } });
123
- }
124
- const instrumentOrderNumberEq = params.instrument?.orderNumber?.$eq;
125
- if (typeof instrumentOrderNumberEq === 'string') {
126
- andConditions.push({ 'instrument.orderNumber': { $exists: true, $eq: instrumentOrderNumberEq } });
127
- }
128
- const locationIdEq = params.location?.id?.$eq;
129
- if (typeof locationIdEq === 'string') {
130
- andConditions.push({
131
- 'location.id': {
132
- $exists: true,
133
- $eq: locationIdEq
134
- }
135
- });
136
- }
137
- const locationIdentifierEq = params.location?.identifier?.$eq;
138
- if (typeof locationIdentifierEq === 'string') {
139
- andConditions.push({
140
- 'location.identifier': {
141
- $exists: true,
142
- $eq: locationIdentifierEq
143
- }
144
- });
145
- }
146
- const objectMovieTicketsIdentifierEq = params.object?.movieTickets?.identifier?.$eq;
147
- if (typeof objectMovieTicketsIdentifierEq === 'string') {
148
- andConditions.push({
149
- 'object.movieTickets.identifier': {
150
- $exists: true,
151
- $eq: objectMovieTicketsIdentifierEq
152
- }
153
- });
154
- }
155
- const objectMovieTicketsServiceOutputReservationForIdEq = params.object?.movieTickets?.serviceOutput?.reservationFor?.id?.$eq;
156
- if (typeof objectMovieTicketsServiceOutputReservationForIdEq === 'string') {
157
- andConditions.push({
158
- 'object.movieTickets.serviceOutput.reservationFor.id': {
159
- $exists: true,
160
- $eq: objectMovieTicketsServiceOutputReservationForIdEq
161
- }
162
- });
163
- }
164
- const objectPaymentMethodIdEq = params.object?.paymentMethodId?.$eq;
165
- if (typeof objectPaymentMethodIdEq === 'string') {
166
- andConditions.push({
167
- 'object.paymentMethodId': {
168
- $exists: true,
169
- $eq: objectPaymentMethodIdEq
170
- }
171
- });
172
- }
173
- const objectObjectPaymentMethodIdEq = params.object?.object?.paymentMethodId?.$eq;
174
- if (typeof objectObjectPaymentMethodIdEq === 'string') {
175
- andConditions.push({
176
- 'object.object.paymentMethodId': {
177
- $exists: true,
178
- $eq: objectObjectPaymentMethodIdEq
179
- }
180
- });
181
- }
182
- const objectReservationForIdEq = params.object?.reservationFor?.id?.$eq;
183
- if (typeof objectReservationForIdEq === 'string') {
184
- andConditions.push({
185
- 'object.reservationFor.id': {
186
- $exists: true,
187
- $eq: objectReservationForIdEq
188
- }
189
- });
190
- }
191
- const objectReservationNumberEq = params.object?.reservationNumber?.$eq;
192
- if (typeof objectReservationNumberEq === 'string') {
193
- andConditions.push({
194
- 'object.reservationNumber': {
195
- $exists: true,
196
- $eq: objectReservationNumberEq
197
- }
198
- });
199
- }
200
- const objectReservationNumberIn = params.object?.reservationNumber?.$in;
201
- if (Array.isArray(objectReservationNumberIn)) {
202
- andConditions.push({
203
- 'object.reservationNumber': {
204
- $exists: true,
205
- $in: objectReservationNumberIn
206
- }
207
- });
208
- }
209
- const objectPaymentMethodAccountIdEq = params.object?.paymentMethod?.accountId?.$eq;
210
- if (typeof objectPaymentMethodAccountIdEq === 'string') {
211
- andConditions.push({
212
- 'object.paymentMethod.accountId': {
213
- $exists: true,
214
- $eq: objectPaymentMethodAccountIdEq
215
- }
216
- });
217
- }
218
- const objectPaymentMethodPaymentMethodIdEq = params.object?.paymentMethod?.paymentMethodId?.$eq;
219
- if (typeof objectPaymentMethodPaymentMethodIdEq === 'string') {
220
- andConditions.push({
221
- 'object.paymentMethod.paymentMethodId': {
222
- $exists: true,
223
- $eq: objectPaymentMethodPaymentMethodIdEq
224
- }
225
- });
226
- }
227
- const objectPaymentMethodPaymentMethodIdIn = params.object?.paymentMethod?.paymentMethodId?.$in;
228
- if (Array.isArray(objectPaymentMethodPaymentMethodIdIn)) {
229
- andConditions.push({
230
- 'object.paymentMethod.paymentMethodId': {
231
- $exists: true,
232
- $in: objectPaymentMethodPaymentMethodIdIn
233
- }
234
- });
235
- }
236
- const objectPaymentMethodTypeOfEq = params.object?.paymentMethod?.typeOf?.$eq;
237
- if (typeof objectPaymentMethodTypeOfEq === 'string') {
238
- andConditions.push({
239
- 'object.paymentMethod.typeOf': {
240
- $exists: true,
241
- $eq: objectPaymentMethodTypeOfEq
242
- }
243
- });
244
- }
245
- const objectTypeOfEq = params.object?.typeOf?.$eq;
246
- if (typeof objectTypeOfEq === 'string') {
247
- andConditions.push({
248
- 'object.typeOf': {
249
- $exists: true,
250
- $eq: objectTypeOfEq
251
- }
252
- });
253
- }
254
- const objectTypeOfIn = params.object?.typeOf?.$in;
255
- if (Array.isArray(objectTypeOfIn)) {
256
- andConditions.push({
257
- 'object.typeOf': {
258
- $exists: true,
259
- $in: objectTypeOfIn
260
- }
261
- });
262
- }
263
- const objectIdEq = params.object?.id?.$eq;
264
- if (typeof objectIdEq === 'string') {
265
- andConditions.push({
266
- 'object.id': {
267
- $exists: true,
268
- $eq: objectIdEq
269
- }
270
- });
271
- }
272
- const objectIdIn = params.object?.id?.$in;
273
- if (Array.isArray(objectIdIn)) {
274
- andConditions.push({
275
- 'object.id': {
276
- $exists: true,
277
- $in: objectIdIn
278
- }
279
- });
280
- }
281
- const objectOrderNumberIn = params.object?.orderNumber?.$in;
282
- if (Array.isArray(objectOrderNumberIn)) {
283
- andConditions.push({
284
- 'object.orderNumber': {
285
- $exists: true,
286
- $in: objectOrderNumberIn
287
- }
288
- });
289
- }
290
- const objectEventIdIn = params.object?.event?.id?.$in;
291
- if (Array.isArray(objectEventIdIn)) {
292
- andConditions.push({
293
- 'object.event.id': {
294
- $exists: true,
295
- $in: objectEventIdIn
296
- }
297
- });
298
- }
299
- // discontinue(2024-06-18~)
300
- // const objectAcceptedOfferSeatNumberIn =
301
- // params.object?.acceptedOffer?.itemOffered?.serviceOutput?.reservedTicket?.ticketedSeat?.seatNumber?.$in;
302
- // if (Array.isArray(objectAcceptedOfferSeatNumberIn)) {
303
- // andConditions.push({
304
- // 'object.acceptedOffer.itemOffered.serviceOutput.reservedTicket.ticketedSeat.seatNumber': {
305
- // $exists: true,
306
- // $in: objectAcceptedOfferSeatNumberIn
307
- // }
308
- // });
309
- // }
310
- const objectTransactionNumberEq = params.object?.transactionNumber?.$eq;
311
- if (typeof objectTransactionNumberEq === 'string') {
312
- andConditions.push({ 'object.transactionNumber': { $exists: true, $eq: objectTransactionNumberEq } });
313
- }
314
- if (typeof params.typeOf === 'string') {
315
- andConditions.push({
316
- typeOf: params.typeOf
317
- });
318
- }
319
- else {
320
- const typeOfEq = params.typeOf?.$eq;
321
- if (typeof typeOfEq === 'string') {
322
- andConditions.push({
323
- typeOf: { $eq: typeOfEq }
324
- });
325
- }
326
- }
327
- const actionStatusIn = params.actionStatus?.$in;
328
- if (Array.isArray(actionStatusIn)) {
329
- andConditions.push({
330
- actionStatus: { $in: actionStatusIn }
331
- });
332
- }
333
- if (Array.isArray(params.actionStatusTypes)) {
334
- andConditions.push({
335
- actionStatus: { $in: params.actionStatusTypes }
336
- });
337
- }
338
- const startDateGte = params.startFrom;
339
- if (startDateGte instanceof Date) {
340
- andConditions.push({
341
- startDate: { $gte: startDateGte }
342
- });
343
- }
344
- const startDateLte = params.startThrough;
345
- if (startDateLte instanceof Date) {
346
- andConditions.push({
347
- startDate: { $lte: startDateLte }
348
- });
349
- }
350
- const fromLocationTypeOfIn = params.fromLocation?.typeOf?.$in;
351
- if (Array.isArray(fromLocationTypeOfIn)) {
352
- andConditions.push({
353
- 'fromLocation.typeOf': {
354
- $exists: true,
355
- $in: fromLocationTypeOfIn
356
- }
357
- });
358
- }
359
- const fromLocationAccountNumberIn = params.fromLocation?.accountNumber?.$in;
360
- if (Array.isArray(fromLocationAccountNumberIn)) {
361
- andConditions.push({
362
- 'fromLocation.accountNumber': {
363
- $exists: true,
364
- $in: fromLocationAccountNumberIn
365
- }
366
- });
367
- }
368
- const fromLocationAccountTypeIn = params.fromLocation?.accountType?.$in;
369
- if (Array.isArray(fromLocationAccountTypeIn)) {
370
- andConditions.push({
371
- 'fromLocation.accountType': {
372
- $exists: true,
373
- $in: fromLocationAccountTypeIn
374
- }
375
- });
376
- }
377
- const toLocationTypeOfIn = params.toLocation?.typeOf?.$in;
378
- if (Array.isArray(toLocationTypeOfIn)) {
379
- andConditions.push({
380
- 'toLocation.typeOf': {
381
- $exists: true,
382
- $in: toLocationTypeOfIn
383
- }
384
- });
385
- }
386
- const toLocationAccountNumberIn = params.toLocation?.accountNumber?.$in;
387
- if (Array.isArray(toLocationAccountNumberIn)) {
388
- andConditions.push({
389
- 'toLocation.accountNumber': {
390
- $exists: true,
391
- $in: toLocationAccountNumberIn
392
- }
393
- });
394
- }
395
- const toLocationAccountTypeIn = params.toLocation?.accountType?.$in;
396
- if (Array.isArray(toLocationAccountTypeIn)) {
397
- andConditions.push({
398
- 'toLocation.accountType': {
399
- $exists: true,
400
- $in: toLocationAccountTypeIn
401
- }
402
- });
403
- }
404
- const purposeTypeOfIn = params.purpose?.typeOf?.$in;
405
- if (Array.isArray(purposeTypeOfIn)) {
406
- andConditions.push({
407
- 'purpose.typeOf': {
408
- $exists: true,
409
- $in: purposeTypeOfIn
410
- }
411
- });
412
- }
413
- const purposeIdIn = params.purpose?.id?.$in;
414
- if (Array.isArray(purposeIdIn)) {
415
- andConditions.push({
416
- 'purpose.id': {
417
- $exists: true,
418
- $in: purposeIdIn
419
- }
420
- });
421
- }
422
- const purposeOrderNumberIn = params.purpose?.orderNumber?.$in;
423
- if (Array.isArray(purposeOrderNumberIn)) {
424
- andConditions.push({
425
- 'purpose.orderNumber': {
426
- $exists: true,
427
- $in: purposeOrderNumberIn
428
- }
429
- });
430
- }
431
- const resultTypeOfIn = params.result?.typeOf?.$in;
432
- if (Array.isArray(resultTypeOfIn)) {
433
- andConditions.push({
434
- 'result.typeOf': {
435
- $exists: true,
436
- $in: resultTypeOfIn
437
- }
438
- });
439
- }
440
- const resultIdIn = params.result?.id?.$in;
441
- if (Array.isArray(resultIdIn)) {
442
- andConditions.push({
443
- 'result.id': {
444
- $exists: true,
445
- $in: resultIdIn
446
- }
447
- });
448
- }
449
- const resultOrderNumberIn = params.result?.orderNumber?.$in;
450
- if (Array.isArray(resultOrderNumberIn)) {
451
- andConditions.push({
452
- 'result.orderNumber': {
453
- $exists: true,
454
- $in: resultOrderNumberIn
455
- }
456
- });
457
- }
458
- const resultCodeIn = params.result?.code?.$in;
459
- if (Array.isArray(resultCodeIn)) {
460
- andConditions.push({
461
- 'result.code': {
462
- $exists: true,
463
- $in: resultCodeIn
464
- }
465
- });
466
- }
467
- // sameAs(2024-04-23~)
468
- const sameAsIdEq = params.sameAs?.id?.$eq;
469
- if (typeof sameAsIdEq === 'string') {
470
- andConditions.push({ 'sameAs.id': { $exists: true, $eq: sameAsIdEq } });
471
- }
472
- const aboutOrderNumberEq = params.about?.orderNumber?.$eq;
473
- if (typeof aboutOrderNumberEq === 'string') {
474
- andConditions.push({ 'about.orderNumber': { $exists: true, $eq: aboutOrderNumberEq } });
475
- }
476
- return andConditions;
477
- }
478
- /**
479
- * アクション検索
480
- */
481
- async search(params, inclusion) {
482
- const conditions = ActionRepo.CREATE_MONGO_CONDITIONS(params);
483
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
484
- if (Array.isArray(inclusion) && inclusion.length > 0) {
485
- positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
486
- }
487
- const projection = {
488
- _id: 0,
489
- id: { $toString: '$_id' },
490
- ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
491
- };
492
- const query = this.actionModel.find((conditions.length > 0) ? { $and: conditions } : {}, projection);
493
- if (typeof params.limit === 'number' && params.limit > 0) {
494
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
495
- query.limit(params.limit)
496
- .skip(params.limit * (page - 1));
497
- }
498
- /* istanbul ignore else */
499
- if (params.sort?.startDate !== undefined) {
500
- query.sort({ startDate: params.sort.startDate });
501
- }
502
- // const explainResult = await (<any>query).explain();
503
- // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
504
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
505
- .lean() // 2024-08-26~
506
- .exec();
507
- }
508
- /**
509
- * アクション開始
510
- */
511
- async start(attributes, options) {
512
- const startDate = new Date();
513
- const creatingAction = {
514
- ...attributes,
515
- actionStatus: factory.actionStatusType.ActiveActionStatus,
516
- startDate
517
- };
518
- // reimplemnt with insertMany(2024-08-29~)
519
- const result = await this.actionModel.insertMany(creatingAction, { rawResult: true });
520
- const id = result.insertedIds?.[0]?.toHexString();
521
- if (typeof id !== 'string') {
522
- throw new factory.errors.Internal('action not saved');
523
- }
524
- // add recipe(2024-06-09~)
525
- const savingRecipe = options?.recipe;
526
- if (savingRecipe?.typeOf === 'Recipe') {
527
- await this.upsertRecipe({ ...savingRecipe, recipeFor: { id, typeOf: creatingAction.typeOf } });
528
- }
529
- return { id, startDate, typeOf: creatingAction.typeOf };
530
- }
531
- async completeWithVoid(params) {
532
- if (params.recipe?.typeOf === 'Recipe') {
533
- await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
534
- }
535
- const doc = await this.actionModel.findOneAndUpdate({
536
- _id: { $eq: params.id },
537
- typeOf: { $eq: params.typeOf }
538
- }, {
539
- $set: {
540
- actionStatus: factory.actionStatusType.CompletedActionStatus,
541
- result: params.result,
542
- endDate: new Date()
543
- }
544
- }, { new: false, projection: { _id: 1 } })
545
- .lean()
546
- .exec();
547
- if (doc === null) {
548
- throw new factory.errors.NotFound(this.actionModel.modelName);
549
- }
550
- }
551
- /**
552
- * アクション取消
553
- */
554
- async cancelWithVoid(params) {
555
- const cancelDate = new Date();
556
- const cancelAction = (params.cancelAction !== undefined)
557
- ? {
558
- ...params.cancelAction,
559
- endTime: cancelDate,
560
- typeOf: factory.actionType.CancelAction
561
- }
562
- : undefined;
563
- const doc = await this.actionModel.findOneAndUpdate({
564
- _id: { $eq: params.id },
565
- typeOf: { $eq: params.typeOf },
566
- actionStatus: { $ne: factory.actionStatusType.CanceledActionStatus } // 冪等性確保(2024-05-26~)
567
- }, {
568
- $set: {
569
- actionStatus: factory.actionStatusType.CanceledActionStatus,
570
- ...(cancelAction !== undefined) ? { cancelAction } : undefined // cancelAction連携(2024-05-26~)
571
- }
572
- }, { new: false, projection: { _id: 1 } })
573
- .lean()
574
- .exec();
575
- if (doc === null) {
576
- // 既にCanceledActionStatusであればok
577
- const existingAction = await this.findById({ id: params.id, typeOf: params.typeOf }, ['actionStatus'], []);
578
- if (existingAction.actionStatus !== factory.actionStatusType.CanceledActionStatus) {
579
- throw new factory.errors.NotFound(this.actionModel.modelName);
580
- }
581
- }
582
- // endDateが存在しなければセット(2024-04-22~)
583
- await this.actionModel.updateOne({
584
- _id: { $eq: params.id },
585
- endDate: { $exists: false }
586
- }, { $set: { endDate: cancelDate } })
587
- .exec();
588
- }
589
- /**
590
- * アクション失敗
591
- */
592
- async giveUp(params) {
593
- const actionError = (Array.isArray(params.error))
594
- ? params.error.map((e) => ({ ...e, message: e.message, name: e.name }))
595
- : { ...params.error, message: params.error.message, name: params.error.name };
596
- if (params.recipe?.typeOf === 'Recipe') {
597
- await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
598
- }
599
- const doc = await this.actionModel.findOneAndUpdate({
600
- typeOf: { $eq: params.typeOf },
601
- _id: { $eq: params.id }
602
- }, {
603
- $set: {
604
- actionStatus: factory.actionStatusType.FailedActionStatus,
605
- error: actionError,
606
- endDate: new Date()
607
- }
608
- }, { new: true, projection: { _id: 1 } })
609
- .lean()
610
- .exec();
611
- if (doc === null) {
612
- throw new factory.errors.NotFound(this.actionModel.modelName);
613
- }
614
- }
615
- /**
616
- * アクション再開
617
- */
618
- async reStart(params) {
619
- const doc = await this.actionModel.findOneAndUpdate({
620
- _id: { $eq: params.id },
621
- typeOf: { $eq: params.typeOf },
622
- actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
623
- }, {
624
- $set: {
625
- actionStatus: factory.actionStatusType.ActiveActionStatus,
626
- startDate: new Date()
627
- },
628
- $unset: { endDate: 1 }
629
- }, { new: false, projection: { _id: 1 } })
630
- .lean()
631
- .exec();
632
- if (doc === null) {
633
- throw new factory.errors.NotFound(this.actionModel.modelName);
634
- }
635
- // add recipe(2024-06-09~)
636
- if (params.recipe?.typeOf === 'Recipe') {
637
- await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
638
- }
639
- }
37
+ class ActionRepo extends actionProcess_1.ActionProcessRepo {
38
+ // private readonly actionModel: IActionModel;
39
+ // private readonly actionRecipeModel: IActionRecipeModel;
40
+ // constructor(connection: Connection) {
41
+ // this.actionModel = connection.model(modelName, createSchema());
42
+ // this.actionRecipeModel = connection.model(recipeModelName, createRecipeSchema());
43
+ // }
640
44
  /**
641
- * 一定期間ActiveActionStatusのアクションをFailedActionStatusにする
45
+ * 汎用アクション検索
642
46
  */
643
- async giveUpStartDatePassedCertainPeriod(params) {
644
- return this.actionModel.updateMany({
645
- actionStatus: { $eq: factory.actionStatusType.ActiveActionStatus },
646
- // 一定期間過ぎたもの
647
- startDate: { $lt: params.startDate.$lt },
648
- ...(typeof params.id?.$eq === 'string') ? { _id: { $eq: params.id.$eq } } : undefined
649
- }, {
650
- actionStatus: factory.actionStatusType.FailedActionStatus,
651
- error: params.error,
652
- endDate: new Date()
653
- })
654
- .exec();
655
- }
656
- async findById(params, inclusion, exclusion) {
657
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
658
- if (Array.isArray(inclusion) && inclusion.length > 0) {
659
- positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
660
- }
661
- else {
662
- if (Array.isArray(exclusion) && exclusion.length > 0) {
663
- positiveProjectionFields = positiveProjectionFields.filter((key) => !exclusion.includes(key));
664
- }
665
- }
666
- const projection = {
667
- _id: 0,
668
- id: { $toString: '$_id' },
669
- ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
670
- };
671
- const doc = await this.actionModel.findOne({
672
- typeOf: { $eq: params.typeOf },
673
- _id: { $eq: params.id }
674
- }, projection)
675
- .lean() // 2024-08-26~
676
- .exec();
677
- if (doc === null) {
678
- throw new factory.errors.NotFound(this.actionModel.modelName);
679
- }
680
- return doc;
681
- }
47
+ async findActionsByType(params, inclusion) {
48
+ return (this.findAnyActions(params, inclusion));
49
+ }
50
+ // /**
51
+ // * アクション開始
52
+ // */
53
+ // public async start<T extends factory.actionType>(
54
+ // attributes: factory.action.IAttributes<T, any, any>,
55
+ // options?: {
56
+ // recipe?: IRecipeAsActionAttributes;
57
+ // }
58
+ // ): Promise<Pick<IAction<T>, 'id' | 'typeOf' | 'startDate'>> {
59
+ // const startDate = new Date();
60
+ // const creatingAction: Omit<factory.action.IAction<factory.action.IAttributes<T, any, any>>, 'id'> = {
61
+ // ...attributes,
62
+ // actionStatus: factory.actionStatusType.ActiveActionStatus,
63
+ // startDate
64
+ // };s
65
+ // // reimplemnt with insertMany(2024-08-29~)
66
+ // const result = await this.actionModel.insertMany(creatingAction, { rawResult: true });
67
+ // const id = result.insertedIds?.[0]?.toHexString();
68
+ // if (typeof id !== 'string') {
69
+ // throw new factory.errors.Internal('action not saved');
70
+ // }
71
+ // // add recipe(2024-06-09~)
72
+ // const savingRecipe = options?.recipe;
73
+ // if (savingRecipe?.typeOf === 'Recipe') {
74
+ // await this.upsertRecipe({ ...savingRecipe, recipeFor: { id, typeOf: creatingAction.typeOf } });
75
+ // }
76
+ // return { id, startDate, typeOf: creatingAction.typeOf };
77
+ // }
78
+ // public async completeWithVoid(params: {
79
+ // typeOf: factory.actionType;
80
+ // id: string;
81
+ // result: any;
82
+ // recipe?: IRecipeAsActionAttributes;
83
+ // }): Promise<void> {
84
+ // if (params.recipe?.typeOf === 'Recipe') {
85
+ // await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
86
+ // }
87
+ // const doc = await this.actionModel.findOneAndUpdate(
88
+ // {
89
+ // _id: { $eq: params.id },
90
+ // typeOf: { $eq: params.typeOf }
91
+ // },
92
+ // {
93
+ // $set: {
94
+ // actionStatus: factory.actionStatusType.CompletedActionStatus,
95
+ // result: params.result,
96
+ // endDate: new Date()
97
+ // }
98
+ // },
99
+ // { new: false, projection: { _id: 1 } }
100
+ // )
101
+ // .lean<{ _id: ObjectId }>()
102
+ // .exec();
103
+ // if (doc === null) {
104
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
105
+ // }
106
+ // }
107
+ // /**
108
+ // * アクション取消
109
+ // */
110
+ // public async cancelWithVoid(params: {
111
+ // typeOf: factory.actionType.AcceptAction | factory.actionType.AuthorizeAction; // 現時点でAcceptAction,AuthorizeActionのみ対応
112
+ // id: string;
113
+ // cancelAction?: Pick<ICancelActionAction, 'agent' | 'sameAs' | 'startTime'>;
114
+ // }): Promise<void> {
115
+ // const cancelDate = new Date();
116
+ // const cancelAction: ICancelActionAction | undefined = (params.cancelAction !== undefined)
117
+ // ? {
118
+ // ...params.cancelAction,
119
+ // endTime: cancelDate,
120
+ // typeOf: factory.actionType.CancelAction
121
+ // }
122
+ // : undefined;
123
+ // const doc = await this.actionModel.findOneAndUpdate(
124
+ // {
125
+ // _id: { $eq: params.id },
126
+ // typeOf: { $eq: params.typeOf },
127
+ // actionStatus: { $ne: factory.actionStatusType.CanceledActionStatus } // 冪等性確保(2024-05-26~)
128
+ // },
129
+ // {
130
+ // $set: {
131
+ // actionStatus: factory.actionStatusType.CanceledActionStatus,
132
+ // ...(cancelAction !== undefined) ? { cancelAction } : undefined // cancelAction連携(2024-05-26~)
133
+ // }
134
+ // },
135
+ // { new: false, projection: { _id: 1 } }
136
+ // )
137
+ // .lean<{ _id: ObjectId }>()
138
+ // .exec();
139
+ // if (doc === null) {
140
+ // // 既にCanceledActionStatusであればok
141
+ // const existingAction = <Pick<IAction<typeof params.typeOf>, 'actionStatus'>>
142
+ // await this.findById({ id: params.id, typeOf: params.typeOf }, ['actionStatus'], []);
143
+ // if (existingAction.actionStatus !== factory.actionStatusType.CanceledActionStatus) {
144
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
145
+ // }
146
+ // }
147
+ // // endDateが存在しなければセット(2024-04-22~)
148
+ // await this.actionModel.updateOne(
149
+ // {
150
+ // _id: { $eq: params.id },
151
+ // endDate: { $exists: false }
152
+ // },
153
+ // { $set: { endDate: cancelDate } }
154
+ // )
155
+ // .exec();
156
+ // }
157
+ // /**
158
+ // * アクション失敗
159
+ // */
160
+ // public async giveUp(params: {
161
+ // typeOf: factory.actionType;
162
+ // id: string;
163
+ // error: Error | Error[];
164
+ // recipe?: IRecipeAsActionAttributes;
165
+ // }): Promise<void> {
166
+ // const actionError: IActionError | IActionError[] = (Array.isArray(params.error))
167
+ // ? params.error.map((e) => ({ ...e, message: e.message, name: e.name }))
168
+ // : { ...params.error, message: params.error.message, name: params.error.name };
169
+ // if (params.recipe?.typeOf === 'Recipe') {
170
+ // await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
171
+ // }
172
+ // const doc = await this.actionModel.findOneAndUpdate(
173
+ // {
174
+ // typeOf: { $eq: params.typeOf },
175
+ // _id: { $eq: params.id }
176
+ // },
177
+ // {
178
+ // $set: {
179
+ // actionStatus: factory.actionStatusType.FailedActionStatus,
180
+ // error: actionError,
181
+ // endDate: new Date()
182
+ // }
183
+ // },
184
+ // { new: true, projection: { _id: 1 } }
185
+ // )
186
+ // .lean<{ _id: ObjectId }>()
187
+ // .exec();
188
+ // if (doc === null) {
189
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
190
+ // }
191
+ // }
192
+ // /**
193
+ // * アクション再開
194
+ // */
195
+ // public async reStart(params: {
196
+ // typeOf: factory.actionType;
197
+ // id: string;
198
+ // recipe?: IRecipeAsActionAttributes;
199
+ // }): Promise<void> {
200
+ // const doc = await this.actionModel.findOneAndUpdate(
201
+ // {
202
+ // _id: { $eq: params.id },
203
+ // typeOf: { $eq: params.typeOf },
204
+ // actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
205
+ // },
206
+ // {
207
+ // $set: {
208
+ // actionStatus: factory.actionStatusType.ActiveActionStatus,
209
+ // startDate: new Date()
210
+ // },
211
+ // $unset: { endDate: 1 }
212
+ // },
213
+ // { new: false, projection: { _id: 1 } }
214
+ // )
215
+ // .lean<{ _id: ObjectId }>()
216
+ // .exec();
217
+ // if (doc === null) {
218
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
219
+ // }
220
+ // // add recipe(2024-06-09~)
221
+ // if (params.recipe?.typeOf === 'Recipe') {
222
+ // await this.upsertRecipe({ ...params.recipe, recipeFor: { id: params.id, typeOf: params.typeOf } });
223
+ // }
224
+ // }
225
+ // /**
226
+ // * 一定期間ActiveActionStatusのアクションをFailedActionStatusにする
227
+ // */
228
+ // public async giveUpStartDatePassedCertainPeriod(params: {
229
+ // id?: { $eq?: string };
230
+ // error: any;
231
+ // startDate: { $lt: Date };
232
+ // }): Promise<any> {
233
+ // return this.actionModel.updateMany(
234
+ // {
235
+ // actionStatus: { $eq: factory.actionStatusType.ActiveActionStatus },
236
+ // // 一定期間過ぎたもの
237
+ // startDate: { $lt: params.startDate.$lt },
238
+ // ...(typeof params.id?.$eq === 'string') ? { _id: { $eq: params.id.$eq } } : undefined
239
+ // },
240
+ // {
241
+ // actionStatus: factory.actionStatusType.FailedActionStatus,
242
+ // error: params.error,
243
+ // endDate: new Date()
244
+ // }
245
+ // )
246
+ // .exec();
247
+ // }
248
+ // public async findById<T extends factory.actionType>(
249
+ // params: {
250
+ // typeOf: T;
251
+ // id: string;
252
+ // },
253
+ // inclusion?: IKeyOfProjection[],
254
+ // exclusion?: IKeyOfProjection[]
255
+ // ): Promise<IAction<T>> {
256
+ // let positiveProjectionFields: IKeyOfProjection[] = AVAILABLE_PROJECT_FIELDS;
257
+ // if (Array.isArray(inclusion) && inclusion.length > 0) {
258
+ // positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
259
+ // } else {
260
+ // if (Array.isArray(exclusion) && exclusion.length > 0) {
261
+ // positiveProjectionFields = positiveProjectionFields.filter((key) => !exclusion.includes(key));
262
+ // }
263
+ // }
264
+ // const projection: ProjectionType<IAction<T>> = {
265
+ // _id: 0,
266
+ // id: { $toString: '$_id' },
267
+ // ...Object.fromEntries<1>(positiveProjectionFields.map((key) => ([key, 1])))
268
+ // };
269
+ // const doc = await this.actionModel.findOne(
270
+ // {
271
+ // typeOf: { $eq: params.typeOf },
272
+ // _id: { $eq: params.id }
273
+ // },
274
+ // projection
275
+ // )
276
+ // .lean<IAction<T>>() // 2024-08-26~
277
+ // .exec();
278
+ // if (doc === null) {
279
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
280
+ // }
281
+ // return doc;
282
+ // }
682
283
  async findPayAction(params) {
683
- const payActions = await this.search({
284
+ const payActions = await this.findActionsByType({
684
285
  limit: 1,
685
286
  page: 1,
686
287
  actionStatus: (Array.isArray(params.actionStatus?.$in))
@@ -696,83 +297,7 @@ class ActionRepo {
696
297
  * 取引に対するアクションを検索する
697
298
  */
698
299
  async searchByPurpose(params) {
699
- const andConditions = [
700
- { 'purpose.typeOf': { $exists: true, $eq: params.purpose.typeOf } },
701
- { 'purpose.id': { $exists: true, $eq: params.purpose.id } }
702
- ];
703
- // const idNin = params.id?.$nin;
704
- // if (Array.isArray(idNin)) {
705
- // andConditions.push({ _id: { $nin: idNin } });
706
- // }
707
- const objectPaymentMethodIdEq = params.object?.paymentMethodId?.$eq;
708
- if (typeof objectPaymentMethodIdEq === 'string') {
709
- andConditions.push({ 'object.paymentMethodId': { $exists: true, $eq: objectPaymentMethodIdEq } });
710
- }
711
- const objectTypeOfEq = params.object?.typeOf?.$eq;
712
- if (typeof objectTypeOfEq === 'string') {
713
- andConditions.push({ 'object.typeOf': { $exists: true, $eq: objectTypeOfEq } });
714
- }
715
- if (typeof params.typeOf === 'string') {
716
- andConditions.push({ typeOf: { $eq: params.typeOf } });
717
- }
718
- const actionStatusEq = params.actionStatus?.$eq;
719
- if (typeof actionStatusEq === 'string') {
720
- andConditions.push({ actionStatus: { $eq: actionStatusEq } });
721
- }
722
- const positiveProjectionFields = [
723
- 'project',
724
- 'actionStatus',
725
- 'typeOf',
726
- 'description',
727
- 'agent',
728
- 'recipient',
729
- 'result',
730
- 'error',
731
- 'object',
732
- 'startDate',
733
- 'endDate',
734
- 'purpose',
735
- 'potentialActions',
736
- 'instrument',
737
- 'location',
738
- 'sameAs',
739
- 'cancelAction',
740
- 'identifier'
741
- ];
742
- const projection = {
743
- _id: 0,
744
- id: { $toString: '$_id' },
745
- ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
746
- };
747
- const query = this.actionModel.find((andConditions.length > 0) ? { $and: andConditions } : {}, projection);
748
- if (typeof params.sort?.startDate === 'number') {
749
- query.sort({ startDate: params.sort.startDate });
750
- }
751
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
752
- .lean()
753
- .exec();
754
- // return <Promise<IAction4transaction<T>[]>><Promise<unknown[]>>this.search<T>(
755
- // {
756
- // purpose: {
757
- // id: { $in: [params.purpose.id] },
758
- // typeOf: { $in: [params.purpose.typeOf] }
759
- // },
760
- // object: {
761
- // ...(typeof params.object?.typeOf?.$eq === 'string')
762
- // ? { typeOf: { $eq: params.object.typeOf.$eq } }
763
- // : undefined,
764
- // ...(typeof params.object?.paymentMethodId?.$eq === 'string')
765
- // ? { paymentMethodId: { $eq: params.object.paymentMethodId.$eq } }
766
- // : undefined
767
- // },
768
- // ...(typeof params.actionStatus?.$eq === 'string') ? { actionStatus: { $in: [params.actionStatus.$eq] } } : undefined,
769
- // ...(typeof params.typeOf === 'string') ? { typeOf: { $eq: params.typeOf } } : undefined,
770
- // ...(Array.isArray(params.id?.$nin)) ? { id: { $nin: params.id?.$nin } } : undefined,
771
- // ...(typeof params.sort?.startDate === 'number') ? { sort: params.sort } : undefined
772
- // },
773
- // [],
774
- // []
775
- // );
300
+ return (this.findAnyActionsByPurpose(params));
776
301
  }
777
302
  /**
778
303
  * 注文番号から、注文に対するアクションを検索する
@@ -791,7 +316,7 @@ class ActionRepo {
791
316
  const projection = {
792
317
  _id: 0,
793
318
  id: { $toString: '$_id' },
794
- ...Object.fromEntries(AVAILABLE_PROJECT_FIELDS.map((key) => ([key, 1])))
319
+ ...Object.fromEntries(actionProcess_1.AVAILABLE_PROJECT_FIELDS.map((key) => ([key, 1])))
795
320
  };
796
321
  const query = this.actionModel.find(filter, projection);
797
322
  // .select({ __v: 0, createdAt: 0, updatedAt: 0 });
@@ -803,70 +328,70 @@ class ActionRepo {
803
328
  .lean() // 2024-08-26~
804
329
  .exec();
805
330
  }
806
- async searchBySameAs(params) {
807
- const projection = {
808
- _id: 0,
809
- id: { $toString: '$_id' },
810
- actionStatus: 1,
811
- error: 1,
812
- purpose: 1
813
- };
814
- const query = this.actionModel.find({
815
- typeOf: { $eq: params.typeOf.$eq },
816
- 'sameAs.id': { $exists: true, $eq: params.sameAs.id.$eq },
817
- ...(typeof params.purpose?.id.$eq === 'string')
818
- ? { 'purpose.id': { $exists: true, $eq: params.purpose.id.$eq } }
819
- : undefined
820
- }, projection)
821
- // .select({ _id: 1, actionStatus: 1, error: 1, purpose: 1 })
822
- .limit(1);
823
- return query
824
- .lean() // 2024-08-26~
825
- .exec();
826
- }
827
331
  async deleteByProject(params) {
828
332
  await this.actionModel.deleteMany({
829
333
  'project.id': { $eq: params.project.id }
830
334
  })
831
335
  .exec();
832
336
  }
833
- async reCompleteAuthorizeEventOfferAction(params) {
834
- return this.actionModel.findOneAndUpdate({
835
- // typeOf: factory.actionType.AuthorizeAction,
836
- _id: { $eq: params.id },
837
- // ActiveActionStatus->CompletedActionStatusで再実装(2024-01-15~)
838
- // actionStatus: factory.actionStatusType.CompletedActionStatus
839
- actionStatus: { $eq: factory.actionStatusType.ActiveActionStatus }
840
- }, {
841
- $set: {
842
- actionStatus: factory.actionStatusType.CompletedActionStatus,
843
- object: params.object,
844
- result: params.result,
845
- endDate: new Date()
846
- }
847
- }, { new: true, projection: { _id: 1 } })
848
- .lean()
849
- .exec()
850
- .then((doc) => {
851
- if (doc === null) {
852
- throw new factory.errors.NotFound(this.actionModel.modelName);
853
- }
854
- });
855
- }
856
- async updateById(params) {
857
- await this.actionModel.updateOne({ _id: { $eq: params.id } }, params.update)
858
- .exec();
859
- }
860
- async findByIdAndUpdate(params) {
861
- await this.actionModel.findOneAndUpdate({ _id: { $eq: params.id } }, params.update, { projection: { _id: 1 } })
862
- .lean()
863
- .exec()
864
- .then((doc) => {
865
- if (doc === null) {
866
- throw new factory.errors.NotFound(this.actionModel.modelName);
867
- }
868
- });
869
- }
337
+ // public async reCompleteAuthorizeEventOfferAction(params: {
338
+ // id: string;
339
+ // object: factory.action.authorize.offer.eventService.IObject;
340
+ // result: factory.action.authorize.offer.eventService.IResult;
341
+ // }): Promise<void> {
342
+ // return this.actionModel.findOneAndUpdate(
343
+ // {
344
+ // // typeOf: factory.actionType.AuthorizeAction,
345
+ // _id: { $eq: params.id },
346
+ // // ActiveActionStatus->CompletedActionStatusで再実装(2024-01-15~)
347
+ // // actionStatus: factory.actionStatusType.CompletedActionStatus
348
+ // actionStatus: { $eq: factory.actionStatusType.ActiveActionStatus }
349
+ // },
350
+ // {
351
+ // $set: {
352
+ // actionStatus: factory.actionStatusType.CompletedActionStatus,
353
+ // object: params.object,
354
+ // result: params.result,
355
+ // endDate: new Date()
356
+ // }
357
+ // },
358
+ // { new: true, projection: { _id: 1 } }
359
+ // )
360
+ // .lean<{ _id: ObjectId }>()
361
+ // .exec()
362
+ // .then((doc) => {
363
+ // if (doc === null) {
364
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
365
+ // }
366
+ // });
367
+ // }
368
+ // public async updateById(params: {
369
+ // id: string;
370
+ // update: any;
371
+ // }): Promise<void> {
372
+ // await this.actionModel.updateOne(
373
+ // { _id: { $eq: params.id } },
374
+ // params.update
375
+ // )
376
+ // .exec();
377
+ // }
378
+ // public async findByIdAndUpdate(params: {
379
+ // id: string;
380
+ // update: UpdateQuery<IAction<factory.actionType>>;
381
+ // }): Promise<void> {
382
+ // await this.actionModel.findOneAndUpdate(
383
+ // { _id: { $eq: params.id } },
384
+ // params.update,
385
+ // { projection: { _id: 1 } }
386
+ // )
387
+ // .lean<{ _id: ObjectId }>()
388
+ // .exec()
389
+ // .then((doc) => {
390
+ // if (doc === null) {
391
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
392
+ // }
393
+ // });
394
+ // }
870
395
  /**
871
396
  * イベントと入場ゲート指定で予約使用アクションを集計する
872
397
  * discontinue(2024-12-26~)
@@ -927,96 +452,6 @@ class ActionRepo {
927
452
  // ])
928
453
  // .exec();
929
454
  // }
930
- async searchYkknInfoByCheckRecipe(filter) {
931
- const filterQuery = {
932
- _id: { $eq: filter.id },
933
- 'project.id': { $eq: filter.project.id },
934
- 'purpose.id': { $exists: true, $eq: filter.purpose.id },
935
- typeOf: { $eq: factory.actionType.CheckAction },
936
- actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
937
- };
938
- const actionDoc = await this.actionModel.findOne(filterQuery, { _id: 1 }, { lean: true })
939
- .exec();
940
- if (actionDoc === null) {
941
- throw new factory.errors.NotFound(this.actionModel.modelName);
942
- }
943
- const filterQuery4recipe = {
944
- 'recipeFor.id': { $eq: filter.id }
945
- };
946
- const projectStage = {
947
- _id: 0,
948
- knyknrNo: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.knyknrNo',
949
- ykknshTyp: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.ykknInfo.ykknshTyp',
950
- eishhshkTyp: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.ykknInfo.eishhshkTyp',
951
- ykknKnshbtsmiNum: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.ykknInfo.ykknKnshbtsmiNum',
952
- knshknhmbiUnip: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.ykknInfo.knshknhmbiUnip',
953
- kijUnip: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.ykknInfo.kijUnip'
954
- };
955
- const aggregate = this.actionRecipeModel.aggregate([
956
- { $unwind: '$step' },
957
- { $unwind: '$step.itemListElement' },
958
- { $unwind: '$step.itemListElement.itemListElement' },
959
- { $unwind: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut' },
960
- { $unwind: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.ykknInfo' },
961
- { $match: filterQuery4recipe },
962
- { $project: projectStage }
963
- ]);
964
- if (typeof filter.limit === 'number' && filter.limit > 0) {
965
- const page = (typeof filter.page === 'number' && filter.page > 0) ? filter.page : 1;
966
- aggregate.limit(filter.limit * page)
967
- .skip(filter.limit * (page - 1));
968
- }
969
- return aggregate
970
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
971
- .exec();
972
- }
973
- async searchMkknInfoByCheckRecipe(filter) {
974
- const filterQuery = {
975
- _id: { $eq: filter.id },
976
- 'project.id': { $eq: filter.project.id },
977
- 'purpose.id': { $exists: true, $eq: filter.purpose.id },
978
- typeOf: { $eq: factory.actionType.CheckAction },
979
- actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
980
- };
981
- const actionDoc = this.actionModel.findOne(filterQuery, { _id: 1 }, { lean: true })
982
- .exec();
983
- if (actionDoc === null) {
984
- throw new factory.errors.NotFound(this.actionModel.modelName);
985
- }
986
- const filterQuery4recipe = {
987
- 'recipeFor.id': { $eq: filter.id }
988
- };
989
- const projectStage = {
990
- _id: 0,
991
- knyknrNo: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.knyknrNo',
992
- mkknshTyp: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.mkknshTyp',
993
- mkknKnshbtsmiNum: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.mkknKnshbtsmiNum',
994
- mkjyTyp: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.mkjyTyp',
995
- yykDt: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.yykDt',
996
- shyJeiDt: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.shyJeiDt',
997
- shyStCd: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.shyStCd',
998
- shyScrnCd: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.shyScrnCd',
999
- shySkhnCd: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.shySkhnCd',
1000
- shySkhnNm: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo.shySkhnNm'
1001
- };
1002
- const aggregate = this.actionRecipeModel.aggregate([
1003
- { $unwind: '$step' },
1004
- { $unwind: '$step.itemListElement' },
1005
- { $unwind: '$step.itemListElement.itemListElement' },
1006
- { $unwind: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut' },
1007
- { $unwind: '$step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo' },
1008
- { $match: filterQuery4recipe },
1009
- { $project: projectStage }
1010
- ]);
1011
- if (typeof filter.limit === 'number' && filter.limit > 0) {
1012
- const page = (typeof filter.page === 'number' && filter.page > 0) ? filter.page : 1;
1013
- aggregate.limit(filter.limit * page)
1014
- .skip(filter.limit * (page - 1));
1015
- }
1016
- return aggregate
1017
- .option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
1018
- .exec();
1019
- }
1020
455
  /**
1021
456
  * 開始日時を一定期間過ぎたアクションを削除する
1022
457
  */
@@ -1071,20 +506,23 @@ class ActionRepo {
1071
506
  };
1072
507
  });
1073
508
  }
1074
- // public async saveRecipeWithDateCreated(savingRecipe: IRecipeAsDocument & {
1075
- // dateModified: Date;
1076
- // }) {
1077
- // const { typeOf, project, recipeCategory, recipeFor, step, dateCreated, dateModified } = savingRecipe;
509
+ // public async saveActionWithEndDate(savingAction: Omit<factory.action.authorize.invoice.IAction, 'id'>) {
510
+ // const { sameAs, typeOf, project, agent, object, ...updateFields } = savingAction;
1078
511
  // const filter: FilterQuery<factory.recipe.IRecipe> = {
1079
- // 'recipeFor.id': { $eq: recipeFor.id }
512
+ // 'project.id': { $eq: project.id },
513
+ // // 'agent.id': { $exists: true, $eq: agent.id },
514
+ // // 'object.typeOf': { $exists: true, $eq: object.typeOf },
515
+ // 'object.paymentMethodId': { $exists: true, $eq: object.paymentMethodId },
516
+ // typeOf: { $eq: typeOf },
517
+ // 'sameAs.id': { $exists: true, $eq: sameAs.id }
1080
518
  // };
1081
- // const setOnInsert: AnyKeys<IRecipeAsDocument> = { project, typeOf, recipeCategory, recipeFor, dateCreated };
1082
- // const setKeys: AnyKeys<IRecipeAsDocument> = { step, dateModified };
1083
- // const update: UpdateQuery<IRecipeAsDocument> = {
519
+ // const setOnInsert: AnyKeys<IAction<factory.actionType>> = { typeOf, project, agent, object, sameAs };
520
+ // const setKeys: AnyKeys<IAction<factory.actionType>> = updateFields;
521
+ // const update: UpdateQuery<IAction<factory.actionType>> = {
1084
522
  // $setOnInsert: setOnInsert,
1085
523
  // $set: setKeys
1086
524
  // };
1087
- // return this.actionRecipeModel.updateOne<HydratedDocument<IRecipeAsDocument>>(
525
+ // return this.actionModel.updateOne<HydratedDocument<IRecipeAsDocument>>(
1088
526
  // filter,
1089
527
  // update,
1090
528
  // {
@@ -1094,237 +532,25 @@ class ActionRepo {
1094
532
  // )
1095
533
  // .exec();
1096
534
  // }
1097
- async saveActionWithEndDate(savingAction) {
1098
- const { sameAs, typeOf, project, agent, object, ...updateFields } = savingAction;
1099
- const filter = {
1100
- 'project.id': { $eq: project.id },
1101
- // 'agent.id': { $exists: true, $eq: agent.id },
1102
- // 'object.typeOf': { $exists: true, $eq: object.typeOf },
1103
- 'object.paymentMethodId': { $exists: true, $eq: object.paymentMethodId },
1104
- typeOf: { $eq: typeOf },
1105
- 'sameAs.id': { $exists: true, $eq: sameAs.id }
1106
- };
1107
- const setOnInsert = { typeOf, project, agent, object, sameAs };
1108
- const setKeys = updateFields;
1109
- const update = {
1110
- $setOnInsert: setOnInsert,
1111
- $set: setKeys
1112
- };
1113
- return this.actionModel.updateOne(filter, update, {
1114
- upsert: true,
1115
- includeResultMetadata: true
1116
- })
1117
- .exec();
1118
- }
1119
- async findRecipeByAction(params) {
1120
- return this.actionRecipeModel.findOne({
1121
- 'project.id': { $eq: params.project.id },
1122
- 'recipeFor.id': { $eq: params.recipeFor.id }
1123
- }, { step: 1, recipeCategory: 1 }
1124
- // { lean: true }
1125
- )
1126
- .lean()
1127
- .exec();
1128
- // if (result === null) {
1129
- // throw new factory.errors.NotFound(this.actionRecipeModel.modelName);
1130
- // }
1131
- // return result;
1132
- }
1133
- async findIMinimizedPurchaseNumberAuthResultByCheckMovieTicketRecipe(params) {
1134
- const recipe = await this.actionRecipeModel.findOne({
1135
- 'project.id': { $eq: params.project.id },
1136
- 'recipeFor.id': { $eq: params.recipeFor.id }
1137
- }, {
1138
- project: 0,
1139
- typeOf: 0,
1140
- recipeCategory: 0,
1141
- recipeFor: 0,
1142
- dateCreated: 0,
1143
- dateModified: 0,
1144
- 'step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.ykknInfo': 0,
1145
- 'step.itemListElement.itemListElement.afterMedia.knyknrNoInfoOut.mkknInfo': 0
1146
- }, { lean: true })
1147
- .exec();
1148
- return recipe?.step[0]?.itemListElement[0]?.itemListElement[0]?.afterMedia;
1149
- }
1150
- async aggregateAuthorizeEventServiceOfferAction(params) {
1151
- const statuses = await Promise.all([
1152
- factory.actionStatusType.CompletedActionStatus,
1153
- factory.actionStatusType.CanceledActionStatus,
1154
- factory.actionStatusType.FailedActionStatus
1155
- ].map(async (actionStatus) => {
1156
- const matchConditions = {
1157
- startDate: {
1158
- $gte: params.startFrom,
1159
- $lte: params.startThrough
1160
- },
1161
- typeOf: { $eq: params.typeOf },
1162
- actionStatus: { $eq: actionStatus },
1163
- 'object.typeOf': {
1164
- $exists: true,
1165
- $eq: factory.action.authorize.offer.eventService.ObjectType.SeatReservation
1166
- },
1167
- ...(typeof params.project?.id?.$ne === 'string')
1168
- ? { 'project.id': { $ne: params.project.id.$ne } }
1169
- : undefined
1170
- };
1171
- return this.agggregateByStatus({ matchConditions, actionStatus });
1172
- }));
1173
- return { statuses };
1174
- }
1175
- async aggregateAuthorizePaymentAction(params) {
1176
- const statuses = await Promise.all([
1177
- factory.actionStatusType.CompletedActionStatus,
1178
- factory.actionStatusType.CanceledActionStatus,
1179
- factory.actionStatusType.FailedActionStatus
1180
- ].map(async (actionStatus) => {
1181
- const matchConditions = {
1182
- startDate: {
1183
- $gte: params.startFrom,
1184
- $lte: params.startThrough
1185
- },
1186
- typeOf: { $eq: params.typeOf },
1187
- actionStatus: { $eq: actionStatus },
1188
- 'object.typeOf': {
1189
- $exists: true,
1190
- $eq: factory.action.authorize.paymentMethod.any.ResultType.Payment
1191
- },
1192
- ...(typeof params.project?.id?.$ne === 'string')
1193
- ? { 'project.id': { $ne: params.project.id.$ne } }
1194
- : undefined
1195
- };
1196
- return this.agggregateByStatus({ matchConditions, actionStatus });
1197
- }));
1198
- return { statuses };
1199
- }
1200
- async aggregateAuthorizeOrderAction(params) {
1201
- const statuses = await Promise.all([
1202
- factory.actionStatusType.CompletedActionStatus,
1203
- factory.actionStatusType.CanceledActionStatus,
1204
- factory.actionStatusType.FailedActionStatus
1205
- ].map(async (actionStatus) => {
1206
- const matchConditions = {
1207
- startDate: {
1208
- $gte: params.startFrom,
1209
- $lte: params.startThrough
1210
- },
1211
- typeOf: { $eq: params.typeOf },
1212
- actionStatus: { $eq: actionStatus },
1213
- 'object.typeOf': {
1214
- $exists: true,
1215
- $eq: factory.order.OrderType.Order
1216
- },
1217
- ...(typeof params.project?.id?.$ne === 'string')
1218
- ? { 'project.id': { $ne: params.project.id.$ne } }
1219
- : undefined
1220
- };
1221
- return this.agggregateByStatus({ matchConditions, actionStatus });
1222
- }));
1223
- return { statuses };
1224
- }
1225
- async aggregateCancelReservationAction(params) {
1226
- const statuses = await Promise.all([
1227
- factory.actionStatusType.CompletedActionStatus,
1228
- factory.actionStatusType.CanceledActionStatus,
1229
- factory.actionStatusType.FailedActionStatus
1230
- ].map(async (actionStatus) => {
1231
- const matchConditions = {
1232
- startDate: {
1233
- $gte: params.startFrom,
1234
- $lte: params.startThrough
1235
- },
1236
- typeOf: { $eq: factory.actionType.CancelAction },
1237
- actionStatus: { $eq: actionStatus },
1238
- 'object.typeOf': {
1239
- $exists: true,
1240
- $in: [
1241
- factory.reservationType.BusReservation,
1242
- factory.reservationType.EventReservation,
1243
- factory.reservationType.ReservationPackage
1244
- ]
1245
- },
1246
- ...(typeof params.project?.id?.$ne === 'string')
1247
- ? { 'project.id': { $ne: params.project.id.$ne } }
1248
- : undefined
1249
- };
1250
- return this.agggregateByStatus({ matchConditions, actionStatus });
1251
- }));
1252
- return { statuses };
1253
- }
1254
- /**
1255
- * アクションタイプによる汎用的な集計
1256
- */
1257
- async aggregateByTypeOf(params) {
1258
- const statuses = await Promise.all([
1259
- factory.actionStatusType.CompletedActionStatus,
1260
- factory.actionStatusType.CanceledActionStatus,
1261
- factory.actionStatusType.FailedActionStatus
1262
- ].map(async (actionStatus) => {
1263
- const matchConditions = {
1264
- startDate: {
1265
- $gte: params.startFrom,
1266
- $lte: params.startThrough
1267
- },
1268
- typeOf: { $eq: params.typeOf },
1269
- actionStatus: { $eq: actionStatus },
1270
- ...(typeof params.project?.id?.$ne === 'string')
1271
- ? { 'project.id': { $ne: params.project.id.$ne } }
1272
- : undefined
1273
- };
1274
- return this.agggregateByStatus({ matchConditions, actionStatus });
1275
- }));
1276
- return { statuses };
1277
- }
1278
- async aggregateCheckMovieTicketAction(params) {
1279
- const statuses = await Promise.all([
1280
- factory.actionStatusType.CompletedActionStatus,
1281
- factory.actionStatusType.CanceledActionStatus,
1282
- factory.actionStatusType.FailedActionStatus
1283
- ].map(async (actionStatus) => {
1284
- const matchConditions = {
1285
- startDate: {
1286
- $gte: params.startFrom,
1287
- $lte: params.startThrough
1288
- },
1289
- typeOf: { $eq: factory.actionType.CheckAction },
1290
- 'object.typeOf': {
1291
- $exists: true,
1292
- $eq: factory.service.paymentService.PaymentServiceType.MovieTicket
1293
- },
1294
- actionStatus: { $eq: actionStatus },
1295
- ...(typeof params.project?.id?.$ne === 'string')
1296
- ? { 'project.id': { $ne: params.project.id.$ne } }
1297
- : undefined
1298
- };
1299
- return this.agggregateByStatus({ matchConditions, actionStatus });
1300
- }));
1301
- return { statuses };
1302
- }
1303
- async aggregatePayMovieTicketAction(params) {
1304
- const statuses = await Promise.all([
1305
- factory.actionStatusType.CompletedActionStatus,
1306
- factory.actionStatusType.CanceledActionStatus,
1307
- factory.actionStatusType.FailedActionStatus
1308
- ].map(async (actionStatus) => {
1309
- const matchConditions = {
1310
- startDate: {
1311
- $gte: params.startFrom,
1312
- $lte: params.startThrough
1313
- },
1314
- typeOf: { $eq: factory.actionType.PayAction },
1315
- 'object.typeOf': {
1316
- $exists: true,
1317
- $eq: factory.service.paymentService.PaymentServiceType.MovieTicket
1318
- },
1319
- actionStatus: { $eq: actionStatus },
1320
- ...(typeof params.project?.id?.$ne === 'string')
1321
- ? { 'project.id': { $ne: params.project.id.$ne } }
1322
- : undefined
1323
- };
1324
- return this.agggregateByStatus({ matchConditions, actionStatus });
1325
- }));
1326
- return { statuses };
1327
- }
535
+ // public async findRecipeByAction<T extends factory.recipe.RecipeCategory>(params: {
536
+ // project: { id: string };
537
+ // recipeFor: { id: string };
538
+ // }): Promise<Pick<IActionRecipe<T>, 'step' | 'recipeCategory'> | null> {
539
+ // return this.actionRecipeModel.findOne(
540
+ // {
541
+ // 'project.id': { $eq: params.project.id },
542
+ // 'recipeFor.id': { $eq: params.recipeFor.id }
543
+ // },
544
+ // { step: 1, recipeCategory: 1 }
545
+ // // { lean: true }
546
+ // )
547
+ // .lean<Pick<IActionRecipe<T>, 'step' | 'recipeCategory'>>()
548
+ // .exec();
549
+ // // if (result === null) {
550
+ // // throw new factory.errors.NotFound(this.actionRecipeModel.modelName);
551
+ // // }
552
+ // // return result;
553
+ // }
1328
554
  getCursor(conditions, projection) {
1329
555
  return this.actionModel.find(conditions, projection)
1330
556
  .sort({ startDate: factory.sortType.Descending })
@@ -1334,126 +560,5 @@ class ActionRepo {
1334
560
  return this.actionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
1335
561
  .exec();
1336
562
  }
1337
- async agggregateByStatus(params) {
1338
- const aggregations = await this.actionModel.aggregate([
1339
- { $match: params.matchConditions },
1340
- {
1341
- $project: {
1342
- duration: { $subtract: ['$endDate', '$startDate'] },
1343
- actionStatus: '$actionStatus',
1344
- startDate: '$startDate',
1345
- endDate: '$endDate',
1346
- typeOf: '$typeOf'
1347
- }
1348
- },
1349
- {
1350
- $group: {
1351
- _id: '$typeOf',
1352
- actionCount: { $sum: 1 },
1353
- maxDuration: { $max: '$duration' },
1354
- minDuration: { $min: '$duration' },
1355
- avgDuration: { $avg: '$duration' }
1356
- }
1357
- },
1358
- {
1359
- $project: {
1360
- _id: 0,
1361
- actionCount: '$actionCount',
1362
- avgDuration: '$avgDuration',
1363
- maxDuration: '$maxDuration',
1364
- minDuration: '$minDuration'
1365
- }
1366
- }
1367
- ])
1368
- .exec();
1369
- const percents = [50, 95, 99];
1370
- if (aggregations.length === 0) {
1371
- return {
1372
- status: params.actionStatus,
1373
- aggregation: {
1374
- actionCount: 0,
1375
- avgDuration: 0,
1376
- maxDuration: 0,
1377
- minDuration: 0,
1378
- percentilesDuration: percents.map((percent) => {
1379
- return {
1380
- name: String(percent),
1381
- value: 0
1382
- };
1383
- })
1384
- }
1385
- };
1386
- }
1387
- const ranks4percentile = percents.map((percentile) => {
1388
- return {
1389
- percentile,
1390
- rank: Math.floor(aggregations[0].actionCount * percentile / 100)
1391
- };
1392
- });
1393
- const aggregations2 = await this.actionModel.aggregate([
1394
- {
1395
- $match: params.matchConditions
1396
- },
1397
- {
1398
- $project: {
1399
- duration: { $subtract: ['$endDate', '$startDate'] },
1400
- actionStatus: '$actionStatus',
1401
- startDate: '$startDate',
1402
- endDate: '$endDate',
1403
- typeOf: '$typeOf'
1404
- }
1405
- },
1406
- { $sort: { duration: 1 } },
1407
- {
1408
- $group: {
1409
- _id: '$typeOf',
1410
- durations: { $push: '$duration' }
1411
- }
1412
- },
1413
- {
1414
- $project: {
1415
- _id: 0,
1416
- avgSmallDuration: '$avgSmallDuration',
1417
- avgMediumDuration: '$avgMediumDuration',
1418
- avgLargeDuration: '$avgLargeDuration',
1419
- percentilesDuration: ranks4percentile.map((rank) => {
1420
- return {
1421
- name: String(rank.percentile),
1422
- value: { $arrayElemAt: ['$durations', rank.rank] }
1423
- };
1424
- })
1425
- }
1426
- }
1427
- ])
1428
- .exec();
1429
- return {
1430
- status: params.actionStatus,
1431
- aggregation: {
1432
- ...aggregations[0],
1433
- ...aggregations2[0]
1434
- }
1435
- };
1436
- }
1437
- async upsertRecipe(savingRecipe) {
1438
- const dateModified = new Date();
1439
- const { typeOf, project, recipeCategory, recipeFor, step } = savingRecipe;
1440
- const filter = {
1441
- 'recipeFor.id': { $eq: recipeFor.id }
1442
- };
1443
- const setOnInsert = {
1444
- project, typeOf, recipeCategory, recipeFor,
1445
- dateCreated: dateModified
1446
- };
1447
- const setKeys = { step, dateModified };
1448
- const update = {
1449
- $setOnInsert: setOnInsert,
1450
- $set: setKeys
1451
- };
1452
- return this.actionRecipeModel.updateOne(filter, update, {
1453
- upsert: true,
1454
- includeResultMetadata: true
1455
- })
1456
- .exec();
1457
- }
1458
563
  }
1459
564
  exports.ActionRepo = ActionRepo;