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

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 (521) 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 +3 -18
  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 +9 -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/preStart/validateAcceptedPaymentMethodIfNeeded.d.ts +4 -7
  231. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +258 -39
  232. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +11 -2
  233. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +2 -2
  234. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +9 -2
  235. package/lib/chevre/service/assetTransaction/pay/start.d.ts +13 -2
  236. package/lib/chevre/service/assetTransaction/refund.d.ts +5 -2
  237. package/lib/chevre/service/assetTransaction/refund.js +1 -1
  238. package/lib/chevre/service/assetTransaction/reserve/confirm/factory.d.ts +1 -1
  239. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +6 -3
  240. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.d.ts +4 -7
  241. package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +1 -41
  242. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +3 -15
  243. package/lib/chevre/service/assetTransaction/reserve/start/factory/price.d.ts +1 -1
  244. package/lib/chevre/service/assetTransaction/reserve/start.js +6 -7
  245. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.d.ts +19 -4
  246. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +7 -1
  247. package/lib/chevre/service/assetTransaction.d.ts +1 -1
  248. package/lib/chevre/service/delivery/factory.js +44 -40
  249. package/lib/chevre/service/delivery/product/factory.js +2 -4
  250. package/lib/chevre/service/delivery/reservation/factory.js +17 -22
  251. package/lib/chevre/service/event/saveScreeningEvents.js +2 -2
  252. package/lib/chevre/service/event.js +1 -1
  253. package/lib/chevre/service/notification/notifyByEmail.d.ts +1 -1
  254. package/lib/chevre/service/notification/triggerWebhook.d.ts +7 -6
  255. package/lib/chevre/service/notification/triggerWebhook.js +1 -1
  256. package/lib/chevre/service/offer/any.d.ts +1 -1
  257. package/lib/chevre/service/offer/event/authorize/factory.d.ts +1 -1
  258. package/lib/chevre/service/offer/event/authorize/factory.js +18 -58
  259. package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -3
  260. package/lib/chevre/service/offer/event/authorize.d.ts +6 -5
  261. package/lib/chevre/service/offer/event/authorize.js +27 -25
  262. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +17 -15
  263. package/lib/chevre/service/offer/event/issueEventOfferTicket.js +4 -4
  264. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +2 -1
  265. package/lib/chevre/service/offer/event/searchOffersByIds.js +2 -1
  266. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +0 -2
  267. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -0
  268. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.d.ts +2 -0
  269. package/lib/chevre/service/offer/event/voidTransaction.d.ts +10 -3
  270. package/lib/chevre/service/offer/event/voidTransaction.js +20 -16
  271. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +8 -3
  272. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +6 -5
  273. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.d.ts +16 -5
  274. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +7 -7
  275. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +1 -1
  276. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +21 -36
  277. package/lib/chevre/service/offer/eventServiceByCOA/authorize.d.ts +7 -5
  278. package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +3 -10
  279. package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +21 -13
  280. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.d.ts +1 -1
  281. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +19 -10
  282. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +2 -2
  283. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +2 -1
  284. package/lib/chevre/service/offer/product/factory.d.ts +5 -5
  285. package/lib/chevre/service/offer/product/factory.js +13 -5
  286. package/lib/chevre/service/offer/product.d.ts +9 -7
  287. package/lib/chevre/service/offer/product.js +21 -17
  288. package/lib/chevre/service/offer.d.ts +1 -2
  289. package/lib/chevre/service/offer.js +11 -9
  290. package/lib/chevre/service/order/confirmPayTransaction.d.ts +1 -3
  291. package/lib/chevre/service/order/confirmPayTransaction.js +1 -0
  292. package/lib/chevre/service/order/deleteOrder.js +2 -2
  293. package/lib/chevre/service/order/findPlaceOrderTransaction.d.ts +2 -2
  294. package/lib/chevre/service/order/findPlaceOrderTransaction.js +1 -1
  295. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.d.ts +16 -0
  296. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +97 -0
  297. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.d.ts +21 -0
  298. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionCanceled.js +86 -0
  299. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.d.ts +22 -0
  300. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +112 -0
  301. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.d.ts +22 -0
  302. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onReserveTransactionConfirmed.js +74 -0
  303. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +25 -0
  304. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +111 -0
  305. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.d.ts +16 -0
  306. package/lib/chevre/service/order/onAssetTransactionStatusChanged/processing2inTransit.js +74 -0
  307. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +8 -30
  308. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +39 -349
  309. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  310. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.d.ts +6 -7
  311. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  312. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.d.ts +6 -5
  313. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.d.ts +7 -6
  314. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +1 -1
  315. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +54 -37
  316. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  317. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +82 -66
  318. package/lib/chevre/service/order/payOrder.d.ts +2 -2
  319. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +12 -8
  320. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +41 -26
  321. package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +0 -1
  322. package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +3 -28
  323. package/lib/chevre/service/order/placeOrder/factory.js +5 -6
  324. package/lib/chevre/service/order/placeOrder.d.ts +17 -12
  325. package/lib/chevre/service/order/placeOrder.js +7 -2
  326. package/lib/chevre/service/order/returnOrder.d.ts +2 -2
  327. package/lib/chevre/service/order/returnOrder.js +1 -1
  328. package/lib/chevre/service/order/sendOrder.d.ts +6 -6
  329. package/lib/chevre/service/order/sendOrder.js +14 -10
  330. package/lib/chevre/service/order.d.ts +3 -6
  331. package/lib/chevre/service/order.js +3 -9
  332. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +6 -6
  333. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +5 -8
  334. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +8 -5
  335. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +14 -10
  336. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +34 -17
  337. package/lib/chevre/service/payment/any/authorize.d.ts +105 -0
  338. package/lib/chevre/service/payment/any/authorize.js +239 -0
  339. package/lib/chevre/service/payment/any/factory.js +1 -0
  340. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
  341. package/lib/chevre/service/payment/any/findAcceptAction.js +95 -0
  342. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +42 -0
  343. package/lib/chevre/service/payment/any/findAuthorizeAction.js +84 -0
  344. package/lib/chevre/service/payment/any/findCheckAction.d.ts +45 -0
  345. package/lib/chevre/service/payment/any/findCheckAction.js +90 -0
  346. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +29 -0
  347. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +188 -0
  348. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +14 -5
  349. package/lib/chevre/service/payment/any/onPayActionCompleted.js +10 -2
  350. package/lib/chevre/service/payment/any/onPaymentStatusChanged.d.ts +10 -5
  351. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +21 -11
  352. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.d.ts +13 -10
  353. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +9 -6
  354. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +30 -0
  355. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +126 -0
  356. package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.d.ts +2 -2
  357. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +68 -0
  358. package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
  359. package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +2 -1
  360. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +34 -0
  361. package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
  362. package/lib/chevre/service/payment/any.d.ts +8 -305
  363. package/lib/chevre/service/payment/any.js +17 -857
  364. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.d.ts +8 -6
  365. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +4 -4
  366. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.d.ts +8 -6
  367. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +3 -3
  368. package/lib/chevre/service/payment/creditCard/authorize.d.ts +3 -2
  369. package/lib/chevre/service/payment/creditCard/authorize.js +2 -2
  370. package/lib/chevre/service/payment/creditCard/payCreditCard.d.ts +7 -2
  371. package/lib/chevre/service/payment/creditCard/payCreditCard.js +8 -4
  372. package/lib/chevre/service/payment/creditCard/refundCreditCard.d.ts +7 -2
  373. package/lib/chevre/service/payment/creditCard/refundCreditCard.js +11 -7
  374. package/lib/chevre/service/payment/creditCard/voidTransaction.d.ts +9 -8
  375. package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -7
  376. package/lib/chevre/service/payment/faceToFace.d.ts +12 -3
  377. package/lib/chevre/service/payment/faceToFace.js +16 -8
  378. package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +2 -1
  379. package/lib/chevre/service/payment/factory.js +4 -2
  380. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +9 -2
  381. package/lib/chevre/service/payment/movieTicket/authorize.js +1 -1
  382. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.d.ts +3 -3
  383. package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +3 -3
  384. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.d.ts +12 -0
  385. package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.js +72 -0
  386. package/lib/chevre/service/payment/movieTicket/payMovieTicket/processSeatInfoSync.d.ts +8 -0
  387. package/lib/chevre/service/payment/movieTicket/payMovieTicket/processSeatInfoSync.js +29 -0
  388. package/lib/chevre/service/payment/movieTicket/payMovieTicket.d.ts +8 -3
  389. package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +14 -77
  390. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/createSeatInfoSyncCancelInOnRefund.d.ts +14 -0
  391. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/createSeatInfoSyncCancelInOnRefund.js +49 -0
  392. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/createSeatInfoSyncInOnRefund.d.ts +14 -0
  393. package/lib/chevre/service/{report.js → payment/movieTicket/refundMovieTicket/createSeatInfoSyncInOnRefund.js} +21 -8
  394. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSync.d.ts +12 -0
  395. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSync.js +72 -0
  396. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSyncCancel.d.ts +8 -0
  397. package/lib/chevre/service/payment/movieTicket/refundMovieTicket/processSeatInfoSyncCancel.js +60 -0
  398. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.d.ts +8 -3
  399. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +20 -125
  400. package/lib/chevre/service/payment/movieTicket/validation.d.ts +11 -11
  401. package/lib/chevre/service/payment/movieTicket/validation.js +50 -32
  402. package/lib/chevre/service/payment/movieTicket/voidTransaction.d.ts +6 -2
  403. package/lib/chevre/service/payment/movieTicket/voidTransaction.js +1 -1
  404. package/lib/chevre/service/payment/paymentCard.d.ts +12 -3
  405. package/lib/chevre/service/payment/paymentCard.js +16 -8
  406. package/lib/chevre/service/permit.js +4 -2
  407. package/lib/chevre/service/reserve/cancelReservation.d.ts +1 -1
  408. package/lib/chevre/service/reserve/cancelReservation.js +24 -26
  409. package/lib/chevre/service/reserve/confirmReservation.js +48 -9
  410. package/lib/chevre/service/reserve/factory.d.ts +3 -3
  411. package/lib/chevre/service/reserve/findByCode.d.ts +4 -3
  412. package/lib/chevre/service/reserve/findByCode.js +41 -8
  413. package/lib/chevre/service/reserve/findReservations.d.ts +19 -0
  414. package/lib/chevre/service/reserve/findReservations.js +74 -0
  415. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +2 -3
  416. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +1 -0
  417. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.d.ts +8 -3
  418. package/lib/chevre/service/reserve/searchByOrder.d.ts +2 -2
  419. package/lib/chevre/service/reserve/searchByOrder.js +5 -3
  420. package/lib/chevre/service/reserve/useReservation.js +7 -6
  421. package/lib/chevre/service/reserve/verifyToken4reservation.js +2 -1
  422. package/lib/chevre/service/reserve.d.ts +2 -1
  423. package/lib/chevre/service/reserve.js +3 -1
  424. package/lib/chevre/service/task/acceptCOAOffer.js +11 -6
  425. package/lib/chevre/service/task/authorizePayment.js +25 -6
  426. package/lib/chevre/service/task/checkMovieTicket.js +3 -3
  427. package/lib/chevre/service/task/checkResource.js +2 -2
  428. package/lib/chevre/service/task/confirmPayTransaction.js +2 -2
  429. package/lib/chevre/service/task/confirmReserveTransaction.js +4 -2
  430. package/lib/chevre/service/task/deletePerson.js +0 -1
  431. package/lib/chevre/service/task/deleteTransaction.js +5 -1
  432. package/lib/chevre/service/task/invalidatePaymentUrl.js +8 -2
  433. package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +4 -2
  434. package/lib/chevre/service/task/onOrderPaymentCompleted.js +2 -2
  435. package/lib/chevre/service/task/onResourceUpdated.js +1 -1
  436. package/lib/chevre/service/task/pay.js +11 -3
  437. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.d.ts +7 -2
  438. package/lib/chevre/service/task/payment/payByTask.d.ts +22 -14
  439. package/lib/chevre/service/task/payment/payByTask.js +3 -2
  440. package/lib/chevre/service/task/payment/refundByTask.d.ts +7 -2
  441. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +8 -0
  442. package/lib/chevre/service/task/placeOrder.js +10 -4
  443. package/lib/chevre/service/task/publishPaymentUrl.js +13 -5
  444. package/lib/chevre/service/task/refund.js +8 -2
  445. package/lib/chevre/service/task/returnOrder.js +4 -4
  446. package/lib/chevre/service/task/returnPayTransaction.js +8 -4
  447. package/lib/chevre/service/task/returnReserveTransaction.js +2 -1
  448. package/lib/chevre/service/task/sendOrder.js +4 -4
  449. package/lib/chevre/service/task/syncResourcesFromCOA.js +2 -0
  450. package/lib/chevre/service/task/voidPayTransaction.js +10 -4
  451. package/lib/chevre/service/task/voidPayment.js +8 -0
  452. package/lib/chevre/service/task/voidRegisterServiceTransaction.js +7 -6
  453. package/lib/chevre/service/task/voidReserveTransaction.js +8 -3
  454. package/lib/chevre/service/transaction/deleteTransaction.d.ts +4 -0
  455. package/lib/chevre/service/transaction/deleteTransaction.js +49 -49
  456. package/lib/chevre/service/transaction/placeOrder/confirm/validation/factory.d.ts +1 -1
  457. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.d.ts +2 -2
  458. package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
  459. package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +3 -3
  460. package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +4 -6
  461. package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +10 -5
  462. package/lib/chevre/service/transaction/placeOrder/confirm.js +77 -53
  463. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +4 -16
  464. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +7 -6
  465. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +1 -1
  466. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.d.ts → issueOrderNumberIfNotExist.d.ts} +4 -4
  467. package/lib/chevre/service/transaction/placeOrder/{publishOrderNumberIfNotExist.js → issueOrderNumberIfNotExist.js} +21 -13
  468. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.d.ts +2 -2
  469. package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +3 -3
  470. package/lib/chevre/service/transaction/placeOrder/start.d.ts +3 -3
  471. package/lib/chevre/service/transaction/placeOrder/start.js +2 -2
  472. package/lib/chevre/service/transaction/placeOrder/updateAgent.d.ts +23 -0
  473. package/lib/chevre/service/transaction/placeOrder/updateAgent.js +126 -0
  474. package/lib/chevre/service/transaction/placeOrder.d.ts +2 -1
  475. package/lib/chevre/service/transaction/placeOrder.js +3 -1
  476. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +2 -1
  477. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -2
  478. package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +5 -3
  479. package/lib/chevre/service/transaction/returnOrder/preStart.d.ts +1 -1
  480. package/lib/chevre/service/transaction/returnOrder/preStart.js +3 -2
  481. package/lib/chevre/service/transaction/returnOrder.d.ts +16 -14
  482. package/lib/chevre/service/transaction/returnOrder.js +4 -4
  483. package/lib/chevre/service/transaction.d.ts +8 -24
  484. package/lib/chevre/service/transaction.js +6 -122
  485. package/lib/chevre/service/validation/validateOrder.js +7 -7
  486. package/lib/chevre/service.d.ts +0 -4
  487. package/lib/chevre/service.js +1 -12
  488. package/package.json +5 -5
  489. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +0 -9
  490. package/lib/chevre/repo/mongoose/schemas/telemetry.js +0 -80
  491. package/lib/chevre/repo/telemetry.d.ts +0 -9
  492. package/lib/chevre/repo/telemetry.js +0 -14
  493. package/lib/chevre/service/offer/moneyTransfer/authorize.d.ts +0 -37
  494. package/lib/chevre/service/offer/moneyTransfer/authorize.js +0 -247
  495. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.d.ts +0 -16
  496. package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +0 -96
  497. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.d.ts +0 -9
  498. package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +0 -91
  499. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.d.ts +0 -9
  500. package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +0 -78
  501. package/lib/chevre/service/offer/moneyTransfer.d.ts +0 -5
  502. package/lib/chevre/service/offer/moneyTransfer.js +0 -11
  503. package/lib/chevre/service/report/ownershipInfo.d.ts +0 -27
  504. package/lib/chevre/service/report/ownershipInfo.js +0 -39
  505. package/lib/chevre/service/report/telemetry.d.ts +0 -309
  506. package/lib/chevre/service/report/telemetry.js +0 -449
  507. package/lib/chevre/service/report.d.ts +0 -6
  508. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +0 -6
  509. package/lib/chevre/service/task/confirmMoneyTransfer.js +0 -19
  510. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +0 -6
  511. package/lib/chevre/service/task/returnMoneyTransfer.js +0 -55
  512. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +0 -6
  513. package/lib/chevre/service/task/voidMoneyTransferTransaction.js +0 -22
  514. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.d.ts +0 -9
  515. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +0 -138
  516. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +0 -2
  517. package/lib/chevre/service/transaction/moneyTransfer/factory.js +0 -55
  518. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +0 -9
  519. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +0 -65
  520. package/lib/chevre/service/transaction/moneyTransfer.d.ts +0 -69
  521. package/lib/chevre/service/transaction/moneyTransfer.js +0 -649
@@ -32,23 +32,10 @@ const transaction_1 = require("../eventEmitter/transaction");
32
32
  const factory = __importStar(require("../factory"));
33
33
  const settings_1 = require("../settings");
34
34
  const transaction_2 = require("./mongoose/schemas/transaction");
35
- const AVAILABLE_PROJECT_FIELDS = [
36
- 'project',
37
- 'status',
38
- 'typeOf',
39
- 'agent',
40
- 'recipient',
41
- 'seller',
42
- 'error',
43
- 'result',
44
- 'object',
45
- 'expires',
46
- 'startDate',
47
- 'endDate',
48
- 'tasksExportAction',
49
- 'potentialActions',
50
- 'instrument'
51
- ];
35
+ // type IOmittedFieldsInProgress = 'tasksExportAction' | 'tasksExportedAt' | 'tasksExportationStatus';
36
+ // export type IMoneyTransferTransactionInProgress = Omit<factory.transaction.moneyTransfer.ITransaction, IOmittedFieldsInProgress>;
37
+ // type IStartedTransactionFields = 'expires' | 'id' | 'startDate' | 'status';
38
+ // export type IStartedTransaction = Pick<factory.transaction.ITransaction<factory.transactionType>, IStartedTransactionFields>;
52
39
  /**
53
40
  * 取引リポジトリ
54
41
  */
@@ -57,489 +44,547 @@ class TransactionRepo {
57
44
  constructor(connection) {
58
45
  this.transactionModel = connection.model(transaction_2.modelName, (0, transaction_2.createSchema)());
59
46
  }
60
- static CREATE_MONGO_CONDITIONS(params) {
61
- const andConditions = [];
62
- const projectIdEq = params.project?.id?.$eq;
63
- /* istanbul ignore else */
64
- if (typeof projectIdEq === 'string') {
65
- andConditions.push({ 'project.id': { $eq: projectIdEq } });
66
- }
67
- /* istanbul ignore else */
68
- if (typeof params.typeOf === 'string') {
69
- andConditions.push({ typeOf: { $eq: params.typeOf } });
70
- }
71
- /* istanbul ignore else */
72
- if (params.startFrom !== undefined) {
73
- andConditions.push({
74
- startDate: { $gte: params.startFrom }
75
- });
76
- }
77
- /* istanbul ignore else */
78
- if (params.startThrough !== undefined) {
79
- andConditions.push({
80
- startDate: { $lte: params.startThrough }
81
- });
82
- }
83
- /* istanbul ignore else */
84
- if (params.endFrom !== undefined) {
85
- andConditions.push({
86
- endDate: {
87
- $exists: true,
88
- $gte: params.endFrom
89
- }
90
- });
91
- }
92
- /* istanbul ignore else */
93
- if (params.endThrough !== undefined) {
94
- andConditions.push({
95
- endDate: {
96
- $exists: true,
97
- $lt: params.endThrough
98
- }
99
- });
100
- }
101
- /* istanbul ignore else */
102
- if (Array.isArray(params.ids)) {
103
- andConditions.push({
104
- _id: { $in: params.ids }
105
- });
106
- }
107
- /* istanbul ignore else */
108
- if (Array.isArray(params.statuses)) {
109
- andConditions.push({ status: { $in: params.statuses } });
110
- }
111
- /* istanbul ignore else */
112
- const statusIn = params.status?.$in;
113
- if (Array.isArray(statusIn)) {
114
- andConditions.push({ status: { $in: statusIn } });
115
- }
116
- /* istanbul ignore else */
117
- if (params.agent !== undefined) {
118
- /* istanbul ignore else */
119
- if (params.agent.typeOf !== undefined) {
120
- andConditions.push({
121
- 'agent.typeOf': {
122
- $exists: true,
123
- $eq: params.agent.typeOf
124
- }
125
- });
126
- }
127
- /* istanbul ignore else */
128
- if (Array.isArray(params.agent.ids)) {
129
- andConditions.push({
130
- 'agent.id': {
131
- $exists: true,
132
- $in: params.agent.ids
133
- }
134
- });
135
- }
136
- /* istanbul ignore else */
137
- if (Array.isArray(params.agent.identifiers)) {
138
- andConditions.push({
139
- 'agent.identifier': {
140
- $exists: true,
141
- $in: params.agent.identifiers
142
- }
143
- });
144
- }
145
- // if (typeof params.agent.familyName === 'string' && params.agent.familyName.length > 0) {
146
- // andConditions.push({
147
- // 'agent.familyName': {
148
- // $exists: true,
149
- // $regex: new RegExp(params.agent.familyName)
150
- // }
151
- // });
152
- // }
153
- // if (typeof params.agent.givenName === 'string' && params.agent.givenName.length > 0) {
154
- // andConditions.push({
155
- // 'agent.givenName': {
156
- // $exists: true,
157
- // $regex: new RegExp(params.agent.givenName)
158
- // }
159
- // });
160
- // }
161
- // if (typeof params.agent.email === 'string' && params.agent.email.length > 0) {
162
- // andConditions.push({
163
- // 'agent.email': {
164
- // $exists: true,
165
- // $regex: new RegExp(params.agent.email)
166
- // }
167
- // });
168
- // }
169
- // if (typeof params.agent.telephone === 'string' && params.agent.telephone.length > 0) {
170
- // andConditions.push({
171
- // 'agent.telephone': {
172
- // $exists: true,
173
- // $regex: new RegExp(params.agent.telephone)
174
- // }
175
- // });
176
- // }
177
- }
178
- const tasksExportActionStatusIn = params.tasksExportAction?.actionStatus?.$in;
179
- /* istanbul ignore else */
180
- if (Array.isArray(tasksExportActionStatusIn)) {
181
- andConditions.push({ 'tasksExportAction.actionStatus': { $exists: true, $in: tasksExportActionStatusIn } });
182
- }
183
- const tasksExportActionStatusEq = params.tasksExportAction?.actionStatus?.$eq;
184
- /* istanbul ignore else */
185
- if (typeof tasksExportActionStatusEq === 'string') {
186
- andConditions.push({ 'tasksExportAction.actionStatus': { $exists: true, $eq: tasksExportActionStatusEq } });
187
- }
188
- switch (params.typeOf) {
189
- case factory.transactionType.PlaceOrder:
190
- const sellerIdIn = params.seller?.ids;
191
- if (Array.isArray(sellerIdIn)) {
192
- andConditions.push({ 'seller.id': { $exists: true, $in: sellerIdIn } });
193
- }
194
- const resultOrderNumberIn = params.result?.order?.orderNumbers;
195
- if (Array.isArray(resultOrderNumberIn)) {
196
- andConditions.push({ 'result.order.orderNumber': { $exists: true, $in: resultOrderNumberIn } });
197
- }
198
- const resultOrderConfirmationNumberEq = params.result?.order?.confirmationNumber?.$eq;
199
- if (typeof resultOrderConfirmationNumberEq === 'string') {
200
- andConditions.push({
201
- 'result.order.confirmationNumber': { $exists: true, $eq: resultOrderConfirmationNumberEq }
202
- });
203
- }
204
- const objectOrderNumberEq = params.object?.orderNumber?.$eq;
205
- if (typeof objectOrderNumberEq === 'string') {
206
- andConditions.push({ 'object.orderNumber': { $exists: true, $eq: objectOrderNumberEq } });
207
- }
208
- break;
209
- case factory.transactionType.ReturnOrder:
210
- /* istanbul ignore else */
211
- if (params.object !== undefined) {
212
- /* istanbul ignore else */
213
- if (params.object.order !== undefined) {
214
- /* istanbul ignore else */
215
- if (Array.isArray(params.object.order.orderNumbers)) {
216
- andConditions.push({
217
- 'object.order.orderNumber': {
218
- $exists: true,
219
- $in: params.object.order.orderNumbers
220
- }
221
- });
222
- }
223
- }
224
- }
225
- break;
226
- default:
227
- }
228
- return andConditions;
229
- }
230
- /**
231
- * 取引を開始する
232
- */
233
- async start(params) {
234
- const status = factory.transactionStatusType.InProgress;
235
- const tasksExportAction = { actionStatus: factory.actionStatusType.PotentialActionStatus };
236
- // const tasksExportationStatus = factory.transactionTasksExportationStatus.Unexported; // discontinue(2024-06-20~)
237
- const startDate = new Date();
238
- let expires;
239
- const { typeOf } = params;
240
- if (typeOf === factory.transactionType.PlaceOrder
241
- || typeOf === factory.transactionType.ReturnOrder) {
242
- // expiresInSecondsの指定があれば優先して適用する(2022-11-25~)
243
- if (typeof params.expiresInSeconds === 'number' && params.expiresInSeconds > 0) {
244
- expires = (0, moment_1.default)(startDate)
245
- .add(params.expiresInSeconds, 'seconds')
246
- .toDate();
247
- }
248
- else {
249
- throw new factory.errors.ArgumentNull('expiresInSeconds');
250
- }
251
- }
252
- else {
253
- expires = params.expires;
254
- }
255
- let creatingTransaction;
256
- if (typeOf === factory.transactionType.MoneyTransfer) {
257
- const { agent, project, object, seller, recipient } = params;
258
- creatingTransaction = {
259
- status, startDate, expires, typeOf, tasksExportAction,
260
- agent, project, seller, object, recipient
261
- };
262
- }
263
- else if (typeOf === factory.transactionType.PlaceOrder) {
264
- const { agent, project, object, seller, instrument } = params;
265
- creatingTransaction = {
266
- status, startDate, expires, typeOf, tasksExportAction,
267
- agent, project, seller, object,
268
- ...(typeof instrument?.id === 'string') ? { instrument } : undefined
269
- };
270
- }
271
- else if (typeOf === factory.transactionType.ReturnOrder) {
272
- const { agent, project, object, seller } = params;
273
- creatingTransaction = {
274
- status, startDate, expires, typeOf, tasksExportAction,
275
- agent, project, seller, object
276
- };
277
- }
278
- else {
279
- throw new factory.errors.NotImplemented(`${typeOf} not implemented`);
280
- }
281
- // reimplemnt with insertMany(2024-05-30~)
282
- const result = await this.transactionModel.insertMany(creatingTransaction, { rawResult: true });
283
- const id = result.insertedIds?.[0]?.toHexString();
284
- if (typeof id !== 'string') {
285
- throw new factory.errors.Internal('transaction not saved');
286
- }
287
- // 取引開始時にも取引イベントエミッター連携(2024-03-21~)
288
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({ id, typeOf, status });
289
- return { expires, id, startDate, status }; // minimize response(2024-05-30~)
290
- }
291
- /**
292
- * 特定取引検索
293
- */
294
- async projectFieldsById(params, inclusion // make required(2024-05-31~)
295
- ) {
296
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
297
- if (Array.isArray(inclusion) && inclusion.length > 0) {
298
- positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
299
- }
300
- else {
301
- throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
302
- }
303
- const projection = {
304
- _id: 0,
305
- id: { $toString: '$_id' },
306
- ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
307
- };
308
- // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
309
- // if (Array.isArray(inclusion) && inclusion.length > 0) {
310
- // inclusion.forEach((field) => {
311
- // projection[field] = 1;
312
- // });
313
- // } else {
314
- // projection = {
315
- // __v: 0,
316
- // createdAt: 0,
317
- // updatedAt: 0
318
- // };
319
- // }
320
- const doc = await this.transactionModel.findOne({
321
- _id: { $eq: params.id },
322
- typeOf: { $eq: params.typeOf }
323
- }, projection)
324
- .lean() // 2024-08-26~
325
- .exec();
326
- if (doc === null) {
327
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} not found`);
328
- }
329
- return doc;
330
- }
331
- /**
332
- * 進行中の取引を取得する
333
- */
334
- async projectFieldsInProgressById(params, inclusion // make required(2024-05-29~)
335
- ) {
336
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
337
- if (Array.isArray(inclusion) && inclusion.length > 0) {
338
- positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
339
- }
340
- else {
341
- throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
342
- }
343
- const projection = {
344
- _id: 0,
345
- id: { $toString: '$_id' },
346
- ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
347
- };
348
- // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: ProjectionElementType } = {};
349
- // if (Array.isArray(inclusion) && inclusion.length > 0) {
350
- // inclusion.forEach((field) => {
351
- // projection[field] = 1;
352
- // });
353
- // } else {
354
- // // minimize(2024-05-29~)
355
- // projection = {
356
- // __v: 0,
357
- // createdAt: 0,
358
- // updatedAt: 0,
359
- // tasksExportAction: 0,
360
- // ...{
361
- // tasksExportedAt: 0,
362
- // tasksExportationStatus: 0
363
- // }
364
- // };
365
- // }
366
- const filter = {
367
- _id: { $eq: params.id },
368
- typeOf: { $eq: params.typeOf },
369
- status: { $eq: factory.transactionStatusType.InProgress },
370
- // expiresを条件に追加(2023-05-12~),
371
- expires: { $gt: new Date() }
372
- };
373
- const doc = await this.transactionModel.findOne(filter, projection)
374
- .lean() // 2024-08-26~
375
- .exec();
376
- if (doc === null) {
377
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
378
- }
379
- return doc;
380
- }
381
- /**
382
- * 進行中取引に保管された採用済決済方法を検索する
383
- */
384
- async findInProgressPaymentMethodId(params) {
385
- const doc = await this.transactionModel.findOne({
386
- _id: { $eq: params.id },
387
- typeOf: { $eq: factory.transactionType.PlaceOrder },
388
- status: { $eq: factory.transactionStatusType.InProgress }
389
- }, { 'object.paymentMethods': 1 })
390
- .lean() // 2024-08-26~
391
- .exec();
392
- if (doc === null) {
393
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`);
394
- }
395
- return doc.object.paymentMethods;
396
- }
397
- /**
398
- * 取引の注文番号を検索する
399
- */
400
- async findInProgressOrderNumberById(params) {
401
- const doc = await this.transactionModel.findOne({
402
- _id: { $eq: params.id },
403
- typeOf: { $eq: factory.transactionType.PlaceOrder },
404
- status: { $eq: factory.transactionStatusType.InProgress }
405
- }, { 'object.orderNumber': 1 })
406
- .lean() // 2024-08-26~
407
- .exec();
408
- if (doc === null) {
409
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`);
410
- }
411
- return doc.object.orderNumber;
412
- }
413
- /**
414
- * 取引の確認番号を検索する
415
- */
416
- async findInProgressConfirmationNumberById(params) {
417
- const doc = await this.transactionModel.findOne({
418
- _id: { $eq: params.id },
419
- typeOf: { $eq: factory.transactionType.PlaceOrder },
420
- status: { $in: params.status.$in }
421
- }, { 'object.confirmationNumber': 1 })
422
- .lean() // 2024-08-26~
423
- .exec();
424
- if (doc === null) {
425
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${factory.transactionType.PlaceOrder} ${params.status.$in.join(' or ')} not found`);
426
- }
427
- return doc.object.confirmationNumber;
428
- }
429
- /**
430
- * 取引進行者プロフィールを更新
431
- */
432
- async updateAgent(params) {
433
- const doc = await this.transactionModel.findOneAndUpdate({
434
- _id: { $eq: params.id },
435
- typeOf: { $eq: params.typeOf },
436
- status: { $eq: factory.transactionStatusType.InProgress }
437
- }, {
438
- $set: {
439
- 'agent.id': params.agent.id,
440
- // ...(typeof params.agent.name === 'string') ? { 'agent.name': params.agent.name } : undefined,
441
- ...(typeof params.object?.customer?.typeOf === 'string') ? { 'object.customer': params.object.customer } : undefined
442
- }
443
- }, {
444
- projection: { _id: 1 }
445
- })
446
- .lean()
447
- .exec();
448
- if (doc === null) {
449
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
450
- }
451
- }
452
- /**
453
- * 取引期限変更
454
- */
455
- async updateExpires(params) {
456
- const doc = await this.transactionModel.findOneAndUpdate({
457
- _id: { $eq: params.id },
458
- typeOf: { $eq: params.typeOf },
459
- status: { $eq: factory.transactionStatusType.InProgress }
460
- }, {
461
- $set: {
462
- expires: params.expires
463
- }
464
- }, {
465
- projection: { _id: 1 }
466
- })
467
- .lean()
468
- .exec();
469
- if (doc === null) {
470
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
471
- }
472
- }
473
- /**
474
- * 取引オブジェクトを更新
475
- * 注文名称など
476
- */
477
- async updateObject(params) {
478
- const doc = await this.transactionModel.findOneAndUpdate({
479
- _id: { $eq: params.id },
480
- typeOf: { $eq: params.typeOf },
481
- status: { $eq: factory.transactionStatusType.InProgress }
482
- }, {
483
- $set: {
484
- ...(typeof params.object?.name === 'string') ? { 'object.name': params.object.name } : undefined
485
- }
486
- }, {
487
- projection: { _id: 1 }
488
- })
489
- .lean()
490
- .exec();
491
- if (doc === null) {
492
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
493
- }
494
- }
495
- /**
496
- * 取引を確定する
497
- */
498
- async confirm(params) {
499
- const endDate = new Date();
500
- const doc = await this.transactionModel.findOneAndUpdate({
501
- _id: { $eq: params.id },
502
- typeOf: { $eq: params.typeOf },
503
- status: { $eq: factory.transactionStatusType.InProgress },
504
- expires: { $gt: endDate } // add expires(2025-02-27~)
505
- }, {
506
- status: factory.transactionStatusType.Confirmed, // ステータス変更
507
- endDate,
508
- // 'object.authorizeActions': params.authorizeActions,
509
- result: params.result, // resultを更新
510
- potentialActions: params.potentialActions // resultを更新
511
- }, {
512
- new: true,
513
- projection: { _id: 1 }
514
- })
515
- .lean()
516
- .exec();
517
- // NotFoundであれば取引状態確認
518
- if (doc === null) {
519
- const { expires, status } = await this.projectFieldsById({ typeOf: params.typeOf, id: params.id }, ['expires', 'status']);
520
- if (status === factory.transactionStatusType.Confirmed) {
521
- // すでに確定済の場合スルー
522
- }
523
- else if (status === factory.transactionStatusType.Expired) {
524
- throw new factory.errors.Argument('Transaction id', 'Already expired');
525
- }
526
- else if (status === factory.transactionStatusType.Canceled) {
527
- throw new factory.errors.Argument('Transaction id', 'Already canceled');
528
- }
529
- else {
530
- if ((0, moment_1.default)(expires)
531
- .isSameOrBefore((0, moment_1.default)(endDate))) {
532
- throw new factory.errors.Argument('Transaction id', 'potentially expired');
533
- }
534
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
535
- }
536
- }
537
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
538
- id: params.id,
539
- typeOf: params.typeOf,
540
- status: factory.transactionStatusType.Confirmed
541
- });
542
- }
47
+ // public static CREATE_MONGO_CONDITIONS(params: factory.transaction.ISearchConditions<factory.transactionType.MoneyTransfer>) {
48
+ // if (params.typeOf !== factory.transactionType.MoneyTransfer) {
49
+ // throw new factory.errors.Argument('typeOf', `must be ${factory.transactionType.MoneyTransfer}`);
50
+ // }
51
+ // const andConditions: FilterQuery<factory.assetTransaction.ITransaction<factory.assetTransactionType>>[] = [];
52
+ // const projectIdEq = params.project?.id?.$eq;
53
+ // if (typeof projectIdEq === 'string') {
54
+ // andConditions.push({ 'project.id': { $eq: projectIdEq } });
55
+ // }
56
+ // if (typeof params.typeOf === 'string') {
57
+ // andConditions.push({ typeOf: { $eq: params.typeOf } });
58
+ // }
59
+ // if (params.startFrom !== undefined) {
60
+ // andConditions.push({
61
+ // startDate: { $gte: params.startFrom }
62
+ // });
63
+ // }
64
+ // if (params.startThrough !== undefined) {
65
+ // andConditions.push({
66
+ // startDate: { $lte: params.startThrough }
67
+ // });
68
+ // }
69
+ // if (params.endFrom !== undefined) {
70
+ // andConditions.push({
71
+ // endDate: {
72
+ // $exists: true,
73
+ // $gte: params.endFrom
74
+ // }
75
+ // });
76
+ // }
77
+ // if (params.endThrough !== undefined) {
78
+ // andConditions.push({
79
+ // endDate: {
80
+ // $exists: true,
81
+ // $lt: params.endThrough
82
+ // }
83
+ // });
84
+ // }
85
+ // if (Array.isArray(params.ids)) {
86
+ // andConditions.push({
87
+ // _id: { $in: params.ids }
88
+ // });
89
+ // }
90
+ // if (Array.isArray(params.statuses)) {
91
+ // andConditions.push({ status: { $in: params.statuses } });
92
+ // }
93
+ // const statusIn = params.status?.$in;
94
+ // if (Array.isArray(statusIn)) {
95
+ // andConditions.push({ status: { $in: statusIn } });
96
+ // }
97
+ // if (params.agent !== undefined) {
98
+ // if (params.agent.typeOf !== undefined) {
99
+ // andConditions.push({
100
+ // 'agent.typeOf': {
101
+ // $exists: true,
102
+ // $eq: params.agent.typeOf
103
+ // }
104
+ // });
105
+ // }
106
+ // if (Array.isArray(params.agent.ids)) {
107
+ // andConditions.push({
108
+ // 'agent.id': {
109
+ // $exists: true,
110
+ // $in: params.agent.ids
111
+ // }
112
+ // });
113
+ // }
114
+ // if (Array.isArray(params.agent.identifiers)) {
115
+ // andConditions.push({
116
+ // 'agent.identifier': {
117
+ // $exists: true,
118
+ // $in: params.agent.identifiers
119
+ // }
120
+ // });
121
+ // }
122
+ // }
123
+ // const tasksExportActionStatusIn = params.tasksExportAction?.actionStatus?.$in;
124
+ // if (Array.isArray(tasksExportActionStatusIn)) {
125
+ // andConditions.push({ 'tasksExportAction.actionStatus': { $exists: true, $in: tasksExportActionStatusIn } });
126
+ // }
127
+ // const tasksExportActionStatusEq = params.tasksExportAction?.actionStatus?.$eq;
128
+ // if (typeof tasksExportActionStatusEq === 'string') {
129
+ // andConditions.push({ 'tasksExportAction.actionStatus': { $exists: true, $eq: tasksExportActionStatusEq } });
130
+ // }
131
+ // switch (params.typeOf) {
132
+ // case factory.transactionType.PlaceOrder as any:
133
+ // throw new factory.errors.NotImplemented(`use PlaceOrderRepo`);
134
+ // // const sellerIdIn = params.seller?.ids;
135
+ // // if (Array.isArray(sellerIdIn)) {
136
+ // // andConditions.push({ 'seller.id': { $exists: true, $in: sellerIdIn } });
137
+ // // }
138
+ // // const resultOrderNumberIn = params.result?.order?.orderNumbers;
139
+ // // if (Array.isArray(resultOrderNumberIn)) {
140
+ // // andConditions.push({ 'result.order.orderNumber': { $exists: true, $in: resultOrderNumberIn } });
141
+ // // }
142
+ // // const resultOrderConfirmationNumberEq = params.result?.order?.confirmationNumber?.$eq;
143
+ // // if (typeof resultOrderConfirmationNumberEq === 'string') {
144
+ // // andConditions.push({
145
+ // // 'result.order.confirmationNumber': { $exists: true, $eq: resultOrderConfirmationNumberEq }
146
+ // // });
147
+ // // }
148
+ // // const objectOrderNumberEq = params.object?.orderNumber?.$eq;
149
+ // // if (typeof objectOrderNumberEq === 'string') {
150
+ // // andConditions.push({ 'object.orderNumber': { $exists: true, $eq: objectOrderNumberEq } });
151
+ // // }
152
+ // // break;
153
+ // case factory.transactionType.ReturnOrder as any:
154
+ // throw new factory.errors.NotImplemented(`use ReturnOrderRepo`);
155
+ // // if (params.object !== undefined) {
156
+ // // if (params.object.order !== undefined) {
157
+ // // if (Array.isArray(params.object.order.orderNumbers)) {
158
+ // // andConditions.push({
159
+ // // 'object.order.orderNumber': {
160
+ // // $exists: true,
161
+ // // $in: params.object.order.orderNumbers
162
+ // // }
163
+ // // });
164
+ // // }
165
+ // // }
166
+ // // }
167
+ // // break;
168
+ // default:
169
+ // }
170
+ // return andConditions;
171
+ // }
172
+ // /**
173
+ // * 取引を開始する
174
+ // */
175
+ // // public async startNoPlaceOrder<
176
+ // public async startMoneyTransfer(
177
+ // params: factory.transaction.IStartParams<factory.transactionType.MoneyTransfer>
178
+ // ): Promise<IStartedTransaction> {
179
+ // const status = factory.transactionStatusType.InProgress;
180
+ // const tasksExportAction: factory.transaction.ITasksExportAction = { actionStatus: factory.actionStatusType.PotentialActionStatus };
181
+ // // const tasksExportationStatus = factory.transactionTasksExportationStatus.Unexported; // discontinue(2024-06-20~)
182
+ // const startDate: Date = new Date();
183
+ // // let expires: Date;
184
+ // const { typeOf } = params;
185
+ // // if (typeOf === factory.transactionType.ReturnOrder) {
186
+ // // // expiresInSecondsの指定があれば優先して適用する(2022-11-25~)
187
+ // // if (typeof params.expiresInSeconds === 'number' && params.expiresInSeconds > 0) {
188
+ // // expires = moment(startDate)
189
+ // // .add(params.expiresInSeconds, 'seconds')
190
+ // // .toDate();
191
+ // // } else {
192
+ // // throw new factory.errors.ArgumentNull('expiresInSeconds');
193
+ // // }
194
+ // // } else {
195
+ // // expires = params.expires;
196
+ // // }
197
+ // const expires = params.expires;
198
+ // let creatingTransaction: factory.transaction.IAttributes<factory.transactionType.MoneyTransfer>;
199
+ // if (typeOf === factory.transactionType.MoneyTransfer) {
200
+ // const { agent, project, object, seller, recipient } = params;
201
+ // creatingTransaction = {
202
+ // status, startDate, expires, typeOf, tasksExportAction,
203
+ // agent, project, seller, object, recipient
204
+ // };
205
+ // // } else if (typeOf === factory.transactionType.ReturnOrder) {
206
+ // // const { agent, project, object, seller } = params;
207
+ // // creatingTransaction = {
208
+ // // status, startDate, expires, typeOf, tasksExportAction,
209
+ // // agent, project, seller, object
210
+ // // };
211
+ // } else {
212
+ // throw new factory.errors.NotImplemented(`${typeOf} not implemented`);
213
+ // }
214
+ // // reimplemnt with insertMany(2024-05-30~)
215
+ // const result = await this.transactionModel.insertMany(
216
+ // creatingTransaction,
217
+ // { rawResult: true }
218
+ // );
219
+ // const id = result.insertedIds?.[0]?.toHexString();
220
+ // if (typeof id !== 'string') {
221
+ // throw new factory.errors.Internal('transaction not saved');
222
+ // }
223
+ // // 取引開始時にも取引イベントエミッター連携(2024-03-21~)
224
+ // transactionEventEmitter.emitTransactionStatusChanged({ id, typeOf, status });
225
+ // return { expires, id, startDate, status }; // minimize response(2024-05-30~)
226
+ // }
227
+ // /**
228
+ // * 特定取引検索
229
+ // */
230
+ // public async findMoneyTransferById(
231
+ // params: { typeOf: factory.transactionType.MoneyTransfer; id: string },
232
+ // inclusion: IKeyOfProjection[] // make required(2024-05-31~)
233
+ // ): Promise<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>> {
234
+ // let positiveProjectionFields: IKeyOfProjection[] = AVAILABLE_PROJECT_FIELDS;
235
+ // if (Array.isArray(inclusion) && inclusion.length > 0) {
236
+ // positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(<IKeyOfProjection>key));
237
+ // } else {
238
+ // throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
239
+ // }
240
+ // const projection: ProjectionType<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>> = {
241
+ // _id: 0,
242
+ // id: { $toString: '$_id' },
243
+ // ...Object.fromEntries<1>(positiveProjectionFields.map((key) => ([key, 1])))
244
+ // };
245
+ // // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
246
+ // // if (Array.isArray(inclusion) && inclusion.length > 0) {
247
+ // // inclusion.forEach((field) => {
248
+ // // projection[field] = 1;
249
+ // // });
250
+ // // } else {
251
+ // // projection = {
252
+ // // __v: 0,
253
+ // // createdAt: 0,
254
+ // // updatedAt: 0
255
+ // // };
256
+ // // }
257
+ // const doc = await this.transactionModel.findOne(
258
+ // {
259
+ // _id: { $eq: params.id },
260
+ // typeOf: { $eq: params.typeOf }
261
+ // },
262
+ // projection
263
+ // )
264
+ // .lean<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>>() // 2024-08-26~
265
+ // .exec();
266
+ // if (doc === null) {
267
+ // throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} not found`);
268
+ // }
269
+ // return doc;
270
+ // }
271
+ // /**
272
+ // * 進行中の取引を取得する
273
+ // */
274
+ // public async findMoneyTransferInProgressById(
275
+ // params: {
276
+ // typeOf: factory.transactionType.MoneyTransfer;
277
+ // id: string;
278
+ // },
279
+ // inclusion: IKeyOfProjection[] // make required(2024-05-29~)
280
+ // ): Promise<IMoneyTransferTransactionInProgress> {
281
+ // let positiveProjectionFields: IKeyOfProjection[] = AVAILABLE_PROJECT_FIELDS;
282
+ // if (Array.isArray(inclusion) && inclusion.length > 0) {
283
+ // positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(<IKeyOfProjection>key));
284
+ // } else {
285
+ // throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
286
+ // }
287
+ // const projection: ProjectionType<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>> = {
288
+ // _id: 0,
289
+ // id: { $toString: '$_id' },
290
+ // ...Object.fromEntries<1>(positiveProjectionFields.map((key) => ([key, 1])))
291
+ // };
292
+ // const filter: FilterQuery<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>> = {
293
+ // _id: { $eq: params.id },
294
+ // typeOf: { $eq: params.typeOf },
295
+ // status: { $eq: factory.transactionStatusType.InProgress },
296
+ // // expiresを条件に追加(2023-05-12~),
297
+ // expires: { $gt: new Date() }
298
+ // };
299
+ // const doc = await this.transactionModel.findOne(filter, projection)
300
+ // .lean<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>>() // 2024-08-26~
301
+ // .exec();
302
+ // if (doc === null) {
303
+ // throw new factory.errors.NotFound(
304
+ // this.transactionModel.modelName,
305
+ // `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`
306
+ // );
307
+ // }
308
+ // return doc;
309
+ // }
310
+ // /**
311
+ // * 進行中の取引を取得する
312
+ // */
313
+ // public async projectFieldsInProgressById<T extends factory.transactionType.MoneyTransfer>(
314
+ // params: {
315
+ // typeOf: T;
316
+ // id: string;
317
+ // },
318
+ // inclusion: IKeyOfProjection<T>[] // make required(2024-05-29~)
319
+ // ): Promise<ITransactionInProgress<T>> {
320
+ // let positiveProjectionFields: (IKeyOfProjection<factory.transactionType.MoneyTransfer>
321
+ // | IKeyOfProjection<factory.transactionType.PlaceOrder>
322
+ // | IKeyOfProjection<factory.transactionType.ReturnOrder>
323
+ // )[] = AVAILABLE_PROJECT_FIELDS;
324
+ // if (Array.isArray(inclusion) && inclusion.length > 0) {
325
+ // positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(<IKeyOfProjection<T>>key));
326
+ // } else {
327
+ // throw new factory.errors.NotImplemented('inclusion must be specified'); // 2024-08-26~
328
+ // }
329
+ // const projection: ProjectionType<factory.transaction.ITransaction<T>> = {
330
+ // _id: 0,
331
+ // id: { $toString: '$_id' },
332
+ // ...Object.fromEntries<1>(positiveProjectionFields.map((key) => ([key, 1])))
333
+ // };
334
+ // const filter: FilterQuery<factory.transaction.ITransaction<T>> = {
335
+ // _id: { $eq: params.id },
336
+ // typeOf: { $eq: params.typeOf },
337
+ // status: { $eq: factory.transactionStatusType.InProgress },
338
+ // // expiresを条件に追加(2023-05-12~),
339
+ // expires: { $gt: new Date() }
340
+ // };
341
+ // const doc = await this.transactionModel.findOne(filter, projection)
342
+ // .lean<factory.transaction.ITransaction<T>>() // 2024-08-26~
343
+ // .exec();
344
+ // if (doc === null) {
345
+ // throw new factory.errors.NotFound(
346
+ // this.transactionModel.modelName,
347
+ // `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`
348
+ // );
349
+ // }
350
+ // return doc;
351
+ // }
352
+ // /**
353
+ // * 進行中取引に保管された採用済決済方法を検索する
354
+ // */
355
+ // public async findInProgressPaymentMethodId(params: {
356
+ // id: string;
357
+ // }): Promise<factory.transaction.placeOrder.IPaymentMethodByPaymentUrl | undefined> {
358
+ // const doc = await this.transactionModel.findOne(
359
+ // {
360
+ // _id: { $eq: params.id },
361
+ // typeOf: { $eq: factory.transactionType.PlaceOrder },
362
+ // status: { $eq: factory.transactionStatusType.InProgress }
363
+ // },
364
+ // { 'object.paymentMethods': 1 }
365
+ // )
366
+ // .lean<{ object: Pick<factory.transaction.placeOrder.IObject, 'paymentMethods'> }>() // 2024-08-26~
367
+ // .exec();
368
+ // if (doc === null) {
369
+ // throw new factory.errors.NotFound(
370
+ // this.transactionModel.modelName,
371
+ // `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`
372
+ // );
373
+ // }
374
+ // return doc.object.paymentMethods;
375
+ // }
376
+ // /**
377
+ // * 取引の注文番号を検索する
378
+ // */
379
+ // public async findInProgressOrderNumberById(params: {
380
+ // id: string;
381
+ // }): Promise<string | undefined> {
382
+ // const doc = await this.transactionModel.findOne(
383
+ // {
384
+ // _id: { $eq: params.id },
385
+ // typeOf: { $eq: factory.transactionType.PlaceOrder },
386
+ // status: { $eq: factory.transactionStatusType.InProgress }
387
+ // },
388
+ // { 'object.orderNumber': 1 }
389
+ // )
390
+ // .lean<{ object: Pick<factory.transaction.placeOrder.IObject, 'orderNumber'> }>() // 2024-08-26~
391
+ // .exec();
392
+ // if (doc === null) {
393
+ // throw new factory.errors.NotFound(
394
+ // this.transactionModel.modelName,
395
+ // `${factory.transactionType.PlaceOrder} ${factory.transactionStatusType.InProgress} not found`
396
+ // );
397
+ // }
398
+ // return doc.object.orderNumber;
399
+ // }
400
+ // /**
401
+ // * 取引の確認番号を検索する
402
+ // */
403
+ // public async findInProgressConfirmationNumberById(params: {
404
+ // id: string;
405
+ // status: { $in: factory.transactionStatusType[] };
406
+ // }): Promise<string | undefined> {
407
+ // const doc = await this.transactionModel.findOne(
408
+ // {
409
+ // _id: { $eq: params.id },
410
+ // typeOf: { $eq: factory.transactionType.PlaceOrder },
411
+ // status: { $in: params.status.$in }
412
+ // },
413
+ // { 'object.confirmationNumber': 1 }
414
+ // )
415
+ // .lean<{ object: Pick<factory.transaction.placeOrder.IObject, 'confirmationNumber'> }>() // 2024-08-26~
416
+ // .exec();
417
+ // if (doc === null) {
418
+ // throw new factory.errors.NotFound(
419
+ // this.transactionModel.modelName,
420
+ // `${factory.transactionType.PlaceOrder} ${params.status.$in.join(' or ')} not found`
421
+ // );
422
+ // }
423
+ // return doc.object.confirmationNumber;
424
+ // }
425
+ // /**
426
+ // * 取引進行者プロフィールを更新
427
+ // */
428
+ // public async updateAgent<T extends factory.transactionType>(params: {
429
+ // typeOf: T;
430
+ // id: string;
431
+ // agent: Pick<factory.transaction.IAgent, 'id'>;
432
+ // object?: {
433
+ // customer?: factory.order.ICustomer;
434
+ // };
435
+ // }): Promise<void> {
436
+ // const doc = await this.transactionModel.findOneAndUpdate(
437
+ // {
438
+ // _id: { $eq: params.id },
439
+ // typeOf: { $eq: params.typeOf },
440
+ // status: { $eq: factory.transactionStatusType.InProgress }
441
+ // },
442
+ // {
443
+ // $set: {
444
+ // 'agent.id': params.agent.id,
445
+ // // ...(typeof params.agent.name === 'string') ? { 'agent.name': params.agent.name } : undefined,
446
+ // ...(typeof params.object?.customer?.typeOf === 'string') ? { 'object.customer': params.object.customer } : undefined
447
+ // }
448
+ // },
449
+ // {
450
+ // projection: { _id: 1 }
451
+ // }
452
+ // )
453
+ // .lean<{ _id: ObjectId }>()
454
+ // .exec();
455
+ // if (doc === null) {
456
+ // throw new factory.errors.NotFound(
457
+ // this.transactionModel.modelName,
458
+ // `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`
459
+ // );
460
+ // }
461
+ // }
462
+ // /**
463
+ // * 取引期限変更
464
+ // */
465
+ // public async updateExpires<T extends factory.transactionType>(params: {
466
+ // typeOf: T;
467
+ // id: string;
468
+ // expires: Date;
469
+ // }): Promise<void> {
470
+ // const doc = await this.transactionModel.findOneAndUpdate(
471
+ // {
472
+ // _id: { $eq: params.id },
473
+ // typeOf: { $eq: params.typeOf },
474
+ // status: { $eq: factory.transactionStatusType.InProgress }
475
+ // },
476
+ // {
477
+ // $set: {
478
+ // expires: params.expires
479
+ // }
480
+ // },
481
+ // {
482
+ // projection: { _id: 1 }
483
+ // }
484
+ // )
485
+ // .lean<{ _id: ObjectId }>()
486
+ // .exec();
487
+ // if (doc === null) {
488
+ // throw new factory.errors.NotFound(
489
+ // this.transactionModel.modelName,
490
+ // `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`
491
+ // );
492
+ // }
493
+ // }
494
+ // /**
495
+ // * 取引オブジェクトを更新
496
+ // * 注文名称など
497
+ // */
498
+ // public async updateObject<T extends factory.transactionType>(params: {
499
+ // typeOf: T;
500
+ // id: string;
501
+ // object?: {
502
+ // name?: string;
503
+ // };
504
+ // }): Promise<void> {
505
+ // const doc = await this.transactionModel.findOneAndUpdate(
506
+ // {
507
+ // _id: { $eq: params.id },
508
+ // typeOf: { $eq: params.typeOf },
509
+ // status: { $eq: factory.transactionStatusType.InProgress }
510
+ // },
511
+ // {
512
+ // $set: {
513
+ // ...(typeof params.object?.name === 'string') ? { 'object.name': params.object.name } : undefined
514
+ // }
515
+ // },
516
+ // {
517
+ // projection: { _id: 1 }
518
+ // }
519
+ // )
520
+ // .lean<{ _id: ObjectId }>()
521
+ // .exec();
522
+ // if (doc === null) {
523
+ // throw new factory.errors.NotFound(
524
+ // this.transactionModel.modelName,
525
+ // `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`
526
+ // );
527
+ // }
528
+ // }
529
+ // /**
530
+ // * 取引を確定する
531
+ // */
532
+ // // public async confirmNoPlaceOrder<
533
+ // public async confirmMoneyTransfer(params: {
534
+ // typeOf: factory.transactionType.MoneyTransfer;
535
+ // id: string;
536
+ // result: factory.transaction.IResult<factory.transactionType.MoneyTransfer>;
537
+ // potentialActions: factory.transaction.IPotentialActions<factory.transactionType.MoneyTransfer>;
538
+ // }): Promise<void> {
539
+ // const endDate = new Date();
540
+ // const doc = await this.transactionModel.findOneAndUpdate(
541
+ // {
542
+ // _id: { $eq: params.id },
543
+ // typeOf: { $eq: params.typeOf },
544
+ // status: { $eq: factory.transactionStatusType.InProgress },
545
+ // expires: { $gt: endDate } // add expires(2025-02-27~)
546
+ // },
547
+ // {
548
+ // status: factory.transactionStatusType.Confirmed, // ステータス変更
549
+ // endDate,
550
+ // // 'object.authorizeActions': params.authorizeActions,
551
+ // result: params.result, // resultを更新
552
+ // potentialActions: params.potentialActions // resultを更新
553
+ // },
554
+ // {
555
+ // new: true,
556
+ // projection: { _id: 1 }
557
+ // }
558
+ // )
559
+ // .lean<{ _id: ObjectId }>()
560
+ // .exec();
561
+ // // NotFoundであれば取引状態確認
562
+ // if (doc === null) {
563
+ // const { expires, status } = <Pick<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>, 'expires' | 'status'>>
564
+ // await this.findMoneyTransferById({ typeOf: params.typeOf, id: params.id }, ['expires', 'status']);
565
+ // if (status === factory.transactionStatusType.Confirmed) {
566
+ // // すでに確定済の場合スルー
567
+ // } else if (status === factory.transactionStatusType.Expired) {
568
+ // throw new factory.errors.Argument('Transaction id', 'Already expired');
569
+ // } else if (status === factory.transactionStatusType.Canceled) {
570
+ // throw new factory.errors.Argument('Transaction id', 'Already canceled');
571
+ // } else {
572
+ // if (moment(expires)
573
+ // .isSameOrBefore(moment(endDate))) {
574
+ // throw new factory.errors.Argument('Transaction id', 'potentially expired');
575
+ // }
576
+ // throw new factory.errors.NotFound(
577
+ // this.transactionModel.modelName,
578
+ // `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`
579
+ // );
580
+ // }
581
+ // }
582
+ // transactionEventEmitter.emitTransactionStatusChanged({
583
+ // id: params.id,
584
+ // typeOf: params.typeOf,
585
+ // status: factory.transactionStatusType.Confirmed
586
+ // });
587
+ // }
543
588
  async countPotentiallyExportTasks(params) {
544
589
  const { endDate, limit } = params;
545
590
  const endDateLt = endDate?.$lt;
@@ -805,6 +850,7 @@ class TransactionRepo {
805
850
  .exec();
806
851
  if (doc === null) {
807
852
  // no op
853
+ return;
808
854
  }
809
855
  else {
810
856
  transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
@@ -861,138 +907,187 @@ class TransactionRepo {
861
907
  }
862
908
  return expiringTransactions;
863
909
  }
864
- /**
865
- * 取引を中止する
866
- */
867
- async cancel(params) {
868
- const endDate = new Date();
869
- // 進行中ステータスの取引を中止する
870
- const doc = await this.transactionModel.findOneAndUpdate({
871
- typeOf: params.typeOf,
872
- _id: params.id,
873
- status: factory.transactionStatusType.InProgress
874
- }, {
875
- status: factory.transactionStatusType.Canceled,
876
- endDate: endDate
877
- }, {
878
- new: true,
879
- projection: { _id: 1 }
880
- })
881
- .lean()
882
- .exec();
883
- // NotFoundであれば取引状態確認
884
- if (doc === null) {
885
- const { status } = await this.projectFieldsById(params, ['status']);
886
- if (status === factory.transactionStatusType.Canceled) {
887
- // すでに中止済の場合スルー
888
- }
889
- else if (status === factory.transactionStatusType.Expired) {
890
- throw new factory.errors.Argument('Transaction id', 'Transaction already expired');
891
- }
892
- else if (status === factory.transactionStatusType.Confirmed) {
893
- throw new factory.errors.Argument('Transaction id', 'Confirmed transaction unable to cancel');
894
- }
895
- else {
896
- throw new factory.errors.NotFound(this.transactionModel.modelName, `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`);
897
- }
898
- }
899
- transaction_1.transactionEventEmitter.emitTransactionStatusChanged({
900
- id: params.id,
901
- typeOf: params.typeOf,
902
- status: factory.transactionStatusType.Canceled
903
- });
904
- }
905
- async count(params) {
906
- const { limit } = params;
907
- const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
908
- const query = this.transactionModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {});
909
- if (typeof limit === 'number' && limit >= 0) {
910
- query.limit(limit);
911
- }
912
- const count = await query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
913
- .exec();
914
- return { count };
915
- }
916
- /**
917
- * 取引を検索する
918
- */
919
- async projectFields(params) {
920
- const { inclusion } = params;
921
- const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
922
- let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
923
- if (Array.isArray(inclusion) && inclusion.length > 0) {
924
- positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(key));
925
- }
926
- const projection = {
927
- _id: 0,
928
- id: { $toString: '$_id' },
929
- ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
930
- };
931
- // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
932
- // if (Array.isArray(params.inclusion) && params.inclusion.length > 0) {
933
- // params.inclusion.forEach((field) => {
934
- // projection[field] = 1;
935
- // });
936
- // } else {
937
- // projection = {
938
- // __v: 0,
939
- // createdAt: 0,
940
- // updatedAt: 0
941
- // };
942
- // }
943
- const query = this.transactionModel.find((conditions.length > 0) ? { $and: conditions } : {})
944
- .select(projection);
945
- if (typeof params.limit === 'number' && params.limit > 0) {
946
- const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
947
- query.limit(params.limit)
948
- .skip(params.limit * (page - 1));
949
- }
950
- /* istanbul ignore else */
951
- if (params.sort?.startDate !== undefined) {
952
- query.sort({ startDate: params.sort.startDate });
953
- }
954
- // const explainResult = await (<any>query).explain();
955
- // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
956
- return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
957
- .lean() // 2024-08-26~
958
- .exec();
959
- }
960
- /**
961
- * 特定の進行中取引を更新する(汎用)
962
- */
963
- async findByIdAndUpdateInProgress(params) {
964
- await this.transactionModel.findOneAndUpdate({
965
- _id: { $eq: params.id },
966
- status: { $eq: factory.transactionStatusType.InProgress }
967
- }, params.update, {
968
- // new: true,
969
- projection: { _id: 1 }
970
- })
971
- .lean()
972
- .exec()
973
- .then((doc) => {
974
- if (doc === null) {
975
- throw new factory.errors.ArgumentNull(this.transactionModel.modelName);
976
- }
977
- });
978
- }
979
- async saveOrderNumberIfNotExist(params) {
980
- await this.transactionModel.updateOne({
981
- _id: { $eq: params.id },
982
- status: { $eq: factory.transactionStatusType.InProgress },
983
- 'object.orderNumber': { $exists: false }
984
- }, { 'object.orderNumber': params.orderNumber })
985
- .exec();
986
- }
987
- async saveConfirmationNumberIfNotExist(params) {
988
- await this.transactionModel.updateOne({
989
- _id: { $eq: params.id },
990
- // status: { $eq: factory.transactionStatusType.InProgress },
991
- status: { $in: params.status.$in },
992
- 'object.confirmationNumber': { $exists: false }
993
- }, { $set: { 'object.confirmationNumber': params.confirmationNumber } })
994
- .exec();
995
- }
910
+ // /**
911
+ // * 取引を中止する
912
+ // */
913
+ // public async cancelMoneyTransfer(params: {
914
+ // typeOf: factory.transactionType.MoneyTransfer;
915
+ // id: string;
916
+ // }): Promise<void> {
917
+ // const endDate = new Date();
918
+ // // 進行中ステータスの取引を中止する
919
+ // const doc = await this.transactionModel.findOneAndUpdate(
920
+ // {
921
+ // typeOf: params.typeOf,
922
+ // _id: params.id,
923
+ // status: factory.transactionStatusType.InProgress
924
+ // },
925
+ // {
926
+ // status: factory.transactionStatusType.Canceled,
927
+ // endDate: endDate
928
+ // },
929
+ // {
930
+ // new: true,
931
+ // projection: { _id: 1 }
932
+ // }
933
+ // )
934
+ // .lean<{ _id: ObjectId }>()
935
+ // .exec();
936
+ // // NotFoundであれば取引状態確認
937
+ // if (doc === null) {
938
+ // const { status } = <Pick<factory.transaction.ITransaction<factory.transactionType.MoneyTransfer>, 'status'>>
939
+ // await this.findMoneyTransferById(params, ['status']);
940
+ // if (status === factory.transactionStatusType.Canceled) {
941
+ // // すでに中止済の場合スルー
942
+ // } else if (status === factory.transactionStatusType.Expired) {
943
+ // throw new factory.errors.Argument('Transaction id', 'Transaction already expired');
944
+ // } else if (status === factory.transactionStatusType.Confirmed) {
945
+ // throw new factory.errors.Argument('Transaction id', 'Confirmed transaction unable to cancel');
946
+ // } else {
947
+ // throw new factory.errors.NotFound(
948
+ // this.transactionModel.modelName,
949
+ // `${params.typeOf} ${factory.transactionStatusType.InProgress} not found`
950
+ // );
951
+ // }
952
+ // }
953
+ // transactionEventEmitter.emitTransactionStatusChanged({
954
+ // id: params.id,
955
+ // typeOf: params.typeOf,
956
+ // status: factory.transactionStatusType.Canceled
957
+ // });
958
+ // }
959
+ // public async countMoneyTransfer<
960
+ // // T extends factory.transactionType
961
+ // T extends factory.transactionType.MoneyTransfer
962
+ // >(params: factory.transaction.ISearchConditions<T>): Promise<{ count: number }> {
963
+ // const { limit } = params;
964
+ // const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
965
+ // const query = this.transactionModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {});
966
+ // if (typeof limit === 'number' && limit >= 0) {
967
+ // query.limit(limit);
968
+ // }
969
+ // const count = await query.setOptions({ maxTimeMS: MONGO_MAX_TIME_MS })
970
+ // .exec();
971
+ // return { count };
972
+ // }
973
+ // /**
974
+ // * 取引を検索する
975
+ // */
976
+ // public async findMoneyTransferTransactions<
977
+ // // T extends factory.transactionType,
978
+ // T extends factory.transactionType.MoneyTransfer,
979
+ // F extends IKeyOfProjection
980
+ // >(
981
+ // params: factory.transaction.ISearchConditions<T> & {
982
+ // inclusion: F[];
983
+ // }
984
+ // ): Promise<(Pick<factory.transaction.ITransaction<T>, F> & { id: string })[]> {
985
+ // const { inclusion } = params;
986
+ // const conditions = TransactionRepo.CREATE_MONGO_CONDITIONS(params);
987
+ // let positiveProjectionFields: IKeyOfProjection[] = AVAILABLE_PROJECT_FIELDS;
988
+ // if (Array.isArray(inclusion) && inclusion.length > 0) {
989
+ // positiveProjectionFields = positiveProjectionFields.filter((key) => inclusion.includes(<F>key));
990
+ // }
991
+ // const projection: ProjectionType<factory.transaction.ITransaction<T>> = {
992
+ // _id: 0,
993
+ // id: { $toString: '$_id' },
994
+ // ...Object.fromEntries<1>(positiveProjectionFields.map((key) => ([key, 1])))
995
+ // };
996
+ // // let projection: { [key in (IKeyOfProjection<T> | '__v' | 'createdAt' | 'updatedAt')]?: AnyExpression } = {};
997
+ // // if (Array.isArray(params.inclusion) && params.inclusion.length > 0) {
998
+ // // params.inclusion.forEach((field) => {
999
+ // // projection[field] = 1;
1000
+ // // });
1001
+ // // } else {
1002
+ // // projection = {
1003
+ // // __v: 0,
1004
+ // // createdAt: 0,
1005
+ // // updatedAt: 0
1006
+ // // };
1007
+ // // }
1008
+ // const query = this.transactionModel.find(
1009
+ // (conditions.length > 0) ? { $and: conditions } : {}
1010
+ // )
1011
+ // .select(projection);
1012
+ // if (typeof params.limit === 'number' && params.limit > 0) {
1013
+ // const page: number = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
1014
+ // query.limit(params.limit)
1015
+ // .skip(params.limit * (page - 1));
1016
+ // }
1017
+ // if (params.sort?.startDate !== undefined) {
1018
+ // query.sort({ startDate: params.sort.startDate });
1019
+ // }
1020
+ // // const explainResult = await (<any>query).explain();
1021
+ // // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
1022
+ // return query.setOptions({ maxTimeMS: MONGO_MAX_TIME_MS })
1023
+ // .lean<(Pick<factory.transaction.ITransaction<T>, F> & { id: string })[]>()
1024
+ // .exec();
1025
+ // }
1026
+ // /**
1027
+ // * 特定の進行中取引を更新する(汎用)
1028
+ // */
1029
+ // public async findByIdAndUpdateInProgress(params: {
1030
+ // id: string;
1031
+ // update: {
1032
+ // $set?: { 'object.paymentMethods'?: factory.transaction.placeOrder.IPaymentMethodByPaymentUrl };
1033
+ // // $unset?: any;
1034
+ // // $pull?: any;
1035
+ // // $push?: any;
1036
+ // };
1037
+ // }): Promise<void> {
1038
+ // await this.transactionModel.findOneAndUpdate(
1039
+ // {
1040
+ // _id: { $eq: params.id },
1041
+ // status: { $eq: factory.transactionStatusType.InProgress }
1042
+ // },
1043
+ // params.update,
1044
+ // {
1045
+ // // new: true,
1046
+ // projection: { _id: 1 }
1047
+ // }
1048
+ // )
1049
+ // .lean<{ _id: ObjectId }>()
1050
+ // .exec()
1051
+ // .then((doc) => {
1052
+ // if (doc === null) {
1053
+ // throw new factory.errors.ArgumentNull(this.transactionModel.modelName);
1054
+ // }
1055
+ // });
1056
+ // }
1057
+ // /**
1058
+ // * 進行中取引のobjectに注文番号を保管する
1059
+ // */
1060
+ // public async saveOrderNumberIfNotExist(params: {
1061
+ // id: string;
1062
+ // orderNumber: string;
1063
+ // }): Promise<{ modifiedCount: number }> {
1064
+ // const result = await this.transactionModel.updateOne(
1065
+ // {
1066
+ // _id: { $eq: params.id },
1067
+ // status: { $eq: factory.transactionStatusType.InProgress },
1068
+ // 'object.orderNumber': { $exists: false }
1069
+ // },
1070
+ // { $set: { 'object.orderNumber': params.orderNumber } }
1071
+ // )
1072
+ // .exec();
1073
+ // return { modifiedCount: result.modifiedCount };
1074
+ // }
1075
+ // public async saveConfirmationNumberIfNotExist(params: {
1076
+ // id: string;
1077
+ // status: { $in: factory.transactionStatusType[] };
1078
+ // confirmationNumber: string;
1079
+ // }): Promise<void> {
1080
+ // await this.transactionModel.updateOne(
1081
+ // {
1082
+ // _id: { $eq: params.id },
1083
+ // // status: { $eq: factory.transactionStatusType.InProgress },
1084
+ // status: { $in: params.status.$in },
1085
+ // 'object.confirmationNumber': { $exists: false }
1086
+ // },
1087
+ // { $set: { 'object.confirmationNumber': params.confirmationNumber } }
1088
+ // )
1089
+ // .exec();
1090
+ // }
996
1091
  async findByIdAndDelete(params) {
997
1092
  await this.transactionModel.findByIdAndDelete(params.id)
998
1093
  .exec();