@chevre/domain 24.0.0-alpha.3 → 24.0.0-alpha.30

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 (310) hide show
  1. package/lib/chevre/errorHandler.js +1 -1
  2. package/lib/chevre/repo/accountTitle.d.ts +7 -3
  3. package/lib/chevre/repo/accountTransaction.js +1 -2
  4. package/lib/chevre/repo/action/acceptCOAOffer.d.ts +23 -0
  5. package/lib/chevre/repo/action/acceptCOAOffer.js +62 -0
  6. package/lib/chevre/repo/action/acceptPay.d.ts +37 -0
  7. package/lib/chevre/repo/action/acceptPay.js +87 -0
  8. package/lib/chevre/repo/action/actionProcess.d.ts +145 -0
  9. package/lib/chevre/repo/action/actionProcess.js +788 -0
  10. package/lib/chevre/repo/action/authorizeInvoice.d.ts +26 -0
  11. package/lib/chevre/repo/action/authorizeInvoice.js +49 -0
  12. package/lib/chevre/repo/action/authorizeMoneyTransferOffer.d.ts +40 -0
  13. package/lib/chevre/repo/action/authorizeMoneyTransferOffer.js +61 -0
  14. package/lib/chevre/repo/action/authorizeOffer.d.ts +21 -0
  15. package/lib/chevre/repo/action/authorizeOffer.js +85 -0
  16. package/lib/chevre/repo/action/authorizePaymentMethod.d.ts +36 -0
  17. package/lib/chevre/repo/action/authorizePaymentMethod.js +50 -0
  18. package/lib/chevre/repo/action/authorizeProductOffer.d.ts +26 -0
  19. package/lib/chevre/repo/action/authorizeProductOffer.js +52 -0
  20. package/lib/chevre/repo/action/checkMovieTicket.d.ts +111 -0
  21. package/lib/chevre/repo/action/checkMovieTicket.js +200 -0
  22. package/lib/chevre/repo/action/checkThing.d.ts +8 -0
  23. package/lib/chevre/repo/action/checkThing.js +13 -0
  24. package/lib/chevre/repo/action.d.ts +18 -258
  25. package/lib/chevre/repo/action.js +308 -1216
  26. package/lib/chevre/repo/aggregateAction.d.ts +102 -0
  27. package/lib/chevre/repo/aggregateAction.js +378 -0
  28. package/lib/chevre/repo/aggregateOffer.d.ts +7 -3
  29. package/lib/chevre/repo/assetTransaction.d.ts +46 -25
  30. package/lib/chevre/repo/categoryCode.d.ts +8 -3
  31. package/lib/chevre/repo/comment.d.ts +7 -3
  32. package/lib/chevre/repo/creativeWork.d.ts +8 -7
  33. package/lib/chevre/repo/customer.d.ts +8 -3
  34. package/lib/chevre/repo/event.d.ts +11 -23
  35. package/lib/chevre/repo/event.js +22 -23
  36. package/lib/chevre/repo/eventSeries.d.ts +10 -4
  37. package/lib/chevre/repo/identity.d.ts +12 -3
  38. package/lib/chevre/repo/identityProvider.d.ts +7 -18
  39. package/lib/chevre/repo/issuer.d.ts +8 -8
  40. package/lib/chevre/repo/member.d.ts +7 -3
  41. package/lib/chevre/repo/merchantReturnPolicy.d.ts +7 -3
  42. package/lib/chevre/repo/message.js +1 -1
  43. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.d.ts +4 -3
  44. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -3
  45. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +4 -3
  46. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +5 -4
  47. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +3 -2
  48. package/lib/chevre/repo/mongoose/schemas/action.d.ts +4 -3
  49. package/lib/chevre/repo/mongoose/schemas/actionRecipe.d.ts +4 -3
  50. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +5 -4
  51. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.d.ts +3 -2
  52. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.d.ts +4 -3
  53. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.d.ts +3 -2
  54. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.d.ts +4 -3
  55. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -3
  56. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +4 -3
  57. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +4 -3
  58. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +5 -4
  59. package/lib/chevre/repo/mongoose/schemas/civicStructure.d.ts +3 -2
  60. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +4 -3
  61. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +5 -4
  62. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +5 -4
  63. package/lib/chevre/repo/mongoose/schemas/customerType.d.ts +5 -4
  64. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +4 -3
  65. package/lib/chevre/repo/mongoose/schemas/event.d.ts +3 -2
  66. package/lib/chevre/repo/mongoose/schemas/eventOffer.d.ts +4 -3
  67. package/lib/chevre/repo/mongoose/schemas/eventSeries.d.ts +3 -2
  68. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +4 -3
  69. package/lib/chevre/repo/mongoose/schemas/identityProvider.d.ts +4 -3
  70. package/lib/chevre/repo/mongoose/schemas/issuer.d.ts +4 -3
  71. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +4 -3
  72. package/lib/chevre/repo/mongoose/schemas/member.d.ts +4 -3
  73. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +4 -3
  74. package/lib/chevre/repo/mongoose/schemas/message.d.ts +5 -4
  75. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.d.ts +4 -3
  76. package/lib/chevre/repo/mongoose/schemas/note.d.ts +3 -2
  77. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +4 -3
  78. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.d.ts +4 -3
  79. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +5 -4
  80. package/lib/chevre/repo/mongoose/schemas/order.d.ts +4 -3
  81. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +5 -4
  82. package/lib/chevre/repo/mongoose/schemas/paymentService.d.ts +4 -3
  83. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.d.ts +4 -3
  84. package/lib/chevre/repo/mongoose/schemas/pendingReservation.d.ts +4 -3
  85. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.d.ts +4 -3
  86. package/lib/chevre/repo/mongoose/schemas/place.d.ts +3 -2
  87. package/lib/chevre/repo/mongoose/schemas/potentialAction.d.ts +4 -3
  88. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +6 -3
  89. package/lib/chevre/repo/mongoose/schemas/product.d.ts +4 -3
  90. package/lib/chevre/repo/mongoose/schemas/productModel.d.ts +6 -5
  91. package/lib/chevre/repo/mongoose/schemas/productOffer.d.ts +3 -2
  92. package/lib/chevre/repo/mongoose/schemas/project.d.ts +4 -3
  93. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +4 -3
  94. package/lib/chevre/repo/mongoose/schemas/reserveInterface.d.ts +4 -3
  95. package/lib/chevre/repo/mongoose/schemas/role.d.ts +3 -2
  96. package/lib/chevre/repo/mongoose/schemas/schedule.d.ts +5 -4
  97. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +4 -3
  98. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.d.ts +4 -3
  99. package/lib/chevre/repo/mongoose/schemas/service/availableHour.d.ts +3 -2
  100. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +5 -4
  101. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +4 -3
  102. package/lib/chevre/repo/mongoose/schemas/task.d.ts +4 -3
  103. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +4 -3
  104. package/lib/chevre/repo/mongoose/schemas/ticket.d.ts +4 -3
  105. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +8 -4
  106. package/lib/chevre/repo/mongoose/schemas/transaction.js +31 -0
  107. package/lib/chevre/repo/mongoose/schemas/transactionNumber.d.ts +3 -2
  108. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +4 -3
  109. package/lib/chevre/repo/mongoose/schemas/webSite.d.ts +4 -3
  110. package/lib/chevre/repo/mongoose/virtuals.d.ts +3 -0
  111. package/lib/chevre/repo/mongoose/virtuals.js +2 -0
  112. package/lib/chevre/repo/movieTicketType.d.ts +2 -1
  113. package/lib/chevre/repo/offerCatalog.d.ts +8 -4
  114. package/lib/chevre/repo/order.d.ts +8 -7
  115. package/lib/chevre/repo/orderInTransaction.d.ts +8 -0
  116. package/lib/chevre/repo/orderInTransaction.js +16 -2
  117. package/lib/chevre/repo/orderNumber.d.ts +3 -2
  118. package/lib/chevre/repo/orderNumber.js +23 -28
  119. package/lib/chevre/repo/ownershipInfo.d.ts +8 -7
  120. package/lib/chevre/repo/paymentService.d.ts +0 -13
  121. package/lib/chevre/repo/paymentService.js +5 -5
  122. package/lib/chevre/repo/pendingReservation.js +0 -1
  123. package/lib/chevre/repo/place/hasPOS.js +3 -3
  124. package/lib/chevre/repo/place/movieTheater.d.ts +7 -3
  125. package/lib/chevre/repo/place/screeningRoom.d.ts +7 -3
  126. package/lib/chevre/repo/potentialAction.d.ts +7 -26
  127. package/lib/chevre/repo/priceSpecification.d.ts +51 -24
  128. package/lib/chevre/repo/priceSpecification.js +9 -13
  129. package/lib/chevre/repo/product.d.ts +8 -4
  130. package/lib/chevre/repo/productModel.d.ts +3 -1
  131. package/lib/chevre/repo/productModel.js +15 -11
  132. package/lib/chevre/repo/project.d.ts +8 -11
  133. package/lib/chevre/repo/reservation.d.ts +14 -13
  134. package/lib/chevre/repo/reserveInterface.js +4 -4
  135. package/lib/chevre/repo/role.d.ts +39 -3
  136. package/lib/chevre/repo/schedule.js +1 -1
  137. package/lib/chevre/repo/seller.d.ts +7 -50
  138. package/lib/chevre/repo/task.d.ts +7 -67
  139. package/lib/chevre/repo/transaction/moneyTransfer.d.ts +61 -0
  140. package/lib/chevre/repo/transaction/moneyTransfer.js +379 -0
  141. package/lib/chevre/repo/transaction/placeOrder.d.ts +140 -0
  142. package/lib/chevre/repo/transaction/placeOrder.js +528 -0
  143. package/lib/chevre/repo/transaction/returnOrder.d.ts +45 -0
  144. package/lib/chevre/repo/transaction/returnOrder.js +341 -0
  145. package/lib/chevre/repo/transaction.d.ts +105 -138
  146. package/lib/chevre/repo/transaction.js +726 -632
  147. package/lib/chevre/repository.d.ts +69 -0
  148. package/lib/chevre/repository.js +151 -2
  149. package/lib/chevre/service/aggregation/system.d.ts +10 -10
  150. package/lib/chevre/service/aggregation/system.js +9 -9
  151. package/lib/chevre/service/assetTransaction/pay/check.d.ts +5 -4
  152. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +7 -4
  153. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +3 -3
  154. package/lib/chevre/service/assetTransaction/pay/start/factory.d.ts +51 -3
  155. package/lib/chevre/service/assetTransaction/pay/start/factory.js +58 -21
  156. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.d.ts +10 -0
  157. package/lib/chevre/service/assetTransaction/pay/start/preStart/fixPaymentService.js +88 -0
  158. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +57 -0
  159. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.js +56 -0
  160. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +2 -2
  161. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +3 -1
  162. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +1 -11
  163. package/lib/chevre/service/assetTransaction/pay/start.d.ts +4 -0
  164. package/lib/chevre/service/assetTransaction/pay/start.js +8 -132
  165. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.d.ts +19 -4
  166. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +7 -1
  167. package/lib/chevre/service/notification/triggerWebhook.d.ts +7 -6
  168. package/lib/chevre/service/offer/event/authorize.d.ts +2 -2
  169. package/lib/chevre/service/offer/event/authorize.js +3 -3
  170. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +2 -2
  171. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +1 -1
  172. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +0 -2
  173. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -0
  174. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.d.ts +2 -0
  175. package/lib/chevre/service/offer/event/voidTransaction.d.ts +4 -2
  176. package/lib/chevre/service/offer/event/voidTransaction.js +3 -2
  177. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +3 -3
  178. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +2 -2
  179. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +16 -5
  180. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +7 -7
  181. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +6 -4
  182. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +3 -10
  183. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +21 -13
  184. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +19 -10
  185. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +2 -2
  186. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +5 -4
  187. package/lib/chevre/service/offer/moneyTransfer/authorize.js +9 -6
  188. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.d.ts +5 -4
  189. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +8 -5
  190. package/lib/chevre/service/offer/product.d.ts +8 -6
  191. package/lib/chevre/service/offer/product.js +11 -11
  192. package/lib/chevre/service/order/confirmPayTransaction.d.ts +0 -2
  193. package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
  194. package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +2 -2
  195. package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -1
  196. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.d.ts +16 -0
  197. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +97 -0
  198. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts +21 -0
  199. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +86 -0
  200. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +22 -0
  201. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +112 -0
  202. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +22 -0
  203. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.js +74 -0
  204. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +25 -0
  205. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +111 -0
  206. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +16 -0
  207. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.js +74 -0
  208. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +8 -30
  209. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +37 -348
  210. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +6 -7
  211. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +6 -5
  212. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +7 -6
  213. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  214. package/lib/chevre/service/order/payOrder.d.ts +2 -2
  215. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +2 -2
  216. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +1 -1
  217. package/lib/chevre/service/order/placeOrder.d.ts +13 -12
  218. package/lib/chevre/service/order/returnOrder.d.ts +2 -2
  219. package/lib/chevre/service/order/returnOrder.js +1 -1
  220. package/lib/chevre/service/order/sendOrder.d.ts +6 -6
  221. package/lib/chevre/service/order/sendOrder.js +9 -8
  222. package/lib/chevre/service/order.d.ts +3 -6
  223. package/lib/chevre/service/order.js +3 -9
  224. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +6 -6
  225. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +5 -8
  226. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +8 -5
  227. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +14 -10
  228. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +34 -17
  229. package/lib/chevre/service/payment/any/authorize.d.ts +98 -0
  230. package/lib/chevre/service/payment/any/authorize.js +239 -0
  231. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
  232. package/lib/chevre/service/payment/any/findAcceptAction.js +94 -0
  233. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +42 -0
  234. package/lib/chevre/service/payment/any/findAuthorizeAction.js +83 -0
  235. package/lib/chevre/service/payment/any/findCheckAction.d.ts +45 -0
  236. package/lib/chevre/service/payment/any/findCheckAction.js +89 -0
  237. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +29 -0
  238. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +187 -0
  239. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +7 -3
  240. package/lib/chevre/service/payment/any/onPayActionCompleted.js +3 -0
  241. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +30 -0
  242. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +125 -0
  243. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +2 -2
  244. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +66 -0
  245. package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
  246. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +34 -0
  247. package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
  248. package/lib/chevre/service/payment/any.d.ts +8 -305
  249. package/lib/chevre/service/payment/any.js +17 -857
  250. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.d.ts +8 -6
  251. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +3 -3
  252. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.d.ts +8 -6
  253. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +3 -3
  254. package/lib/chevre/service/payment/creditCard/authorize.d.ts +3 -2
  255. package/lib/chevre/service/payment/creditCard/authorize.js +2 -2
  256. package/lib/chevre/service/payment/creditCard/voidTransaction.d.ts +9 -8
  257. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -7
  258. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +2 -0
  259. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +3 -3
  260. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
  261. package/lib/chevre/service/payment/movieTicket/validation.d.ts +11 -10
  262. package/lib/chevre/service/payment/movieTicket/validation.js +25 -15
  263. package/lib/chevre/service/report/telemetry.d.ts +4 -0
  264. package/lib/chevre/service/report/telemetry.js +7 -12
  265. package/lib/chevre/service/task/acceptCOAOffer.js +11 -6
  266. package/lib/chevre/service/task/authorizePayment.js +16 -5
  267. package/lib/chevre/service/task/checkMovieTicket.js +3 -3
  268. package/lib/chevre/service/task/checkResource.js +2 -2
  269. package/lib/chevre/service/task/confirmPayTransaction.js +2 -2
  270. package/lib/chevre/service/task/deleteTransaction.js +7 -1
  271. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +4 -2
  272. package/lib/chevre/service/task/onOrderPaymentCompleted.js +2 -2
  273. package/lib/chevre/service/task/pay.js +3 -1
  274. package/lib/chevre/service/task/payment/payByTask.d.ts +15 -12
  275. package/lib/chevre/service/task/payment/payByTask.js +1 -1
  276. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +2 -0
  277. package/lib/chevre/service/task/placeOrder.js +6 -4
  278. package/lib/chevre/service/task/publishPaymentUrl.js +11 -5
  279. package/lib/chevre/service/task/returnOrder.js +4 -4
  280. package/lib/chevre/service/task/returnPayTransaction.js +4 -3
  281. package/lib/chevre/service/task/sendOrder.js +4 -4
  282. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +11 -6
  283. package/lib/chevre/service/task/voidPayTransaction.js +10 -4
  284. package/lib/chevre/service/task/voidPayment.js +2 -0
  285. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +7 -6
  286. package/lib/chevre/service/task/voidReserveTransaction.js +6 -3
  287. package/lib/chevre/service/transaction/deleteTransaction.d.ts +6 -0
  288. package/lib/chevre/service/transaction/deleteTransaction.js +56 -14
  289. package/lib/chevre/service/transaction/moneyTransfer.d.ts +12 -9
  290. package/lib/chevre/service/transaction/moneyTransfer.js +11 -11
  291. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +2 -2
  292. package/lib/chevre/service/transaction/placeOrder/confirm.js +10 -9
  293. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +7 -6
  294. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -1
  295. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.d.ts → issueOrderNumberIfNotExist.d.ts} +4 -4
  296. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.js → issueOrderNumberIfNotExist.js} +21 -13
  297. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.d.ts +2 -2
  298. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +3 -3
  299. package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -3
  300. package/lib/chevre/service/transaction/placeOrder/start.js +2 -2
  301. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +23 -0
  302. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +126 -0
  303. package/lib/chevre/service/transaction/placeOrder.d.ts +2 -1
  304. package/lib/chevre/service/transaction/placeOrder.js +3 -1
  305. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +1 -1
  306. package/lib/chevre/service/transaction/returnOrder.d.ts +16 -14
  307. package/lib/chevre/service/transaction/returnOrder.js +4 -4
  308. package/lib/chevre/service/transaction.d.ts +9 -21
  309. package/lib/chevre/service/transaction.js +5 -111
  310. package/package.json +5 -10
@@ -29,656 +29,257 @@ 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
- }
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
+ // }
478
44
  /**
479
45
  * アクション検索
480
46
  */
481
47
  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
- }
640
- /**
641
- * 一定期間ActiveActionStatusのアクションをFailedActionStatusにする
642
- */
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
- }
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
284
  const payActions = await this.search({
684
285
  limit: 1,
@@ -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,56 +328,43 @@ 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
- }
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
+ // }
856
368
  async updateById(params) {
857
369
  await this.actionModel.updateOne({ _id: { $eq: params.id } }, params.update)
858
370
  .exec();
@@ -927,96 +439,6 @@ class ActionRepo {
927
439
  // ])
928
440
  // .exec();
929
441
  // }
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
442
  /**
1021
443
  * 開始日時を一定期間過ぎたアクションを削除する
1022
444
  */
@@ -1071,20 +493,23 @@ class ActionRepo {
1071
493
  };
1072
494
  });
1073
495
  }
1074
- // public async saveRecipeWithDateCreated(savingRecipe: IRecipeAsDocument & {
1075
- // dateModified: Date;
1076
- // }) {
1077
- // const { typeOf, project, recipeCategory, recipeFor, step, dateCreated, dateModified } = savingRecipe;
496
+ // public async saveActionWithEndDate(savingAction: Omit<factory.action.authorize.invoice.IAction, 'id'>) {
497
+ // const { sameAs, typeOf, project, agent, object, ...updateFields } = savingAction;
1078
498
  // const filter: FilterQuery<factory.recipe.IRecipe> = {
1079
- // 'recipeFor.id': { $eq: recipeFor.id }
499
+ // 'project.id': { $eq: project.id },
500
+ // // 'agent.id': { $exists: true, $eq: agent.id },
501
+ // // 'object.typeOf': { $exists: true, $eq: object.typeOf },
502
+ // 'object.paymentMethodId': { $exists: true, $eq: object.paymentMethodId },
503
+ // typeOf: { $eq: typeOf },
504
+ // 'sameAs.id': { $exists: true, $eq: sameAs.id }
1080
505
  // };
1081
- // const setOnInsert: AnyKeys<IRecipeAsDocument> = { project, typeOf, recipeCategory, recipeFor, dateCreated };
1082
- // const setKeys: AnyKeys<IRecipeAsDocument> = { step, dateModified };
1083
- // const update: UpdateQuery<IRecipeAsDocument> = {
506
+ // const setOnInsert: AnyKeys<IAction<factory.actionType>> = { typeOf, project, agent, object, sameAs };
507
+ // const setKeys: AnyKeys<IAction<factory.actionType>> = updateFields;
508
+ // const update: UpdateQuery<IAction<factory.actionType>> = {
1084
509
  // $setOnInsert: setOnInsert,
1085
510
  // $set: setKeys
1086
511
  // };
1087
- // return this.actionRecipeModel.updateOne<HydratedDocument<IRecipeAsDocument>>(
512
+ // return this.actionModel.updateOne<HydratedDocument<IRecipeAsDocument>>(
1088
513
  // filter,
1089
514
  // update,
1090
515
  // {
@@ -1094,237 +519,25 @@ class ActionRepo {
1094
519
  // )
1095
520
  // .exec();
1096
521
  // }
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
- }
522
+ // public async findRecipeByAction<T extends factory.recipe.RecipeCategory>(params: {
523
+ // project: { id: string };
524
+ // recipeFor: { id: string };
525
+ // }): Promise<Pick<IActionRecipe<T>, 'step' | 'recipeCategory'> | null> {
526
+ // return this.actionRecipeModel.findOne(
527
+ // {
528
+ // 'project.id': { $eq: params.project.id },
529
+ // 'recipeFor.id': { $eq: params.recipeFor.id }
530
+ // },
531
+ // { step: 1, recipeCategory: 1 }
532
+ // // { lean: true }
533
+ // )
534
+ // .lean<Pick<IActionRecipe<T>, 'step' | 'recipeCategory'>>()
535
+ // .exec();
536
+ // // if (result === null) {
537
+ // // throw new factory.errors.NotFound(this.actionRecipeModel.modelName);
538
+ // // }
539
+ // // return result;
540
+ // }
1328
541
  getCursor(conditions, projection) {
1329
542
  return this.actionModel.find(conditions, projection)
1330
543
  .sort({ startDate: factory.sortType.Descending })
@@ -1334,126 +547,5 @@ class ActionRepo {
1334
547
  return this.actionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
1335
548
  .exec();
1336
549
  }
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
550
  }
1459
551
  exports.ActionRepo = ActionRepo;