@chevre/domain 24.0.0-alpha.5 → 24.0.0-alpha.50

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 (519) 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 +25 -0
  26. package/lib/chevre/repo/action/pay.js +54 -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 -278
  30. package/lib/chevre/repo/action.js +357 -1245
  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/reserve.d.ts +30 -0
  39. package/lib/chevre/repo/assetTransaction/reserve.js +126 -0
  40. package/lib/chevre/repo/assetTransaction.d.ts +47 -26
  41. package/lib/chevre/repo/assetTransaction.js +13 -6
  42. package/lib/chevre/repo/categoryCode.d.ts +9 -6
  43. package/lib/chevre/repo/categoryCode.js +2 -2
  44. package/lib/chevre/repo/comment.d.ts +7 -3
  45. package/lib/chevre/repo/creativeWork.d.ts +10 -9
  46. package/lib/chevre/repo/creativeWork.js +4 -3
  47. package/lib/chevre/repo/customer.d.ts +8 -3
  48. package/lib/chevre/repo/customer.js +2 -2
  49. package/lib/chevre/repo/customerType.d.ts +1 -1
  50. package/lib/chevre/repo/customerType.js +1 -0
  51. package/lib/chevre/repo/emailMessage.js +1 -1
  52. package/lib/chevre/repo/event.d.ts +12 -24
  53. package/lib/chevre/repo/event.js +32 -27
  54. package/lib/chevre/repo/eventOffer.d.ts +3 -3
  55. package/lib/chevre/repo/eventOffer.js +1 -0
  56. package/lib/chevre/repo/eventSellerMakesOffer.d.ts +3 -3
  57. package/lib/chevre/repo/eventSellerMakesOffer.js +1 -0
  58. package/lib/chevre/repo/eventSeries.d.ts +11 -5
  59. package/lib/chevre/repo/eventSeries.js +2 -2
  60. package/lib/chevre/repo/factory/reservation/createMongoConditions.d.ts +3 -0
  61. package/lib/chevre/repo/factory/reservation/createMongoConditions.js +771 -0
  62. package/lib/chevre/repo/identity.d.ts +13 -6
  63. package/lib/chevre/repo/identityProvider.d.ts +8 -21
  64. package/lib/chevre/repo/identityProvider.js +2 -2
  65. package/lib/chevre/repo/issuer.d.ts +8 -8
  66. package/lib/chevre/repo/issuer.js +3 -3
  67. package/lib/chevre/repo/member.d.ts +7 -3
  68. package/lib/chevre/repo/merchantReturnPolicy.d.ts +7 -3
  69. package/lib/chevre/repo/merchantReturnPolicy.js +1 -1
  70. package/lib/chevre/repo/message.js +1 -1
  71. package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.d.ts +4 -3
  72. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -3
  73. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +4 -3
  74. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +5 -4
  75. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +3 -2
  76. package/lib/chevre/repo/mongoose/schemas/action.d.ts +4 -3
  77. package/lib/chevre/repo/mongoose/schemas/actionRecipe.d.ts +4 -3
  78. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +5 -4
  79. package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.d.ts +3 -2
  80. package/lib/chevre/repo/mongoose/schemas/aggregateOffer.d.ts +4 -3
  81. package/lib/chevre/repo/mongoose/schemas/aggregateOrder.d.ts +3 -2
  82. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.d.ts +4 -3
  83. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -3
  84. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +4 -3
  85. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +4 -3
  86. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +5 -4
  87. package/lib/chevre/repo/mongoose/schemas/civicStructure.d.ts +3 -2
  88. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +4 -3
  89. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +5 -4
  90. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +5 -4
  91. package/lib/chevre/repo/mongoose/schemas/customerType.d.ts +5 -4
  92. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +4 -3
  93. package/lib/chevre/repo/mongoose/schemas/event.d.ts +3 -2
  94. package/lib/chevre/repo/mongoose/schemas/eventOffer.d.ts +4 -3
  95. package/lib/chevre/repo/mongoose/schemas/eventSeries.d.ts +3 -2
  96. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +4 -3
  97. package/lib/chevre/repo/mongoose/schemas/identityProvider.d.ts +4 -3
  98. package/lib/chevre/repo/mongoose/schemas/issuer.d.ts +4 -3
  99. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +4 -3
  100. package/lib/chevre/repo/mongoose/schemas/member.d.ts +4 -3
  101. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +4 -3
  102. package/lib/chevre/repo/mongoose/schemas/message.d.ts +5 -4
  103. package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.d.ts +4 -3
  104. package/lib/chevre/repo/mongoose/schemas/note.d.ts +3 -2
  105. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +4 -3
  106. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.d.ts +4 -3
  107. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +5 -4
  108. package/lib/chevre/repo/mongoose/schemas/order.d.ts +4 -3
  109. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +6 -5
  110. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +78 -71
  111. package/lib/chevre/repo/mongoose/schemas/paymentService.d.ts +4 -3
  112. package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.d.ts +4 -3
  113. package/lib/chevre/repo/mongoose/schemas/pendingReservation.d.ts +4 -3
  114. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.d.ts +4 -3
  115. package/lib/chevre/repo/mongoose/schemas/place.d.ts +3 -2
  116. package/lib/chevre/repo/mongoose/schemas/potentialAction.d.ts +4 -3
  117. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +6 -3
  118. package/lib/chevre/repo/mongoose/schemas/product.d.ts +4 -3
  119. package/lib/chevre/repo/mongoose/schemas/productModel.d.ts +6 -5
  120. package/lib/chevre/repo/mongoose/schemas/productOffer.d.ts +3 -2
  121. package/lib/chevre/repo/mongoose/schemas/project.d.ts +4 -3
  122. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +5 -4
  123. package/lib/chevre/repo/mongoose/schemas/reserveInterface.d.ts +4 -3
  124. package/lib/chevre/repo/mongoose/schemas/role.d.ts +3 -2
  125. package/lib/chevre/repo/mongoose/schemas/schedule.d.ts +5 -4
  126. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +4 -3
  127. package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.d.ts +4 -3
  128. package/lib/chevre/repo/mongoose/schemas/service/availableHour.d.ts +3 -2
  129. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +5 -4
  130. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +4 -3
  131. package/lib/chevre/repo/mongoose/schemas/task.d.ts +4 -3
  132. package/lib/chevre/repo/mongoose/schemas/task.js +1 -0
  133. package/lib/chevre/repo/mongoose/schemas/ticket.d.ts +4 -3
  134. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +7 -4
  135. package/lib/chevre/repo/mongoose/schemas/transaction.js +31 -0
  136. package/lib/chevre/repo/mongoose/schemas/transactionNumber.d.ts +3 -2
  137. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +4 -3
  138. package/lib/chevre/repo/mongoose/schemas/webSite.d.ts +4 -3
  139. package/lib/chevre/repo/mongoose/virtuals.d.ts +3 -0
  140. package/lib/chevre/repo/mongoose/virtuals.js +2 -0
  141. package/lib/chevre/repo/movieTicketType.d.ts +3 -4
  142. package/lib/chevre/repo/movieTicketType.js +2 -2
  143. package/lib/chevre/repo/note.d.ts +3 -3
  144. package/lib/chevre/repo/note.js +1 -0
  145. package/lib/chevre/repo/noteAboutOrder.d.ts +1 -1
  146. package/lib/chevre/repo/noteAboutOrder.js +1 -0
  147. package/lib/chevre/repo/offer/offerInCatalogReadOnly.d.ts +1 -3
  148. package/lib/chevre/repo/offer/unitPriceInCatalog.d.ts +1 -3
  149. package/lib/chevre/repo/offerCatalog.d.ts +11 -7
  150. package/lib/chevre/repo/offerCatalog.js +6 -4
  151. package/lib/chevre/repo/offerCatalogItem.d.ts +3 -3
  152. package/lib/chevre/repo/offerCatalogItem.js +5 -4
  153. package/lib/chevre/repo/offerItemCondition.js +2 -2
  154. package/lib/chevre/repo/order.d.ts +8 -7
  155. package/lib/chevre/repo/order.js +3 -1
  156. package/lib/chevre/repo/orderInTransaction.d.ts +8 -0
  157. package/lib/chevre/repo/orderInTransaction.js +16 -2
  158. package/lib/chevre/repo/orderNumber.d.ts +3 -2
  159. package/lib/chevre/repo/orderNumber.js +23 -28
  160. package/lib/chevre/repo/ownershipInfo.d.ts +15 -8
  161. package/lib/chevre/repo/ownershipInfo.js +13 -10
  162. package/lib/chevre/repo/passport.d.ts +1 -1
  163. package/lib/chevre/repo/passport.js +1 -1
  164. package/lib/chevre/repo/paymentService.d.ts +1 -16
  165. package/lib/chevre/repo/paymentService.js +7 -7
  166. package/lib/chevre/repo/paymentServiceChannel.d.ts +1 -3
  167. package/lib/chevre/repo/paymentServiceChannel.js +2 -2
  168. package/lib/chevre/repo/pendingReservation.js +0 -1
  169. package/lib/chevre/repo/person.js +2 -2
  170. package/lib/chevre/repo/place/busStop.js +1 -1
  171. package/lib/chevre/repo/place/hasPOS.js +3 -3
  172. package/lib/chevre/repo/place/movieTheater.d.ts +7 -3
  173. package/lib/chevre/repo/place/movieTheater.js +10 -4
  174. package/lib/chevre/repo/place/screeningRoom.d.ts +7 -3
  175. package/lib/chevre/repo/place/screeningRoom.js +2 -2
  176. package/lib/chevre/repo/place/seat.d.ts +25 -21
  177. package/lib/chevre/repo/place/seat.js +15 -0
  178. package/lib/chevre/repo/place/section.js +6 -0
  179. package/lib/chevre/repo/potentialAction.d.ts +8 -29
  180. package/lib/chevre/repo/potentialAction.js +2 -2
  181. package/lib/chevre/repo/priceSpecification.d.ts +51 -24
  182. package/lib/chevre/repo/priceSpecification.js +11 -15
  183. package/lib/chevre/repo/product.d.ts +13 -13
  184. package/lib/chevre/repo/product.js +4 -3
  185. package/lib/chevre/repo/productModel.d.ts +3 -1
  186. package/lib/chevre/repo/productModel.js +17 -13
  187. package/lib/chevre/repo/productOffer.d.ts +3 -3
  188. package/lib/chevre/repo/productOffer.js +1 -0
  189. package/lib/chevre/repo/project.d.ts +8 -11
  190. package/lib/chevre/repo/rateLimit/offer.js +1 -1
  191. package/lib/chevre/repo/reservation.d.ts +43 -46
  192. package/lib/chevre/repo/reservation.js +9 -765
  193. package/lib/chevre/repo/reserveInterface.js +4 -4
  194. package/lib/chevre/repo/role.d.ts +39 -3
  195. package/lib/chevre/repo/schedule.js +1 -1
  196. package/lib/chevre/repo/seller.d.ts +9 -56
  197. package/lib/chevre/repo/seller.js +2 -2
  198. package/lib/chevre/repo/sellerMakesOffer.d.ts +2 -2
  199. package/lib/chevre/repo/sellerMakesOffer.js +2 -0
  200. package/lib/chevre/repo/sellerReturnPolicy.d.ts +1 -3
  201. package/lib/chevre/repo/sellerReturnPolicy.js +2 -2
  202. package/lib/chevre/repo/task.d.ts +8 -68
  203. package/lib/chevre/repo/task.js +1 -1
  204. package/lib/chevre/repo/transaction/placeOrder.d.ts +140 -0
  205. package/lib/chevre/repo/transaction/placeOrder.js +528 -0
  206. package/lib/chevre/repo/transaction/returnOrder.d.ts +45 -0
  207. package/lib/chevre/repo/transaction/returnOrder.js +341 -0
  208. package/lib/chevre/repo/transaction.d.ts +71 -142
  209. package/lib/chevre/repo/transaction.js +727 -632
  210. package/lib/chevre/repo/transactionProcess.js +1 -1
  211. package/lib/chevre/repo/trip.d.ts +4 -12
  212. package/lib/chevre/repo/trip.js +3 -3
  213. package/lib/chevre/repo/webSite.d.ts +1 -3
  214. package/lib/chevre/repo/webSite.js +3 -2
  215. package/lib/chevre/repository.d.ts +81 -5
  216. package/lib/chevre/repository.js +176 -13
  217. package/lib/chevre/service/aggregation/system.d.ts +10 -10
  218. package/lib/chevre/service/aggregation/system.js +9 -9
  219. package/lib/chevre/service/assetTransaction/cancelReservation/factory.d.ts +2 -2
  220. package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +1 -17
  221. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +2 -2
  222. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +1 -1
  223. package/lib/chevre/service/assetTransaction/moneyTransfer.js +8 -5
  224. package/lib/chevre/service/assetTransaction/pay/check.d.ts +5 -4
  225. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +1 -1
  226. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +2 -1
  227. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +7 -4
  228. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +5 -4
  229. package/lib/chevre/service/assetTransaction/pay/start/factory.js +2 -1
  230. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +11 -2
  231. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +2 -2
  232. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +9 -2
  233. package/lib/chevre/service/assetTransaction/pay/start.d.ts +11 -2
  234. package/lib/chevre/service/assetTransaction/refund.d.ts +5 -2
  235. package/lib/chevre/service/assetTransaction/refund.js +1 -1
  236. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.d.ts +1 -1
  237. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +6 -3
  238. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.d.ts +4 -7
  239. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +1 -41
  240. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +3 -15
  241. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.d.ts +1 -1
  242. package/lib/chevre/service/assetTransaction/reserve/start.js +6 -7
  243. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.d.ts +19 -4
  244. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +7 -1
  245. package/lib/chevre/service/assetTransaction.d.ts +1 -1
  246. package/lib/chevre/service/delivery/factory.js +44 -40
  247. package/lib/chevre/service/delivery/product/factory.js +2 -4
  248. package/lib/chevre/service/delivery/reservation/factory.js +17 -22
  249. package/lib/chevre/service/event/saveScreeningEvents.js +2 -2
  250. package/lib/chevre/service/event.js +1 -1
  251. package/lib/chevre/service/notification/notifyByEmail.d.ts +1 -1
  252. package/lib/chevre/service/notification/triggerWebhook.d.ts +7 -6
  253. package/lib/chevre/service/notification/triggerWebhook.js +1 -1
  254. package/lib/chevre/service/offer/any.d.ts +1 -1
  255. package/lib/chevre/service/offer/event/authorize/factory.d.ts +1 -1
  256. package/lib/chevre/service/offer/event/authorize/factory.js +18 -58
  257. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -3
  258. package/lib/chevre/service/offer/event/authorize.d.ts +6 -5
  259. package/lib/chevre/service/offer/event/authorize.js +27 -25
  260. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +17 -15
  261. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +4 -4
  262. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +2 -1
  263. package/lib/chevre/service/offer/event/searchOffersByIds.js +2 -1
  264. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +0 -2
  265. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -0
  266. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.d.ts +2 -0
  267. package/lib/chevre/service/offer/event/voidTransaction.d.ts +10 -3
  268. package/lib/chevre/service/offer/event/voidTransaction.js +20 -16
  269. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +8 -3
  270. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +6 -5
  271. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +16 -5
  272. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +7 -7
  273. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +1 -1
  274. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +21 -36
  275. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +7 -5
  276. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +3 -10
  277. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +21 -13
  278. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.d.ts +1 -1
  279. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +19 -10
  280. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +2 -2
  281. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +2 -1
  282. package/lib/chevre/service/offer/product/factory.d.ts +5 -5
  283. package/lib/chevre/service/offer/product/factory.js +13 -5
  284. package/lib/chevre/service/offer/product.d.ts +9 -7
  285. package/lib/chevre/service/offer/product.js +21 -17
  286. package/lib/chevre/service/offer.d.ts +1 -2
  287. package/lib/chevre/service/offer.js +11 -9
  288. package/lib/chevre/service/order/confirmPayTransaction.d.ts +1 -3
  289. package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
  290. package/lib/chevre/service/order/deleteOrder.js +2 -2
  291. package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +2 -2
  292. package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -1
  293. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.d.ts +16 -0
  294. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +97 -0
  295. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts +21 -0
  296. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +86 -0
  297. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +22 -0
  298. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +112 -0
  299. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +22 -0
  300. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.js +74 -0
  301. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +25 -0
  302. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +111 -0
  303. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +16 -0
  304. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.js +74 -0
  305. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +8 -30
  306. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +39 -349
  307. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  308. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +6 -7
  309. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  310. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +6 -5
  311. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +7 -6
  312. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  313. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +54 -37
  314. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  315. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +82 -66
  316. package/lib/chevre/service/order/payOrder.d.ts +2 -2
  317. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +12 -8
  318. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +41 -26
  319. package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +0 -1
  320. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +3 -28
  321. package/lib/chevre/service/order/placeOrder/factory.js +5 -6
  322. package/lib/chevre/service/order/placeOrder.d.ts +17 -12
  323. package/lib/chevre/service/order/placeOrder.js +7 -2
  324. package/lib/chevre/service/order/returnOrder.d.ts +2 -2
  325. package/lib/chevre/service/order/returnOrder.js +1 -1
  326. package/lib/chevre/service/order/sendOrder.d.ts +6 -6
  327. package/lib/chevre/service/order/sendOrder.js +14 -10
  328. package/lib/chevre/service/order.d.ts +3 -6
  329. package/lib/chevre/service/order.js +3 -9
  330. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +6 -6
  331. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +5 -8
  332. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +8 -5
  333. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +14 -10
  334. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +34 -17
  335. package/lib/chevre/service/payment/any/authorize.d.ts +103 -0
  336. package/lib/chevre/service/payment/any/authorize.js +239 -0
  337. package/lib/chevre/service/payment/any/factory.js +1 -0
  338. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
  339. package/lib/chevre/service/payment/any/findAcceptAction.js +95 -0
  340. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +42 -0
  341. package/lib/chevre/service/payment/any/findAuthorizeAction.js +84 -0
  342. package/lib/chevre/service/payment/any/findCheckAction.d.ts +45 -0
  343. package/lib/chevre/service/payment/any/findCheckAction.js +90 -0
  344. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +29 -0
  345. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +188 -0
  346. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +14 -5
  347. package/lib/chevre/service/payment/any/onPayActionCompleted.js +10 -2
  348. package/lib/chevre/service/payment/any/onPaymentStatusChanged.d.ts +10 -5
  349. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +21 -11
  350. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.d.ts +13 -10
  351. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +9 -6
  352. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +30 -0
  353. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +126 -0
  354. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +2 -2
  355. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +66 -0
  356. package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
  357. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +2 -1
  358. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +34 -0
  359. package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
  360. package/lib/chevre/service/payment/any.d.ts +8 -305
  361. package/lib/chevre/service/payment/any.js +17 -857
  362. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.d.ts +8 -6
  363. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +4 -4
  364. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.d.ts +8 -6
  365. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +3 -3
  366. package/lib/chevre/service/payment/creditCard/authorize.d.ts +3 -2
  367. package/lib/chevre/service/payment/creditCard/authorize.js +2 -2
  368. package/lib/chevre/service/payment/creditCard/payCreditCard.d.ts +7 -2
  369. package/lib/chevre/service/payment/creditCard/payCreditCard.js +8 -4
  370. package/lib/chevre/service/payment/creditCard/refundCreditCard.d.ts +7 -2
  371. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +11 -7
  372. package/lib/chevre/service/payment/creditCard/voidTransaction.d.ts +9 -8
  373. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -7
  374. package/lib/chevre/service/payment/faceToFace.d.ts +12 -3
  375. package/lib/chevre/service/payment/faceToFace.js +16 -8
  376. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +2 -1
  377. package/lib/chevre/service/payment/factory.js +4 -2
  378. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +9 -2
  379. package/lib/chevre/service/payment/movieTicket/authorize.js +1 -1
  380. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +3 -3
  381. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
  382. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.d.ts +12 -0
  383. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.js +72 -0
  384. package/lib/chevre/service/payment/movieTicket/payMovieTicket/processSeatInfoSync.d.ts +8 -0
  385. package/lib/chevre/service/payment/movieTicket/payMovieTicket/processSeatInfoSync.js +29 -0
  386. package/lib/chevre/service/payment/movieTicket/payMovieTicket.d.ts +8 -3
  387. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +14 -77
  388. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/createSeatInfoSyncCancelInOnRefund.d.ts +14 -0
  389. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/createSeatInfoSyncCancelInOnRefund.js +49 -0
  390. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/createSeatInfoSyncInOnRefund.d.ts +14 -0
  391. package/lib/chevre/service/{report.js → payment/movieTicket/refundMovieTicket/createSeatInfoSyncInOnRefund.js} +21 -8
  392. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSync.d.ts +12 -0
  393. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSync.js +72 -0
  394. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSyncCancel.d.ts +8 -0
  395. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSyncCancel.js +60 -0
  396. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.d.ts +8 -3
  397. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +20 -125
  398. package/lib/chevre/service/payment/movieTicket/validation.d.ts +11 -11
  399. package/lib/chevre/service/payment/movieTicket/validation.js +50 -32
  400. package/lib/chevre/service/payment/movieTicket/voidTransaction.d.ts +6 -2
  401. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +1 -1
  402. package/lib/chevre/service/payment/paymentCard.d.ts +12 -3
  403. package/lib/chevre/service/payment/paymentCard.js +16 -8
  404. package/lib/chevre/service/permit.js +4 -2
  405. package/lib/chevre/service/reserve/cancelReservation.d.ts +1 -1
  406. package/lib/chevre/service/reserve/cancelReservation.js +24 -26
  407. package/lib/chevre/service/reserve/confirmReservation.js +48 -9
  408. package/lib/chevre/service/reserve/factory.d.ts +3 -3
  409. package/lib/chevre/service/reserve/findByCode.d.ts +4 -3
  410. package/lib/chevre/service/reserve/findByCode.js +41 -8
  411. package/lib/chevre/service/reserve/findReservations.d.ts +19 -0
  412. package/lib/chevre/service/reserve/findReservations.js +74 -0
  413. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +2 -3
  414. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +1 -0
  415. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.d.ts +8 -3
  416. package/lib/chevre/service/reserve/searchByOrder.d.ts +2 -2
  417. package/lib/chevre/service/reserve/searchByOrder.js +5 -3
  418. package/lib/chevre/service/reserve/useReservation.js +7 -6
  419. package/lib/chevre/service/reserve/verifyToken4reservation.js +2 -1
  420. package/lib/chevre/service/reserve.d.ts +2 -1
  421. package/lib/chevre/service/reserve.js +3 -1
  422. package/lib/chevre/service/task/acceptCOAOffer.js +11 -6
  423. package/lib/chevre/service/task/authorizePayment.js +23 -6
  424. package/lib/chevre/service/task/checkMovieTicket.js +3 -3
  425. package/lib/chevre/service/task/checkResource.js +2 -2
  426. package/lib/chevre/service/task/confirmPayTransaction.js +2 -2
  427. package/lib/chevre/service/task/confirmReserveTransaction.js +4 -2
  428. package/lib/chevre/service/task/deletePerson.js +0 -1
  429. package/lib/chevre/service/task/deleteTransaction.js +5 -1
  430. package/lib/chevre/service/task/invalidatePaymentUrl.js +8 -2
  431. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +4 -2
  432. package/lib/chevre/service/task/onOrderPaymentCompleted.js +2 -2
  433. package/lib/chevre/service/task/onResourceUpdated.js +1 -1
  434. package/lib/chevre/service/task/pay.js +11 -3
  435. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.d.ts +7 -2
  436. package/lib/chevre/service/task/payment/payByTask.d.ts +22 -14
  437. package/lib/chevre/service/task/payment/payByTask.js +3 -2
  438. package/lib/chevre/service/task/payment/refundByTask.d.ts +7 -2
  439. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +8 -0
  440. package/lib/chevre/service/task/placeOrder.js +10 -4
  441. package/lib/chevre/service/task/publishPaymentUrl.js +11 -5
  442. package/lib/chevre/service/task/refund.js +8 -2
  443. package/lib/chevre/service/task/returnOrder.js +4 -4
  444. package/lib/chevre/service/task/returnPayTransaction.js +8 -4
  445. package/lib/chevre/service/task/returnReserveTransaction.js +2 -1
  446. package/lib/chevre/service/task/sendOrder.js +4 -4
  447. package/lib/chevre/service/task/syncResourcesFromCOA.js +2 -0
  448. package/lib/chevre/service/task/voidPayTransaction.js +10 -4
  449. package/lib/chevre/service/task/voidPayment.js +8 -0
  450. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +7 -6
  451. package/lib/chevre/service/task/voidReserveTransaction.js +8 -3
  452. package/lib/chevre/service/transaction/deleteTransaction.d.ts +4 -0
  453. package/lib/chevre/service/transaction/deleteTransaction.js +49 -49
  454. package/lib/chevre/service/transaction/placeOrder/confirm/validation/factory.d.ts +1 -1
  455. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.d.ts +2 -2
  456. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  457. package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +3 -3
  458. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +4 -6
  459. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +10 -5
  460. package/lib/chevre/service/transaction/placeOrder/confirm.js +77 -53
  461. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +4 -16
  462. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +7 -6
  463. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -1
  464. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.d.ts → issueOrderNumberIfNotExist.d.ts} +4 -4
  465. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.js → issueOrderNumberIfNotExist.js} +21 -13
  466. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.d.ts +2 -2
  467. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +3 -3
  468. package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -3
  469. package/lib/chevre/service/transaction/placeOrder/start.js +2 -2
  470. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +23 -0
  471. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +126 -0
  472. package/lib/chevre/service/transaction/placeOrder.d.ts +2 -1
  473. package/lib/chevre/service/transaction/placeOrder.js +3 -1
  474. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +2 -1
  475. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -2
  476. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +5 -3
  477. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +1 -1
  478. package/lib/chevre/service/transaction/returnOrder/preStart.js +3 -2
  479. package/lib/chevre/service/transaction/returnOrder.d.ts +16 -14
  480. package/lib/chevre/service/transaction/returnOrder.js +4 -4
  481. package/lib/chevre/service/transaction.d.ts +8 -24
  482. package/lib/chevre/service/transaction.js +6 -122
  483. package/lib/chevre/service/validation/validateOrder.js +7 -7
  484. package/lib/chevre/service.d.ts +0 -4
  485. package/lib/chevre/service.js +1 -12
  486. package/package.json +5 -5
  487. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +0 -9
  488. package/lib/chevre/repo/mongoose/schemas/telemetry.js +0 -80
  489. package/lib/chevre/repo/telemetry.d.ts +0 -9
  490. package/lib/chevre/repo/telemetry.js +0 -14
  491. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +0 -37
  492. package/lib/chevre/service/offer/moneyTransfer/authorize.js +0 -247
  493. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.d.ts +0 -16
  494. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +0 -96
  495. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.d.ts +0 -9
  496. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +0 -91
  497. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.d.ts +0 -9
  498. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +0 -78
  499. package/lib/chevre/service/offer/moneyTransfer.d.ts +0 -5
  500. package/lib/chevre/service/offer/moneyTransfer.js +0 -11
  501. package/lib/chevre/service/report/ownershipInfo.d.ts +0 -27
  502. package/lib/chevre/service/report/ownershipInfo.js +0 -39
  503. package/lib/chevre/service/report/telemetry.d.ts +0 -309
  504. package/lib/chevre/service/report/telemetry.js +0 -449
  505. package/lib/chevre/service/report.d.ts +0 -6
  506. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +0 -6
  507. package/lib/chevre/service/task/confirmMoneyTransfer.js +0 -19
  508. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +0 -6
  509. package/lib/chevre/service/task/returnMoneyTransfer.js +0 -55
  510. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +0 -6
  511. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +0 -22
  512. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.d.ts +0 -9
  513. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +0 -138
  514. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +0 -2
  515. package/lib/chevre/service/transaction/moneyTransfer/factory.js +0 -55
  516. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +0 -9
  517. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +0 -65
  518. package/lib/chevre/service/transaction/moneyTransfer.d.ts +0 -69
  519. package/lib/chevre/service/transaction/moneyTransfer.js +0 -649
@@ -29,750 +29,282 @@ 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
- }
682
- async findPayAction(params) {
683
- const payActions = await this.search({
684
- limit: 1,
685
- page: 1,
686
- actionStatus: (Array.isArray(params.actionStatus?.$in))
687
- ? { $in: params.actionStatus?.$in }
688
- : { $in: [factory.actionStatusType.CompletedActionStatus] },
689
- project: { id: { $eq: params.project.id } },
690
- typeOf: { $eq: factory.actionType.PayAction },
691
- object: { paymentMethod: { paymentMethodId: { $eq: params.paymentMethodId } } }
692
- }, []);
693
- return payActions.shift();
694
- }
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
+ // }
283
+ // public async findPayAction(params: {
284
+ // project: { id: string };
285
+ // paymentMethodId: string;
286
+ // actionStatus?: { $in?: factory.actionStatusType[] };
287
+ // }): Promise<factory.action.trade.pay.IAction | undefined> {
288
+ // const payActions = await this.findActionsByType<factory.actionType.PayAction>(
289
+ // {
290
+ // limit: 1,
291
+ // page: 1,
292
+ // actionStatus: (Array.isArray(params.actionStatus?.$in))
293
+ // ? { $in: params.actionStatus?.$in }
294
+ // : { $in: [factory.actionStatusType.CompletedActionStatus] },
295
+ // project: { id: { $eq: params.project.id } },
296
+ // typeOf: { $eq: factory.actionType.PayAction },
297
+ // object: { paymentMethod: { paymentMethodId: { $eq: params.paymentMethodId } } }
298
+ // },
299
+ // []
300
+ // ) as factory.action.trade.pay.IAction[];
301
+ // return payActions.shift();
302
+ // }
695
303
  /**
696
304
  * 取引に対するアクションを検索する
697
305
  */
698
306
  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
- // );
307
+ return (this.findAnyActionsByPurpose(params));
776
308
  }
777
309
  /**
778
310
  * 注文番号から、注文に対するアクションを検索する
@@ -791,7 +323,7 @@ class ActionRepo {
791
323
  const projection = {
792
324
  _id: 0,
793
325
  id: { $toString: '$_id' },
794
- ...Object.fromEntries(AVAILABLE_PROJECT_FIELDS.map((key) => ([key, 1])))
326
+ ...Object.fromEntries(actionProcess_1.AVAILABLE_PROJECT_FIELDS.map((key) => ([key, 1])))
795
327
  };
796
328
  const query = this.actionModel.find(filter, projection);
797
329
  // .select({ __v: 0, createdAt: 0, updatedAt: 0 });
@@ -803,70 +335,70 @@ class ActionRepo {
803
335
  .lean() // 2024-08-26~
804
336
  .exec();
805
337
  }
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
338
  async deleteByProject(params) {
828
339
  await this.actionModel.deleteMany({
829
340
  'project.id': { $eq: params.project.id }
830
341
  })
831
342
  .exec();
832
343
  }
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
- }
344
+ // public async reCompleteAuthorizeEventOfferAction(params: {
345
+ // id: string;
346
+ // object: factory.action.authorize.offer.eventService.IObject;
347
+ // result: factory.action.authorize.offer.eventService.IResult;
348
+ // }): Promise<void> {
349
+ // return this.actionModel.findOneAndUpdate(
350
+ // {
351
+ // // typeOf: factory.actionType.AuthorizeAction,
352
+ // _id: { $eq: params.id },
353
+ // // ActiveActionStatus->CompletedActionStatusで再実装(2024-01-15~)
354
+ // // actionStatus: factory.actionStatusType.CompletedActionStatus
355
+ // actionStatus: { $eq: factory.actionStatusType.ActiveActionStatus }
356
+ // },
357
+ // {
358
+ // $set: {
359
+ // actionStatus: factory.actionStatusType.CompletedActionStatus,
360
+ // object: params.object,
361
+ // result: params.result,
362
+ // endDate: new Date()
363
+ // }
364
+ // },
365
+ // { new: true, projection: { _id: 1 } }
366
+ // )
367
+ // .lean<{ _id: ObjectId }>()
368
+ // .exec()
369
+ // .then((doc) => {
370
+ // if (doc === null) {
371
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
372
+ // }
373
+ // });
374
+ // }
375
+ // public async updateById(params: {
376
+ // id: string;
377
+ // update: any;
378
+ // }): Promise<void> {
379
+ // await this.actionModel.updateOne(
380
+ // { _id: { $eq: params.id } },
381
+ // params.update
382
+ // )
383
+ // .exec();
384
+ // }
385
+ // public async findByIdAndUpdate(params: {
386
+ // id: string;
387
+ // update: UpdateQuery<IAction<factory.actionType>>;
388
+ // }): Promise<void> {
389
+ // await this.actionModel.findOneAndUpdate(
390
+ // { _id: { $eq: params.id } },
391
+ // params.update,
392
+ // { projection: { _id: 1 } }
393
+ // )
394
+ // .lean<{ _id: ObjectId }>()
395
+ // .exec()
396
+ // .then((doc) => {
397
+ // if (doc === null) {
398
+ // throw new factory.errors.NotFound(this.actionModel.modelName);
399
+ // }
400
+ // });
401
+ // }
870
402
  /**
871
403
  * イベントと入場ゲート指定で予約使用アクションを集計する
872
404
  * discontinue(2024-12-26~)
@@ -927,96 +459,6 @@ class ActionRepo {
927
459
  // ])
928
460
  // .exec();
929
461
  // }
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
462
  /**
1021
463
  * 開始日時を一定期間過ぎたアクションを削除する
1022
464
  */
@@ -1071,20 +513,23 @@ class ActionRepo {
1071
513
  };
1072
514
  });
1073
515
  }
1074
- // public async saveRecipeWithDateCreated(savingRecipe: IRecipeAsDocument & {
1075
- // dateModified: Date;
1076
- // }) {
1077
- // const { typeOf, project, recipeCategory, recipeFor, step, dateCreated, dateModified } = savingRecipe;
516
+ // public async saveActionWithEndDate(savingAction: Omit<factory.action.authorize.invoice.IAction, 'id'>) {
517
+ // const { sameAs, typeOf, project, agent, object, ...updateFields } = savingAction;
1078
518
  // const filter: FilterQuery<factory.recipe.IRecipe> = {
1079
- // 'recipeFor.id': { $eq: recipeFor.id }
519
+ // 'project.id': { $eq: project.id },
520
+ // // 'agent.id': { $exists: true, $eq: agent.id },
521
+ // // 'object.typeOf': { $exists: true, $eq: object.typeOf },
522
+ // 'object.paymentMethodId': { $exists: true, $eq: object.paymentMethodId },
523
+ // typeOf: { $eq: typeOf },
524
+ // 'sameAs.id': { $exists: true, $eq: sameAs.id }
1080
525
  // };
1081
- // const setOnInsert: AnyKeys<IRecipeAsDocument> = { project, typeOf, recipeCategory, recipeFor, dateCreated };
1082
- // const setKeys: AnyKeys<IRecipeAsDocument> = { step, dateModified };
1083
- // const update: UpdateQuery<IRecipeAsDocument> = {
526
+ // const setOnInsert: AnyKeys<IAction<factory.actionType>> = { typeOf, project, agent, object, sameAs };
527
+ // const setKeys: AnyKeys<IAction<factory.actionType>> = updateFields;
528
+ // const update: UpdateQuery<IAction<factory.actionType>> = {
1084
529
  // $setOnInsert: setOnInsert,
1085
530
  // $set: setKeys
1086
531
  // };
1087
- // return this.actionRecipeModel.updateOne<HydratedDocument<IRecipeAsDocument>>(
532
+ // return this.actionModel.updateOne<HydratedDocument<IRecipeAsDocument>>(
1088
533
  // filter,
1089
534
  // update,
1090
535
  // {
@@ -1094,237 +539,25 @@ class ActionRepo {
1094
539
  // )
1095
540
  // .exec();
1096
541
  // }
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
- }
542
+ // public async findRecipeByAction<T extends factory.recipe.RecipeCategory>(params: {
543
+ // project: { id: string };
544
+ // recipeFor: { id: string };
545
+ // }): Promise<Pick<IActionRecipe<T>, 'step' | 'recipeCategory'> | null> {
546
+ // return this.actionRecipeModel.findOne(
547
+ // {
548
+ // 'project.id': { $eq: params.project.id },
549
+ // 'recipeFor.id': { $eq: params.recipeFor.id }
550
+ // },
551
+ // { step: 1, recipeCategory: 1 }
552
+ // // { lean: true }
553
+ // )
554
+ // .lean<Pick<IActionRecipe<T>, 'step' | 'recipeCategory'>>()
555
+ // .exec();
556
+ // // if (result === null) {
557
+ // // throw new factory.errors.NotFound(this.actionRecipeModel.modelName);
558
+ // // }
559
+ // // return result;
560
+ // }
1328
561
  getCursor(conditions, projection) {
1329
562
  return this.actionModel.find(conditions, projection)
1330
563
  .sort({ startDate: factory.sortType.Descending })
@@ -1334,126 +567,5 @@ class ActionRepo {
1334
567
  return this.actionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
1335
568
  .exec();
1336
569
  }
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
570
  }
1459
571
  exports.ActionRepo = ActionRepo;