@chevre/domain 26.0.0-alpha.9 → 26.0.0

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 (315) hide show
  1. package/lib/chevre/eventEmitter/task.d.ts +8 -23
  2. package/lib/chevre/eventEmitter/task.js +2 -2
  3. package/lib/chevre/repo/acceptedOffer.d.ts +0 -7
  4. package/lib/chevre/repo/acceptedOffer.js +27 -27
  5. package/lib/chevre/repo/action/acceptCOAOffer.d.ts +3 -1
  6. package/lib/chevre/repo/action/acceptCOAOffer.js +8 -2
  7. package/lib/chevre/repo/action/acceptPay.d.ts +3 -1
  8. package/lib/chevre/repo/action/acceptPay.js +8 -4
  9. package/lib/chevre/repo/action/anyAction/actionProcess.d.ts +120 -0
  10. package/lib/chevre/repo/action/{actionProcess.js → anyAction/actionProcess.js} +28 -157
  11. package/lib/chevre/repo/action/anyAction/actionRecipe.d.ts +37 -0
  12. package/lib/chevre/repo/action/anyAction/actionRecipe.js +53 -0
  13. package/lib/chevre/repo/action/authorizeInvoice.d.ts +5 -8
  14. package/lib/chevre/repo/action/authorizeInvoice.js +7 -4
  15. package/lib/chevre/repo/action/authorizeOffer.d.ts +3 -1
  16. package/lib/chevre/repo/action/authorizeOffer.js +7 -2
  17. package/lib/chevre/repo/action/authorizePaymentMethod.d.ts +3 -1
  18. package/lib/chevre/repo/action/authorizePaymentMethod.js +7 -4
  19. package/lib/chevre/repo/action/authorizeTicketedObject.d.ts +3 -1
  20. package/lib/chevre/repo/action/authorizeTicketedObject.js +7 -2
  21. package/lib/chevre/repo/action/cancel.d.ts +25 -0
  22. package/lib/chevre/repo/action/cancel.js +47 -0
  23. package/lib/chevre/repo/action/checkMovieTicket.d.ts +3 -1
  24. package/lib/chevre/repo/action/checkMovieTicket.js +8 -1
  25. package/lib/chevre/repo/action/confirm.d.ts +11 -0
  26. package/lib/chevre/repo/action/confirm.js +16 -0
  27. package/lib/chevre/repo/action/create.d.ts +10 -0
  28. package/lib/chevre/repo/action/create.js +17 -0
  29. package/lib/chevre/repo/action/inform.d.ts +38 -0
  30. package/lib/chevre/repo/action/inform.js +146 -0
  31. package/lib/chevre/repo/action/order.d.ts +21 -0
  32. package/lib/chevre/repo/action/order.js +35 -0
  33. package/lib/chevre/repo/action/pay.d.ts +3 -1
  34. package/lib/chevre/repo/action/pay.js +7 -4
  35. package/lib/chevre/repo/action/refund.d.ts +3 -1
  36. package/lib/chevre/repo/action/refund.js +7 -4
  37. package/lib/chevre/repo/action/reserve.d.ts +21 -0
  38. package/lib/chevre/repo/action/reserve.js +37 -0
  39. package/lib/chevre/repo/action/returnAction.d.ts +11 -0
  40. package/lib/chevre/repo/action/returnAction.js +16 -0
  41. package/lib/chevre/repo/action/sendEmailMessage.d.ts +10 -0
  42. package/lib/chevre/repo/action/sendEmailMessage.js +17 -0
  43. package/lib/chevre/repo/action/sendOrder.d.ts +10 -0
  44. package/lib/chevre/repo/action/sendOrder.js +16 -0
  45. package/lib/chevre/repo/action/unknown2actionError.d.ts +6 -0
  46. package/lib/chevre/repo/action/unknown2actionError.js +15 -0
  47. package/lib/chevre/repo/action/update.d.ts +48 -0
  48. package/lib/chevre/repo/action/update.js +166 -0
  49. package/lib/chevre/repo/action/use.d.ts +39 -0
  50. package/lib/chevre/repo/action/use.js +153 -0
  51. package/lib/chevre/repo/{action.d.ts → adminAction.d.ts} +11 -37
  52. package/lib/chevre/repo/adminAction.js +176 -0
  53. package/lib/chevre/repo/adminAssetTransaction.d.ts +126 -0
  54. package/lib/chevre/repo/adminAssetTransaction.js +491 -0
  55. package/lib/chevre/repo/adminScheduledTask.d.ts +1 -1
  56. package/lib/chevre/repo/adminTask.d.ts +25 -8
  57. package/lib/chevre/repo/adminTask.js +31 -32
  58. package/lib/chevre/repo/adminTransaction.d.ts +131 -0
  59. package/lib/chevre/repo/adminTransaction.js +237 -0
  60. package/lib/chevre/repo/aggregateAction.d.ts +8 -11
  61. package/lib/chevre/repo/aggregateAction.js +0 -61
  62. package/lib/chevre/repo/aggregateAssetTransaction.d.ts +43 -0
  63. package/lib/chevre/repo/aggregateAssetTransaction.js +166 -0
  64. package/lib/chevre/repo/aggregateTransaction.d.ts +39 -0
  65. package/lib/chevre/repo/aggregateTransaction.js +166 -0
  66. package/lib/chevre/repo/aggregateUseAction.d.ts +35 -0
  67. package/lib/chevre/repo/aggregateUseAction.js +164 -0
  68. package/lib/chevre/repo/aggregation.d.ts +0 -8
  69. package/lib/chevre/repo/aggregation.js +0 -10
  70. package/lib/chevre/repo/assetTransaction.d.ts +10 -235
  71. package/lib/chevre/repo/assetTransaction.js +48 -636
  72. package/lib/chevre/repo/authorization.d.ts +0 -6
  73. package/lib/chevre/repo/authorization.js +15 -27
  74. package/lib/chevre/repo/message.d.ts +0 -7
  75. package/lib/chevre/repo/message.js +0 -38
  76. package/lib/chevre/repo/migrateAction.d.ts +48 -0
  77. package/lib/chevre/repo/migrateAction.js +32 -0
  78. package/lib/chevre/repo/mongoose/schemas/action/inform.d.ts +11 -0
  79. package/lib/chevre/repo/mongoose/schemas/action/inform.js +82 -0
  80. package/lib/chevre/repo/mongoose/schemas/action/update.d.ts +12 -0
  81. package/lib/chevre/repo/mongoose/schemas/action/update.js +112 -0
  82. package/lib/chevre/repo/mongoose/schemas/{ownershipInfo.d.ts → action/use.d.ts} +4 -6
  83. package/lib/chevre/repo/mongoose/schemas/action/use.js +92 -0
  84. package/lib/chevre/repo/mongoose/schemas/action.d.ts +1 -3
  85. package/lib/chevre/repo/mongoose/schemas/action.js +22 -7
  86. package/lib/chevre/repo/mongoose/schemas/actionRecipe.d.ts +1 -0
  87. package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +19 -1
  88. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +8 -9
  89. package/lib/chevre/repo/mongoose/schemas/aggregation.js +8 -1
  90. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +95 -76
  91. package/lib/chevre/repo/mongoose/schemas/authorization.js +25 -18
  92. package/lib/chevre/repo/mongoose/schemas/event.js +7 -0
  93. package/lib/chevre/repo/mongoose/schemas/eventOffer.js +7 -0
  94. package/lib/chevre/repo/mongoose/schemas/message.js +8 -1
  95. package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +11 -4
  96. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +5 -16
  97. package/lib/chevre/repo/mongoose/schemas/task.d.ts +2 -5
  98. package/lib/chevre/repo/mongoose/schemas/task.js +134 -118
  99. package/lib/chevre/repo/mongoose/schemas/ticket.js +8 -1
  100. package/lib/chevre/repo/orderInTransaction.d.ts +0 -3
  101. package/lib/chevre/repo/orderInTransaction.js +30 -22
  102. package/lib/chevre/repo/scheduledTask.d.ts +4 -1
  103. package/lib/chevre/repo/scheduledTask.js +3 -25
  104. package/lib/chevre/repo/task.d.ts +44 -155
  105. package/lib/chevre/repo/task.js +13 -555
  106. package/lib/chevre/repo/taskDelayed.d.ts +74 -0
  107. package/lib/chevre/repo/taskDelayed.js +195 -0
  108. package/lib/chevre/repo/taskRunning.d.ts +35 -0
  109. package/lib/chevre/repo/taskRunning.js +89 -0
  110. package/lib/chevre/repo/ticket.d.ts +0 -6
  111. package/lib/chevre/repo/ticket.js +0 -11
  112. package/lib/chevre/repo/transaction.d.ts +1 -187
  113. package/lib/chevre/repo/transaction.js +2 -383
  114. package/lib/chevre/repository.d.ts +65 -25
  115. package/lib/chevre/repository.js +144 -56
  116. package/lib/chevre/service/aggregation/system.d.ts +9 -8
  117. package/lib/chevre/service/aggregation/system.js +5 -5
  118. package/lib/chevre/service/assetTransaction/cancelReservation/start.js +10 -17
  119. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +0 -10
  120. package/lib/chevre/service/assetTransaction/pay/start/processAuthorize.d.ts +0 -1
  121. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +0 -1
  122. package/lib/chevre/service/assetTransaction/pay/start.d.ts +0 -1
  123. package/lib/chevre/service/assetTransaction/refund.d.ts +0 -1
  124. package/lib/chevre/service/assetTransaction/refund.js +2 -2
  125. package/lib/chevre/service/assetTransaction/reserve/cancel.d.ts +4 -2
  126. package/lib/chevre/service/assetTransaction/reserve/confirm.d.ts +4 -2
  127. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.d.ts +8 -4
  128. package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +1 -1
  129. package/lib/chevre/service/asyncAction.d.ts +2 -2
  130. package/lib/chevre/service/asyncAction.js +1 -4
  131. package/lib/chevre/service/asyncActionHandler/onOperationFailed.d.ts +2 -2
  132. package/lib/chevre/service/asyncActionHandler/onOperationFailed.js +0 -2
  133. package/lib/chevre/service/asyncActionHandler.d.ts +4 -4
  134. package/lib/chevre/service/asyncActionHandler.js +11 -13
  135. package/lib/chevre/service/event/processUpdateMovieTheater.d.ts +4 -2
  136. package/lib/chevre/service/event/processUpdateMovieTheater.js +3 -3
  137. package/lib/chevre/service/event.d.ts +4 -2
  138. package/lib/chevre/service/event.js +3 -3
  139. package/lib/chevre/service/notification/sendEmailMessage.d.ts +4 -2
  140. package/lib/chevre/service/notification/sendEmailMessage.js +3 -3
  141. package/lib/chevre/service/notification/triggerWebhook.d.ts +4 -2
  142. package/lib/chevre/service/notification/triggerWebhook.js +5 -16
  143. package/lib/chevre/service/offer/event/authorize.d.ts +0 -1
  144. package/lib/chevre/service/offer/event/issueEventOfferTicket.d.ts +0 -1
  145. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.d.ts +4 -2
  146. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +1 -3
  147. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.d.ts +9 -5
  148. package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +1 -1
  149. package/lib/chevre/service/offer/event/voidTransaction.d.ts +6 -4
  150. package/lib/chevre/service/offer/event/voidTransaction.js +7 -9
  151. package/lib/chevre/service/offer/event/voidTransactionByActionId.d.ts +6 -4
  152. package/lib/chevre/service/offer/event/voidTransactionByActionId.js +3 -15
  153. package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +1 -1
  154. package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +1 -1
  155. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.d.ts +0 -4
  156. package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +19 -19
  157. package/lib/chevre/service/offer/onEventChanged.js +0 -2
  158. package/lib/chevre/service/order/confirmPayTransaction.d.ts +4 -10
  159. package/lib/chevre/service/order/confirmPayTransaction.js +7 -11
  160. package/lib/chevre/service/order/createAccountingReportIfNotExist.d.ts +1 -1
  161. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +2 -56
  162. package/lib/chevre/service/order/deleteOrder.d.ts +2 -2
  163. package/lib/chevre/service/order/deleteOrder.js +1 -2
  164. package/lib/chevre/service/order/onAssetTransactionStatusChanged/isDeliverable.js +1 -49
  165. package/lib/chevre/service/order/onAssetTransactionStatusChanged/onPayTransactionConfirmed.js +2 -2
  166. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +2 -4
  167. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +2 -4
  168. package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +2 -2
  169. package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +1 -1
  170. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +1 -9
  171. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +2 -2
  172. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +4 -8
  173. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +1 -1
  174. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +5 -11
  175. package/lib/chevre/service/order/onOrderUpdated/factory.js +0 -3
  176. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.d.ts +4 -2
  177. package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +2 -2
  178. package/lib/chevre/service/order/placeOrder.d.ts +6 -4
  179. package/lib/chevre/service/order/placeOrder.js +9 -17
  180. package/lib/chevre/service/order/returnOrder.d.ts +4 -4
  181. package/lib/chevre/service/order/returnOrder.js +11 -43
  182. package/lib/chevre/service/order/sendOrder.d.ts +4 -6
  183. package/lib/chevre/service/order/sendOrder.js +30 -72
  184. package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.d.ts +0 -1
  185. package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.d.ts +0 -1
  186. package/lib/chevre/service/payment/any/authorize.d.ts +0 -1
  187. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +0 -4
  188. package/lib/chevre/service/payment/any/findAcceptAction.js +19 -19
  189. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +0 -4
  190. package/lib/chevre/service/payment/any/findAuthorizeAction.js +19 -19
  191. package/lib/chevre/service/payment/any/findCheckAction.d.ts +0 -4
  192. package/lib/chevre/service/payment/any/findCheckAction.js +19 -19
  193. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +0 -1
  194. package/lib/chevre/service/payment/any/onPayActionCompleted.d.ts +0 -1
  195. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +2 -2
  196. package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.d.ts +0 -1
  197. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +0 -1
  198. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +2 -2
  199. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +0 -2
  200. package/lib/chevre/service/payment/any/publishPaymentUrl.js +2 -2
  201. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +0 -1
  202. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.d.ts +0 -1
  203. package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.d.ts +0 -1
  204. package/lib/chevre/service/payment/creditCard/authorize.d.ts +0 -1
  205. package/lib/chevre/service/payment/creditCard/payCreditCard.d.ts +0 -1
  206. package/lib/chevre/service/payment/creditCard/refundCreditCard.d.ts +0 -1
  207. package/lib/chevre/service/payment/faceToFace.d.ts +0 -2
  208. package/lib/chevre/service/payment/movieTicket/authorize.d.ts +0 -1
  209. package/lib/chevre/service/payment/movieTicket/payMovieTicket.d.ts +0 -1
  210. package/lib/chevre/service/payment/movieTicket/refundMovieTicket.d.ts +0 -1
  211. package/lib/chevre/service/project.d.ts +0 -6
  212. package/lib/chevre/service/project.js +0 -2
  213. package/lib/chevre/service/reserve/cancelReservation.d.ts +7 -3
  214. package/lib/chevre/service/reserve/cancelReservation.js +15 -25
  215. package/lib/chevre/service/reserve/checkInReservation.d.ts +4 -2
  216. package/lib/chevre/service/reserve/checkInReservation.js +2 -2
  217. package/lib/chevre/service/reserve/confirmReservation.d.ts +4 -2
  218. package/lib/chevre/service/reserve/confirmReservation.js +10 -36
  219. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +1 -1
  220. package/lib/chevre/service/reserve/useReservation.d.ts +6 -2
  221. package/lib/chevre/service/reserve/useReservation.js +6 -24
  222. package/lib/chevre/service/reserveCOA/cancelReservation.d.ts +4 -2
  223. package/lib/chevre/service/reserveCOA/cancelReservation.js +3 -3
  224. package/lib/chevre/service/scheduledTask.d.ts +1 -4
  225. package/lib/chevre/service/scheduledTask.js +3 -10
  226. package/lib/chevre/service/scheduledTaskHandler/onOperationFailed.js +1 -2
  227. package/lib/chevre/service/scheduledTaskHandler.js +0 -13
  228. package/lib/chevre/service/task/acceptCOAOffer.js +1 -14
  229. package/lib/chevre/service/task/authorizePayment.js +1 -7
  230. package/lib/chevre/service/task/cancelPendingReservation.js +3 -4
  231. package/lib/chevre/service/task/cancelReservation.js +3 -5
  232. package/lib/chevre/service/task/checkMovieTicket.js +1 -7
  233. package/lib/chevre/service/task/checkResource.js +14 -57
  234. package/lib/chevre/service/task/confirmPayTransaction.js +11 -12
  235. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +6 -2
  236. package/lib/chevre/service/task/confirmReserveTransaction.js +12 -7
  237. package/lib/chevre/service/task/createAccountingReport.js +8 -15
  238. package/lib/chevre/service/task/deleteTransaction.js +10 -41
  239. package/lib/chevre/service/task/importEventsFromCOA.js +4 -2
  240. package/lib/chevre/service/task/invalidatePaymentUrl.js +0 -1
  241. package/lib/chevre/service/task/onAuthorizationCreated.js +4 -13
  242. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.d.ts +4 -2
  243. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +4 -4
  244. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.d.ts +4 -2
  245. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +4 -4
  246. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.d.ts +4 -2
  247. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +4 -4
  248. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.d.ts +4 -2
  249. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +4 -4
  250. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.d.ts +4 -2
  251. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +4 -4
  252. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.d.ts +4 -2
  253. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +4 -4
  254. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.d.ts +4 -2
  255. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +4 -4
  256. package/lib/chevre/service/task/onResourceDeleted.js +4 -3
  257. package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +0 -1
  258. package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +0 -1
  259. package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +0 -1
  260. package/lib/chevre/service/task/onResourceUpdated.js +0 -10
  261. package/lib/chevre/service/task/pay.js +0 -1
  262. package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.d.ts +0 -1
  263. package/lib/chevre/service/task/payment/payByTask.d.ts +0 -1
  264. package/lib/chevre/service/task/payment/refundByTask.d.ts +0 -1
  265. package/lib/chevre/service/task/payment/voidPaymentByTask.d.ts +0 -2
  266. package/lib/chevre/service/task/placeOrder.js +8 -6
  267. package/lib/chevre/service/task/publishPaymentUrl.js +2 -13
  268. package/lib/chevre/service/task/refund.js +0 -1
  269. package/lib/chevre/service/task/reserve.js +3 -6
  270. package/lib/chevre/service/task/returnOrder.js +3 -7
  271. package/lib/chevre/service/task/returnPayTransaction.js +9 -19
  272. package/lib/chevre/service/task/returnReserveTransaction.js +5 -6
  273. package/lib/chevre/service/task/sendEmailMessage.js +2 -2
  274. package/lib/chevre/service/task/sendOrder.js +4 -8
  275. package/lib/chevre/service/task/syncResourcesFromCOA.js +31 -23
  276. package/lib/chevre/service/task/triggerWebhook.js +4 -2
  277. package/lib/chevre/service/task/useReservation.js +6 -2
  278. package/lib/chevre/service/task/voidPayment.js +0 -2
  279. package/lib/chevre/service/task/voidReserveTransaction.js +11 -13
  280. package/lib/chevre/service/task.d.ts +4 -4
  281. package/lib/chevre/service/task.js +8 -12
  282. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +0 -1
  283. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +3 -2
  284. package/lib/chevre/service/taskHandler/onOperationFailed.js +5 -16
  285. package/lib/chevre/service/taskHandler.d.ts +1 -2
  286. package/lib/chevre/service/taskHandler.js +7 -19
  287. package/lib/chevre/service/transaction/deleteTransaction/deletePayTransactionsByPlaceOrder.js +2 -2
  288. package/lib/chevre/service/transaction/deleteTransaction/deleteReservationsByPlaceOrder.js +2 -2
  289. package/lib/chevre/service/transaction/deleteTransaction.d.ts +8 -4
  290. package/lib/chevre/service/transaction/deleteTransaction.js +7 -7
  291. package/lib/chevre/service/transaction/placeOrder/confirm.js +1 -1
  292. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.d.ts +1 -1
  293. package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +11 -17
  294. package/lib/chevre/service/transaction/returnOrder.js +11 -17
  295. package/lib/chevre/service/validation/validateOrder.d.ts +0 -4
  296. package/lib/chevre/service/validation/validateOrder.js +3 -3
  297. package/lib/chevre/taskSettings.d.ts +4 -4
  298. package/package.json +2 -2
  299. package/lib/chevre/repo/action/actionProcess.d.ts +0 -147
  300. package/lib/chevre/repo/action/checkThing.d.ts +0 -8
  301. package/lib/chevre/repo/action/checkThing.js +0 -13
  302. package/lib/chevre/repo/action.js +0 -468
  303. package/lib/chevre/repo/asyncActionLegacy.d.ts +0 -23
  304. package/lib/chevre/repo/asyncActionLegacy.js +0 -59
  305. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +0 -227
  306. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.d.ts +0 -25
  307. package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +0 -100
  308. package/lib/chevre/repo/ownershipInfo.d.ts +0 -122
  309. package/lib/chevre/repo/ownershipInfo.js +0 -466
  310. package/lib/chevre/repo/scheduledTaskLegacy.d.ts +0 -39
  311. package/lib/chevre/repo/scheduledTaskLegacy.js +0 -96
  312. package/lib/chevre/repo/scheduledTaskMigration.d.ts +0 -21
  313. package/lib/chevre/repo/scheduledTaskMigration.js +0 -70
  314. package/lib/chevre/service/validation/validateEvent.d.ts +0 -11
  315. package/lib/chevre/service/validation/validateEvent.js +0 -21
@@ -2,14 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PayActionRepo = void 0;
4
4
  const factory_1 = require("../../factory");
5
- // import { MONGO_MAX_TIME_MS } from '../settings';
6
- // import { createSchema, IModel as IActionModel, modelName } from './mongoose/schemas/action';
7
- // import { createSchema as createRecipeSchema, IModel as IActionRecipeModel, modelName as recipeModelName } from './mongoose/schemas/actionRecipe';
8
- const actionProcess_1 = require("./actionProcess");
5
+ const actionProcess_1 = require("./anyAction/actionProcess");
9
6
  /**
10
7
  * 決済アクションリポジトリ
11
8
  */
12
9
  class PayActionRepo extends actionProcess_1.ActionProcessRepo {
10
+ constructor(connection) {
11
+ super({ connection }, {
12
+ expireAfterSeconds: actionProcess_1.DEFAULT_EXPIRE_AFTER_SECONDS,
13
+ recipeExpireAfterSeconds: actionProcess_1.RECIPE_DEFAULT_EXPIRE_AFTER_SECONDS
14
+ });
15
+ }
13
16
  /**
14
17
  * 決済方法IDから決済アクションをひとつ参照する
15
18
  * デフォルトでCompletedActionStatusのみ参照
@@ -1,9 +1,11 @@
1
+ import type { Connection } from 'mongoose';
1
2
  import { factory } from '../../factory';
2
- import { ActionProcessRepo } from './actionProcess';
3
+ import { ActionProcessRepo } from './anyAction/actionProcess';
3
4
  export type IRefundAction = factory.action.trade.refund.IAction;
4
5
  export type IActionRecipe = factory.action.trade.refund.IRefundCreditCardRecipe | factory.action.trade.refund.IRefundMovieTicketRecipe;
5
6
  /**
6
7
  * 返金アクションリポジトリ
7
8
  */
8
9
  export declare class RefundActionRepo extends ActionProcessRepo<IRefundAction, IActionRecipe> {
10
+ constructor(connection: Connection);
9
11
  }
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RefundActionRepo = void 0;
4
- // import { MONGO_MAX_TIME_MS } from '../settings';
5
- // import { createSchema, IModel as IActionModel, modelName } from './mongoose/schemas/action';
6
- // import { createSchema as createRecipeSchema, IModel as IActionRecipeModel, modelName as recipeModelName } from './mongoose/schemas/actionRecipe';
7
- const actionProcess_1 = require("./actionProcess");
4
+ const actionProcess_1 = require("./anyAction/actionProcess");
8
5
  /**
9
6
  * 返金アクションリポジトリ
10
7
  */
11
8
  class RefundActionRepo extends actionProcess_1.ActionProcessRepo {
9
+ constructor(connection) {
10
+ super({ connection }, {
11
+ expireAfterSeconds: actionProcess_1.DEFAULT_EXPIRE_AFTER_SECONDS,
12
+ recipeExpireAfterSeconds: actionProcess_1.RECIPE_DEFAULT_EXPIRE_AFTER_SECONDS
13
+ });
14
+ }
12
15
  }
13
16
  exports.RefundActionRepo = RefundActionRepo;
@@ -0,0 +1,21 @@
1
+ import type { Connection } from 'mongoose';
2
+ import { factory } from '../../factory';
3
+ import { ActionProcessRepo } from './anyAction/actionProcess';
4
+ export type IReserveAction = factory.action.reserve.IAction;
5
+ /**
6
+ * 予約アクションリポジトリ
7
+ */
8
+ export declare class ReserveActionRepo extends ActionProcessRepo<IReserveAction, never> {
9
+ constructor(connection: Connection);
10
+ /**
11
+ * 完了済予約アクション検索
12
+ */
13
+ findCompletedReserveAction(params: {
14
+ purpose: {
15
+ /**
16
+ * 予約取引ID
17
+ */
18
+ id: string;
19
+ };
20
+ }): Promise<Pick<IReserveAction, 'id'> | null>;
21
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReserveActionRepo = void 0;
4
+ const factory_1 = require("../../factory");
5
+ const actionProcess_1 = require("./anyAction/actionProcess");
6
+ const settings_1 = require("../../settings");
7
+ /**
8
+ * 予約アクションリポジトリ
9
+ */
10
+ class ReserveActionRepo extends actionProcess_1.ActionProcessRepo {
11
+ constructor(connection) {
12
+ super({ connection }, {
13
+ expireAfterSeconds: actionProcess_1.DEFAULT_EXPIRE_AFTER_SECONDS,
14
+ recipeExpireAfterSeconds: actionProcess_1.RECIPE_DEFAULT_EXPIRE_AFTER_SECONDS
15
+ });
16
+ }
17
+ /**
18
+ * 完了済予約アクション検索
19
+ */
20
+ async findCompletedReserveAction(params) {
21
+ const query = this.actionModel.findOne({
22
+ actionStatus: { $eq: factory_1.factory.actionStatusType.CompletedActionStatus },
23
+ typeOf: { $eq: factory_1.factory.actionType.ReserveAction },
24
+ // object: {
25
+ // typeOf: { $eq: actionAttributes.object.typeOf }
26
+ // },
27
+ 'purpose.id': { $exists: true, $eq: params.purpose.id }
28
+ }, {
29
+ _id: 0,
30
+ id: { $toString: '$_id' }
31
+ });
32
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
33
+ .lean()
34
+ .exec();
35
+ }
36
+ }
37
+ exports.ReserveActionRepo = ReserveActionRepo;
@@ -0,0 +1,11 @@
1
+ import type { Connection } from 'mongoose';
2
+ import { factory } from '../../factory';
3
+ import { ActionProcessRepo } from './anyAction/actionProcess';
4
+ export type IReturnAction = factory.action.transfer.returnAction.invoice.IAction | factory.action.transfer.returnAction.order.IAction | factory.action.transfer.returnAction.reserveTransaction.IAction;
5
+ export type IActionRecipe = factory.action.transfer.returnAction.reserveTransaction.IReturnCOAReserveRecipe;
6
+ /**
7
+ * 返品(返却)アクションリポジトリ
8
+ */
9
+ export declare class ReturnActionRepo extends ActionProcessRepo<IReturnAction, IActionRecipe> {
10
+ constructor(connection: Connection);
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReturnActionRepo = void 0;
4
+ const actionProcess_1 = require("./anyAction/actionProcess");
5
+ /**
6
+ * 返品(返却)アクションリポジトリ
7
+ */
8
+ class ReturnActionRepo extends actionProcess_1.ActionProcessRepo {
9
+ constructor(connection) {
10
+ super({ connection }, {
11
+ expireAfterSeconds: actionProcess_1.DEFAULT_EXPIRE_AFTER_SECONDS,
12
+ recipeExpireAfterSeconds: actionProcess_1.RECIPE_DEFAULT_EXPIRE_AFTER_SECONDS
13
+ });
14
+ }
15
+ }
16
+ exports.ReturnActionRepo = ReturnActionRepo;
@@ -0,0 +1,10 @@
1
+ import type { Connection } from 'mongoose';
2
+ import { factory } from '../../factory';
3
+ import { ActionProcessRepo, IActionRecipe } from './anyAction/actionProcess';
4
+ export type ISendAction = factory.action.transfer.send.message.email.IAction;
5
+ /**
6
+ * メッセージ送信アクションリポジトリ
7
+ */
8
+ export declare class SendEmailMessageActionRepo extends ActionProcessRepo<ISendAction, IActionRecipe<factory.recipe.RecipeCategory.sendEmailMessage>> {
9
+ constructor(connection: Connection);
10
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendEmailMessageActionRepo = void 0;
4
+ const actionProcess_1 = require("./anyAction/actionProcess");
5
+ const EXPIRE_AFTER_SECONDS = 2592000; // 30 days
6
+ /**
7
+ * メッセージ送信アクションリポジトリ
8
+ */
9
+ class SendEmailMessageActionRepo extends actionProcess_1.ActionProcessRepo {
10
+ constructor(connection) {
11
+ super({ connection }, {
12
+ expireAfterSeconds: EXPIRE_AFTER_SECONDS,
13
+ recipeExpireAfterSeconds: EXPIRE_AFTER_SECONDS
14
+ });
15
+ }
16
+ }
17
+ exports.SendEmailMessageActionRepo = SendEmailMessageActionRepo;
@@ -0,0 +1,10 @@
1
+ import type { Connection } from 'mongoose';
2
+ import { factory } from '../../factory';
3
+ import { ActionProcessRepo } from './anyAction/actionProcess';
4
+ export type ISendAction = factory.action.transfer.send.order.IAction;
5
+ /**
6
+ * 注文配送アクションリポジトリ
7
+ */
8
+ export declare class SendOrderActionRepo extends ActionProcessRepo<ISendAction, never> {
9
+ constructor(connection: Connection);
10
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SendOrderActionRepo = void 0;
4
+ const actionProcess_1 = require("./anyAction/actionProcess");
5
+ /**
6
+ * 注文配送アクションリポジトリ
7
+ */
8
+ class SendOrderActionRepo extends actionProcess_1.ActionProcessRepo {
9
+ constructor(connection) {
10
+ super({ connection }, {
11
+ expireAfterSeconds: actionProcess_1.DEFAULT_EXPIRE_AFTER_SECONDS,
12
+ recipeExpireAfterSeconds: actionProcess_1.RECIPE_DEFAULT_EXPIRE_AFTER_SECONDS
13
+ });
14
+ }
15
+ }
16
+ exports.SendOrderActionRepo = SendOrderActionRepo;
@@ -0,0 +1,6 @@
1
+ interface IActionError {
2
+ name: string;
3
+ message: string;
4
+ }
5
+ export declare function unknown2actionError(e: unknown): IActionError;
6
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unknown2actionError = unknown2actionError;
4
+ // 内部で正規化関数を定義(または外部ヘルパーを呼び出す)
5
+ function unknown2actionError(e) {
6
+ if (e instanceof Error) {
7
+ // Errorオブジェクトの場合は、既存のロジック通り展開
8
+ return { ...e, name: e.name, message: e.message };
9
+ }
10
+ else {
11
+ // Error以外(文字列など)が投げられた場合のハンドリング
12
+ return { name: 'UnknownError', message: String(e) };
13
+ }
14
+ }
15
+ ;
@@ -0,0 +1,48 @@
1
+ import { Connection, FilterQuery } from 'mongoose';
2
+ import { factory } from '../../factory';
3
+ import { IDocType } from '../mongoose/schemas/action/update';
4
+ type StartableActionType = factory.actionType.AddAction | factory.actionType.UpdateAction | factory.actionType.ReplaceAction | factory.actionType.DeleteAction;
5
+ type IAction<T extends StartableActionType> = T extends factory.actionType.AddAction ? factory.action.update.add.IAction : T extends factory.actionType.ReplaceAction ? factory.action.update.replace.IAction : T extends factory.actionType.UpdateAction ? factory.action.update.update.IAction : T extends factory.actionType.DeleteAction ? factory.action.update.deleteAction.IAction : never;
6
+ type IActionAttributes<T extends StartableActionType> = T extends factory.actionType.AddAction ? factory.action.update.add.IAttributes : T extends factory.actionType.ReplaceAction ? factory.action.update.replace.IAttributes : T extends factory.actionType.UpdateAction ? factory.action.update.update.IAttributes : T extends factory.actionType.DeleteAction ? factory.action.update.deleteAction.IAttributes : never;
7
+ type IKeyOfProjection = keyof IDocType;
8
+ type IFindParams = factory.action.update.update.IFindParams;
9
+ /**
10
+ * リソース編集アクションリポジトリ
11
+ */
12
+ export declare class UpdateActionRepo {
13
+ private readonly updateActionModel;
14
+ constructor(connection: Connection);
15
+ static CREATE_MONGO_CONDITIONS(params: Pick<IFindParams, 'id' | 'object' | 'project' | 'result' | 'startFrom' | 'startThrough' | 'typeOf'>): FilterQuery<IDocType>[];
16
+ /**
17
+ * アクション開始
18
+ */
19
+ startUpdateAction<T extends StartableActionType>(attributes: IActionAttributes<T>): Promise<Pick<IAction<T>, 'id' | 'typeOf' | 'startDate'>>;
20
+ completeUpdateAction(params: {
21
+ typeOf: StartableActionType;
22
+ id: string;
23
+ result: any;
24
+ }): Promise<void>;
25
+ /**
26
+ * アクション失敗
27
+ */
28
+ giveUpUpdateAction(params: {
29
+ typeOf: StartableActionType;
30
+ id: string;
31
+ error: Error | Error[] | unknown;
32
+ }): Promise<void>;
33
+ findUpdateActions(params: IFindParams, inclusion: IKeyOfProjection[]): Promise<IAction<StartableActionType>[]>;
34
+ findUpdateActionsBySameAs(params: {
35
+ sameAs: {
36
+ id: {
37
+ $eq: string;
38
+ };
39
+ };
40
+ /**
41
+ * 1taskから複数actionが発生する可能性があるので、typeOf指定が必須
42
+ */
43
+ typeOf: {
44
+ $eq: StartableActionType;
45
+ };
46
+ }): Promise<Pick<IAction<StartableActionType>, 'id' | 'actionStatus' | 'error'>[]>;
47
+ }
48
+ export {};
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateActionRepo = void 0;
4
+ const factory_1 = require("../../factory");
5
+ const settings_1 = require("../../settings");
6
+ const update_1 = require("../mongoose/schemas/action/update");
7
+ const unknown2actionError_1 = require("./unknown2actionError");
8
+ const AVAILABLE_PROJECT_FIELDS = [
9
+ 'project',
10
+ 'actionStatus',
11
+ 'typeOf',
12
+ 'agent',
13
+ 'result',
14
+ 'error',
15
+ 'object',
16
+ 'startDate',
17
+ 'endDate',
18
+ 'instrument',
19
+ 'targetCollection',
20
+ 'sameAs',
21
+ 'expires'
22
+ ];
23
+ const EXPIRE_AFTER_SECONDS = 2592000; // 30 days
24
+ /**
25
+ * リソース編集アクションリポジトリ
26
+ */
27
+ class UpdateActionRepo {
28
+ updateActionModel;
29
+ constructor(connection) {
30
+ this.updateActionModel = connection.model(update_1.modelName, (0, update_1.createSchema)());
31
+ }
32
+ static CREATE_MONGO_CONDITIONS(params) {
33
+ const andConditions = [];
34
+ const idEq = params.id;
35
+ if (typeof idEq === 'string') {
36
+ andConditions.push({ _id: { $eq: idEq } });
37
+ }
38
+ const projectIdEq = params.project?.id?.$eq;
39
+ if (typeof projectIdEq === 'string') {
40
+ andConditions.push({ 'project.id': { $eq: projectIdEq } });
41
+ }
42
+ const objectIdEq = params.object?.id;
43
+ if (typeof objectIdEq === 'string') {
44
+ andConditions.push({ 'object.id': { $exists: true, $eq: objectIdEq } });
45
+ }
46
+ const resultIdEq = params.result?.id;
47
+ if (typeof resultIdEq === 'string') {
48
+ andConditions.push({ 'result.id': { $exists: true, $eq: resultIdEq } });
49
+ }
50
+ if (typeof params.typeOf === 'string') {
51
+ andConditions.push({ typeOf: { $eq: params.typeOf } });
52
+ }
53
+ const startDateGte = params.startFrom;
54
+ if (startDateGte instanceof Date) {
55
+ andConditions.push({ startDate: { $gte: startDateGte } });
56
+ }
57
+ const startDateLte = params.startThrough;
58
+ if (startDateLte instanceof Date) {
59
+ andConditions.push({ startDate: { $lte: startDateLte } });
60
+ }
61
+ return andConditions;
62
+ }
63
+ /**
64
+ * アクション開始
65
+ */
66
+ async startUpdateAction(attributes) {
67
+ const startDate = new Date();
68
+ const expires = new Date(startDate.getTime() + EXPIRE_AFTER_SECONDS * 1000);
69
+ const creatingAction = {
70
+ ...attributes,
71
+ actionStatus: factory_1.factory.actionStatusType.ActiveActionStatus,
72
+ startDate,
73
+ expires
74
+ };
75
+ const result = await this.updateActionModel.insertMany(creatingAction, { rawResult: true });
76
+ const id = result.insertedIds?.[0]?.toHexString();
77
+ if (typeof id !== 'string') {
78
+ throw new factory_1.factory.errors.Internal('action not saved');
79
+ }
80
+ return { id, startDate, typeOf: creatingAction.typeOf };
81
+ }
82
+ async completeUpdateAction(params) {
83
+ const doc = await this.updateActionModel.findOneAndUpdate({
84
+ _id: { $eq: params.id },
85
+ typeOf: { $eq: params.typeOf }
86
+ }, {
87
+ $set: {
88
+ actionStatus: factory_1.factory.actionStatusType.CompletedActionStatus,
89
+ result: params.result,
90
+ endDate: new Date()
91
+ }
92
+ }, { new: false, projection: { _id: 1 } })
93
+ .lean()
94
+ .exec();
95
+ if (doc === null) {
96
+ throw new factory_1.factory.errors.NotFound(this.updateActionModel.modelName);
97
+ }
98
+ }
99
+ /**
100
+ * アクション失敗
101
+ */
102
+ async giveUpUpdateAction(params) {
103
+ const actionError = Array.isArray(params.error)
104
+ ? params.error.map(unknown2actionError_1.unknown2actionError)
105
+ : (0, unknown2actionError_1.unknown2actionError)(params.error);
106
+ const doc = await this.updateActionModel.findOneAndUpdate({
107
+ typeOf: { $eq: params.typeOf },
108
+ _id: { $eq: params.id }
109
+ }, {
110
+ $set: {
111
+ actionStatus: factory_1.factory.actionStatusType.FailedActionStatus,
112
+ error: actionError,
113
+ endDate: new Date()
114
+ }
115
+ }, { new: true, projection: { _id: 1 } })
116
+ .lean()
117
+ .exec();
118
+ if (doc === null) {
119
+ throw new factory_1.factory.errors.NotFound(this.updateActionModel.modelName);
120
+ }
121
+ }
122
+ async findUpdateActions(params, inclusion) {
123
+ const conditions = UpdateActionRepo.CREATE_MONGO_CONDITIONS(params);
124
+ let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
125
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
126
+ positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
127
+ }
128
+ const projection = {
129
+ _id: 0,
130
+ id: { $toString: '$_id' },
131
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
132
+ };
133
+ const query = this.updateActionModel.find((conditions.length > 0) ? { $and: conditions } : {}, projection);
134
+ if (typeof params.limit === 'number' && params.limit > 0) {
135
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
136
+ query.limit(params.limit)
137
+ .skip(params.limit * (page - 1));
138
+ }
139
+ /* istanbul ignore else */
140
+ if (params.sort?.startDate !== undefined) {
141
+ query.sort({ startDate: params.sort.startDate });
142
+ }
143
+ // const explainResult = await (<any>query).explain();
144
+ // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
145
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
146
+ .lean() // 2024-08-26~
147
+ .exec();
148
+ }
149
+ async findUpdateActionsBySameAs(params) {
150
+ const projection = {
151
+ _id: 0,
152
+ id: { $toString: '$_id' },
153
+ actionStatus: 1,
154
+ error: 1
155
+ };
156
+ const query = this.updateActionModel.find({
157
+ typeOf: { $eq: params.typeOf.$eq },
158
+ 'sameAs.id': { $exists: true, $eq: params.sameAs.id.$eq }
159
+ }, projection)
160
+ .limit(1);
161
+ return query
162
+ .lean()
163
+ .exec();
164
+ }
165
+ }
166
+ exports.UpdateActionRepo = UpdateActionRepo;
@@ -0,0 +1,39 @@
1
+ import { Connection, FilterQuery } from 'mongoose';
2
+ import { factory } from '../../factory';
3
+ import { IDocType } from '../mongoose/schemas/action/use';
4
+ type StartableActionType = factory.actionType.UseAction;
5
+ type IAction = IDocType & {
6
+ id: string;
7
+ };
8
+ type IKeyOfProjection = keyof IDocType;
9
+ type IFindParams = factory.action.consume.use.reservation.IFindParams;
10
+ /**
11
+ * 予約使用アクションリポジトリ
12
+ */
13
+ export declare class UseActionRepo {
14
+ private readonly useActionModel;
15
+ constructor(connection: Connection);
16
+ static CREATE_MONGO_CONDITIONS(params: Pick<IFindParams, 'actionStatus' | 'id' | 'object' | 'project' | 'startFrom' | 'startThrough'>): FilterQuery<IDocType>[];
17
+ /**
18
+ * アクション開始
19
+ */
20
+ startUseAction(attributes: factory.action.consume.use.reservation.IAttributes): Promise<Pick<IAction, 'id' | 'typeOf' | 'startDate'>>;
21
+ completeUseAction(params: {
22
+ typeOf: StartableActionType;
23
+ id: string;
24
+ }): Promise<void>;
25
+ /**
26
+ * アクション失敗
27
+ */
28
+ giveUpUseAction(params: {
29
+ typeOf: StartableActionType;
30
+ id: string;
31
+ error: Error | Error[] | unknown;
32
+ }): Promise<void>;
33
+ findUseActions(params: IFindParams, inclusion: IKeyOfProjection[]): Promise<IAction[]>;
34
+ /**
35
+ * 移行処理
36
+ */
37
+ migrateUseAction(params: factory.action.consume.use.reservation.IAction): Promise<import("mongoose").UpdateWriteOpResult>;
38
+ }
39
+ export {};
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UseActionRepo = void 0;
4
+ const factory_1 = require("../../factory");
5
+ const settings_1 = require("../../settings");
6
+ const use_1 = require("../mongoose/schemas/action/use");
7
+ const unknown2actionError_1 = require("./unknown2actionError");
8
+ const AVAILABLE_PROJECT_FIELDS = [
9
+ 'project',
10
+ 'actionStatus',
11
+ 'typeOf',
12
+ 'agent',
13
+ 'error',
14
+ 'object',
15
+ 'startDate',
16
+ 'endDate',
17
+ 'instrument',
18
+ 'location',
19
+ 'expires'
20
+ ];
21
+ const EXPIRE_AFTER_SECONDS = 2592000; // 30 days
22
+ /**
23
+ * 予約使用アクションリポジトリ
24
+ */
25
+ class UseActionRepo {
26
+ useActionModel;
27
+ constructor(connection) {
28
+ this.useActionModel = connection.model(use_1.modelName, (0, use_1.createSchema)());
29
+ }
30
+ static CREATE_MONGO_CONDITIONS(params) {
31
+ const andConditions = [];
32
+ const actionStatusEq = params.actionStatus;
33
+ if (typeof actionStatusEq === 'string') {
34
+ andConditions.push({ actionStatus: { $eq: actionStatusEq } });
35
+ }
36
+ const idEq = params.id;
37
+ if (typeof idEq === 'string') {
38
+ andConditions.push({ _id: { $eq: idEq } });
39
+ }
40
+ const projectIdEq = params.project?.id?.$eq;
41
+ if (typeof projectIdEq === 'string') {
42
+ andConditions.push({ 'project.id': { $eq: projectIdEq } });
43
+ }
44
+ const startDateGte = params.startFrom;
45
+ if (startDateGte instanceof Date) {
46
+ andConditions.push({ startDate: { $gte: startDateGte } });
47
+ }
48
+ const startDateLte = params.startThrough;
49
+ if (startDateLte instanceof Date) {
50
+ andConditions.push({ startDate: { $lte: startDateLte } });
51
+ }
52
+ const objectIdEq = params.object?.id;
53
+ if (typeof objectIdEq === 'string') {
54
+ andConditions.push({ 'object.id': { $exists: true, $eq: objectIdEq } });
55
+ }
56
+ return andConditions;
57
+ }
58
+ /**
59
+ * アクション開始
60
+ */
61
+ async startUseAction(attributes) {
62
+ const startDate = new Date();
63
+ const expires = new Date(startDate.getTime() + EXPIRE_AFTER_SECONDS * 1000);
64
+ const creatingAction = {
65
+ ...attributes,
66
+ actionStatus: factory_1.factory.actionStatusType.ActiveActionStatus,
67
+ startDate,
68
+ expires
69
+ };
70
+ const result = await this.useActionModel.insertMany(creatingAction, { rawResult: true });
71
+ const id = result.insertedIds?.[0]?.toHexString();
72
+ if (typeof id !== 'string') {
73
+ throw new factory_1.factory.errors.Internal('action not saved');
74
+ }
75
+ return { id, startDate, typeOf: creatingAction.typeOf };
76
+ }
77
+ async completeUseAction(params) {
78
+ const doc = await this.useActionModel.findOneAndUpdate({ _id: { $eq: params.id } }, {
79
+ $set: {
80
+ actionStatus: factory_1.factory.actionStatusType.CompletedActionStatus,
81
+ // result: params.result,
82
+ endDate: new Date()
83
+ }
84
+ }, { new: false, projection: { _id: 1 } })
85
+ .lean()
86
+ .exec();
87
+ if (doc === null) {
88
+ throw new factory_1.factory.errors.NotFound(this.useActionModel.modelName);
89
+ }
90
+ }
91
+ /**
92
+ * アクション失敗
93
+ */
94
+ async giveUpUseAction(params) {
95
+ const actionError = Array.isArray(params.error)
96
+ ? params.error.map(unknown2actionError_1.unknown2actionError)
97
+ : (0, unknown2actionError_1.unknown2actionError)(params.error);
98
+ const doc = await this.useActionModel.findOneAndUpdate({ _id: { $eq: params.id } }, {
99
+ $set: {
100
+ actionStatus: factory_1.factory.actionStatusType.FailedActionStatus,
101
+ error: actionError,
102
+ endDate: new Date()
103
+ }
104
+ }, { new: true, projection: { _id: 1 } })
105
+ .lean()
106
+ .exec();
107
+ if (doc === null) {
108
+ throw new factory_1.factory.errors.NotFound(this.useActionModel.modelName);
109
+ }
110
+ }
111
+ async findUseActions(params, inclusion) {
112
+ const conditions = UseActionRepo.CREATE_MONGO_CONDITIONS(params);
113
+ let positiveProjectionFields = AVAILABLE_PROJECT_FIELDS;
114
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
115
+ positiveProjectionFields = inclusion.filter((key) => AVAILABLE_PROJECT_FIELDS.includes(key));
116
+ }
117
+ const projection = {
118
+ _id: 0,
119
+ id: { $toString: '$_id' },
120
+ ...Object.fromEntries(positiveProjectionFields.map((key) => ([key, 1])))
121
+ };
122
+ const query = this.useActionModel.find((conditions.length > 0) ? { $and: conditions } : {}, projection);
123
+ if (typeof params.limit === 'number' && params.limit > 0) {
124
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
125
+ query.limit(params.limit)
126
+ .skip(params.limit * (page - 1));
127
+ }
128
+ /* istanbul ignore else */
129
+ if (params.sort?.startDate !== undefined) {
130
+ query.sort({ startDate: params.sort.startDate });
131
+ }
132
+ // const explainResult = await (<any>query).explain();
133
+ // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
134
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
135
+ .lean() // 2024-08-26~
136
+ .exec();
137
+ }
138
+ /**
139
+ * 移行処理
140
+ */
141
+ async migrateUseAction(params) {
142
+ const { id, ...upserting } = params;
143
+ return this.useActionModel.updateOne({
144
+ _id: { $eq: id }
145
+ }, {
146
+ $setOnInsert: {
147
+ ...upserting,
148
+ _id: id
149
+ }
150
+ }, { upsert: true });
151
+ }
152
+ }
153
+ exports.UseActionRepo = UseActionRepo;