@chevre/domain 21.2.0-alpha.12 → 21.2.0-alpha.120

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 (293) hide show
  1. package/example/src/chevre/aggregateEventReservation.ts +1 -1
  2. package/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
  3. package/example/src/chevre/countDelayedTasks.ts +7 -2
  4. package/example/src/chevre/deleteTasksByName.ts +10 -2
  5. package/example/src/chevre/findMovieTheaterById.ts +40 -0
  6. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  7. package/example/src/chevre/lockStockHolder.ts +2 -1
  8. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  9. package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
  10. package/example/src/chevre/migrateStockHolderKeys.ts +1 -1
  11. package/example/src/chevre/processPay.ts +5 -1
  12. package/example/src/chevre/processRegisterMembership.ts +8 -4
  13. package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
  14. package/example/src/chevre/processReserve.ts +5 -2
  15. package/example/src/chevre/saveTasks.ts +13 -10
  16. package/example/src/chevre/searchAbortedTasks.ts +36 -0
  17. package/example/src/chevre/searchActions.ts +33 -0
  18. package/example/src/chevre/searchEventSeats.ts +2 -1
  19. package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
  20. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  21. package/example/src/chevre/task/executeTasks.ts +26 -0
  22. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  23. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  24. package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
  25. package/example/src/chevre/transaction/startExportTasks.ts +20 -0
  26. package/example/src/chevre/updateScreeningRoom.ts +41 -0
  27. package/example/src/chevre/updateTransaction.ts +1 -1
  28. package/example/src/playOnMoment.ts +24 -0
  29. package/lib/chevre/credentials.d.ts +1 -0
  30. package/lib/chevre/credentials.js +2 -1
  31. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  32. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  33. package/lib/chevre/eventEmitter/task.d.ts +18 -0
  34. package/lib/chevre/eventEmitter/task.js +25 -0
  35. package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
  36. package/lib/chevre/eventEmitter/transaction.js +25 -0
  37. package/lib/chevre/eventEmitter.d.ts +4 -0
  38. package/lib/chevre/eventEmitter.js +9 -0
  39. package/lib/chevre/index.d.ts +3 -2
  40. package/lib/chevre/index.js +5 -3
  41. package/lib/chevre/repo/account.js +3 -2
  42. package/lib/chevre/repo/accountTransaction.d.ts +3 -11
  43. package/lib/chevre/repo/accountTransaction.js +3 -55
  44. package/lib/chevre/repo/action.d.ts +42 -2
  45. package/lib/chevre/repo/action.js +130 -57
  46. package/lib/chevre/repo/additionalProperty.js +2 -1
  47. package/lib/chevre/repo/aggregation.d.ts +3 -0
  48. package/lib/chevre/repo/aggregation.js +3 -0
  49. package/lib/chevre/repo/assetTransaction.d.ts +25 -9
  50. package/lib/chevre/repo/assetTransaction.js +259 -87
  51. package/lib/chevre/repo/categoryCode.d.ts +1 -1
  52. package/lib/chevre/repo/categoryCode.js +37 -25
  53. package/lib/chevre/repo/code.js +3 -2
  54. package/lib/chevre/repo/comment.d.ts +4 -1
  55. package/lib/chevre/repo/comment.js +22 -6
  56. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  57. package/lib/chevre/repo/confirmationNumber.js +3 -15
  58. package/lib/chevre/repo/creativeWork.d.ts +2 -4
  59. package/lib/chevre/repo/creativeWork.js +35 -12
  60. package/lib/chevre/repo/customer.js +2 -1
  61. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  62. package/lib/chevre/repo/emailMessage.js +2 -1
  63. package/lib/chevre/repo/event.d.ts +27 -1
  64. package/lib/chevre/repo/event.js +67 -33
  65. package/lib/chevre/repo/member.js +4 -3
  66. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  67. package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
  68. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
  69. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
  70. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
  71. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  72. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
  73. package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
  74. package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
  75. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
  76. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
  77. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
  78. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
  79. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
  80. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  81. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
  82. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
  83. package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
  84. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
  85. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
  86. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
  87. package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
  88. package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
  89. package/lib/chevre/repo/mongoose/schemas/holdReservation.js +56 -0
  90. package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
  91. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
  92. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
  93. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
  94. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  95. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  96. package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
  97. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  98. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
  99. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/place.d.ts +49 -3
  101. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
  102. package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
  103. package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
  104. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
  105. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  106. package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
  107. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
  108. package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
  109. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
  110. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
  111. package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
  112. package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
  113. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
  114. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
  115. package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
  116. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
  117. package/lib/chevre/repo/offer.js +3 -2
  118. package/lib/chevre/repo/offerCatalog.js +0 -27
  119. package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
  120. package/lib/chevre/repo/offerItemCondition.js +121 -0
  121. package/lib/chevre/repo/order.d.ts +55 -3
  122. package/lib/chevre/repo/order.js +62 -10
  123. package/lib/chevre/repo/ownershipInfo.js +2 -7
  124. package/lib/chevre/repo/place.d.ts +20 -5
  125. package/lib/chevre/repo/place.js +63 -23
  126. package/lib/chevre/repo/priceSpecification.js +3 -2
  127. package/lib/chevre/repo/product.d.ts +1 -3
  128. package/lib/chevre/repo/product.js +25 -4
  129. package/lib/chevre/repo/project.js +2 -1
  130. package/lib/chevre/repo/reservation.d.ts +20 -4
  131. package/lib/chevre/repo/reservation.js +40 -59
  132. package/lib/chevre/repo/role.js +3 -2
  133. package/lib/chevre/repo/seller.d.ts +1 -1
  134. package/lib/chevre/repo/seller.js +44 -23
  135. package/lib/chevre/repo/serviceOutput.js +2 -1
  136. package/lib/chevre/repo/stockHolder.d.ts +35 -5
  137. package/lib/chevre/repo/stockHolder.js +306 -87
  138. package/lib/chevre/repo/task.d.ts +45 -2
  139. package/lib/chevre/repo/task.js +94 -15
  140. package/lib/chevre/repo/transaction.d.ts +23 -3
  141. package/lib/chevre/repo/transaction.js +177 -56
  142. package/lib/chevre/repo/trip.js +2 -1
  143. package/lib/chevre/repository.d.ts +5 -2
  144. package/lib/chevre/repository.js +8 -4
  145. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +8 -6
  146. package/lib/chevre/service/aggregation/system.d.ts +110 -23
  147. package/lib/chevre/service/aggregation/system.js +213 -91
  148. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
  149. package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
  150. package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
  151. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  152. package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
  153. package/lib/chevre/service/assetTransaction/pay.js +20 -34
  154. package/lib/chevre/service/assetTransaction/refund.js +2 -24
  155. package/lib/chevre/service/assetTransaction/registerService.js +1 -25
  156. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
  157. package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
  158. package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
  159. package/lib/chevre/service/assetTransaction/reserve.js +85 -69
  160. package/lib/chevre/service/assetTransaction.d.ts +6 -0
  161. package/lib/chevre/service/assetTransaction.js +9 -4
  162. package/lib/chevre/service/event.js +16 -5
  163. package/lib/chevre/service/notification/factory.js +2 -2
  164. package/lib/chevre/service/notification.d.ts +3 -1
  165. package/lib/chevre/service/notification.js +41 -7
  166. package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
  167. package/lib/chevre/service/offer/event/authorize.js +8 -2
  168. package/lib/chevre/service/offer/event/factory.d.ts +3 -0
  169. package/lib/chevre/service/offer/event/factory.js +16 -5
  170. package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
  171. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  172. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  173. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
  174. package/lib/chevre/service/offer/product.js +2 -2
  175. package/lib/chevre/service/offer.d.ts +16 -8
  176. package/lib/chevre/service/offer.js +69 -8
  177. package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
  178. package/lib/chevre/service/order/deleteOrder.js +8 -8
  179. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
  180. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
  181. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
  182. package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
  183. package/lib/chevre/service/order/onOrderUpdated.js +22 -0
  184. package/lib/chevre/service/order/placeOrder.d.ts +1 -0
  185. package/lib/chevre/service/order/placeOrder.js +41 -24
  186. package/lib/chevre/service/order/returnOrder.d.ts +1 -0
  187. package/lib/chevre/service/order/returnOrder.js +7 -12
  188. package/lib/chevre/service/order/sendOrder.d.ts +1 -0
  189. package/lib/chevre/service/order/sendOrder.js +7 -10
  190. package/lib/chevre/service/order.d.ts +2 -1
  191. package/lib/chevre/service/order.js +3 -1
  192. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  193. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  194. package/lib/chevre/service/payment/any.d.ts +9 -5
  195. package/lib/chevre/service/payment/any.js +80 -18
  196. package/lib/chevre/service/payment/creditCard.d.ts +1 -1
  197. package/lib/chevre/service/payment/creditCard.js +23 -17
  198. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
  199. package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
  200. package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
  201. package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
  202. package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
  203. package/lib/chevre/service/payment/movieTicket/validation.js +55 -32
  204. package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
  205. package/lib/chevre/service/payment/movieTicket.js +7 -6
  206. package/lib/chevre/service/product.js +1 -5
  207. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  208. package/lib/chevre/service/report/telemetry.js +21 -24
  209. package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
  210. package/lib/chevre/service/reserve/cancelReservation.js +147 -139
  211. package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
  212. package/lib/chevre/service/reserve/checkInReservation.js +77 -3
  213. package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
  214. package/lib/chevre/service/reserve/confirmReservation.js +133 -58
  215. package/lib/chevre/service/reserve/factory.d.ts +1 -1
  216. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
  217. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
  218. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  219. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  220. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  221. package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
  222. package/lib/chevre/service/reserve/useReservation.js +61 -71
  223. package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
  224. package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
  225. package/lib/chevre/service/reserve.d.ts +3 -2
  226. package/lib/chevre/service/reserve.js +4 -2
  227. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  228. package/lib/chevre/service/task/cancelPendingReservation.js +6 -2
  229. package/lib/chevre/service/task/cancelReservation.js +1 -1
  230. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  231. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  232. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  233. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
  234. package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
  235. package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
  236. package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
  237. package/lib/chevre/service/task/onResourceUpdated.d.ts +7 -0
  238. package/lib/chevre/service/task/onResourceUpdated.js +352 -0
  239. package/lib/chevre/service/task/placeOrder.js +1 -1
  240. package/lib/chevre/service/task/reserve.js +10 -7
  241. package/lib/chevre/service/task/returnOrder.js +1 -1
  242. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  243. package/lib/chevre/service/task/sendOrder.js +1 -1
  244. package/lib/chevre/service/task/useReservation.d.ts +7 -0
  245. package/lib/chevre/service/task/useReservation.js +36 -0
  246. package/lib/chevre/service/task/voidReserveTransaction.js +4 -2
  247. package/lib/chevre/service/task.d.ts +9 -0
  248. package/lib/chevre/service/task.js +43 -4
  249. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  250. package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
  251. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  252. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
  253. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  254. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  255. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  256. package/lib/chevre/service/transaction/moneyTransfer.js +10 -13
  257. package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
  258. package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
  259. package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
  260. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  261. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  262. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  263. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  264. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  265. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  266. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  267. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  268. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  269. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  270. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  271. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  272. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  273. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  274. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  275. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  276. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
  277. package/lib/chevre/service/transaction/placeOrderInProgress.js +28 -15
  278. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  279. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
  280. package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
  281. package/lib/chevre/service/transaction/returnOrder.js +228 -36
  282. package/lib/chevre/service/transaction.d.ts +8 -13
  283. package/lib/chevre/service/transaction.js +12 -145
  284. package/lib/chevre/settings.d.ts +12 -1
  285. package/lib/chevre/settings.js +53 -6
  286. package/package.json +5 -5
  287. package/example/src/chevre/createManyEventsIfNotExist.ts +0 -205
  288. package/example/src/chevre/eventCatalog2eventService.ts +0 -123
  289. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  290. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
  291. package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
  292. package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
  293. package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
@@ -19,67 +19,112 @@ const onReservationCanceled_1 = require("./potentialActions/onReservationCancele
19
19
  /**
20
20
  * 進行中の予約をキャンセルする
21
21
  */
22
- // tslint:disable-next-line:max-func-body-length
23
- function cancelPendingReservation(actionAttributesList) {
24
- // tslint:disable-next-line:max-func-body-length
22
+ function cancelPendingReservation(actionAttributes) {
25
23
  return (repos) => __awaiter(this, void 0, void 0, function* () {
24
+ var _a;
26
25
  const now = new Date();
27
26
  let canceledReservations = [];
28
- if (actionAttributesList.length > 0) {
29
- // tslint:disable-next-line:max-func-body-length
30
- yield Promise.all(actionAttributesList.map((actionAttributes) => __awaiter(this, void 0, void 0, function* () {
31
- // let canceledReservation: factory.reservation.eventReservation.IReservation | undefined;
32
- const reserveTransactionId = actionAttributes.purpose.id;
33
- // アクション開始
34
- const action = yield repos.action.start(actionAttributes);
35
- const actionObject = actionAttributes.object;
36
- let cancelResult;
37
- try {
38
- // 予約取引を検索
39
- const reserveTransactions = yield repos.assetTransaction.search({
40
- limit: 1,
41
- page: 1,
42
- typeOf: factory.assetTransactionType.Reserve,
43
- ids: [reserveTransactionId]
44
- });
45
- const reserveTransaction = reserveTransactions.shift();
46
- if (reserveTransaction !== undefined) {
47
- const reservationFor = reserveTransaction.object.reservationFor;
48
- if (reservationFor === undefined) {
49
- throw new factory.errors.NotFound('transaction.object.reservationFor');
27
+ const { reserveTransaction } = yield cancelPengindIfNotYet(actionAttributes, now)(repos);
28
+ if (actionAttributes.object.typeOf === factory.reservationType.ReservationPackage) {
29
+ if (reserveTransaction.object.disablePendingReservations === true) {
30
+ // Pendingが存在しない場合は検索しても無駄(2023-06-05~)
31
+ }
32
+ else {
33
+ canceledReservations = yield repos.reservation.search({
34
+ reservationNumber: { $eq: actionAttributes.object.reservationNumber },
35
+ typeOf: factory.reservationType.EventReservation
36
+ });
37
+ canceledReservations = canceledReservations.map((r) => {
38
+ // _idは不要であり、存在すると予期せぬ影響を及ぼす可能性がある
39
+ delete r._id;
40
+ return r;
41
+ });
42
+ }
43
+ }
44
+ yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, false, {
45
+ project: { id: reserveTransaction.project.id },
46
+ id: String((_a = reserveTransaction.object.reservationFor) === null || _a === void 0 ? void 0 : _a.id)
47
+ })({ task: repos.task });
48
+ });
49
+ }
50
+ exports.cancelPendingReservation = cancelPendingReservation;
51
+ function cancelPengindIfNotYet(params, now) {
52
+ // tslint:disable-next-line:max-func-body-length
53
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
54
+ const actionAttributes = params;
55
+ const reserveTransactionId = actionAttributes.purpose.id;
56
+ // 予約取引を検索
57
+ const reserveTransactions = yield repos.assetTransaction.search({
58
+ limit: 1,
59
+ page: 1,
60
+ typeOf: factory.assetTransactionType.Reserve,
61
+ ids: [reserveTransactionId]
62
+ });
63
+ const reserveTransaction = reserveTransactions.shift();
64
+ if (reserveTransaction === undefined) {
65
+ throw new factory.errors.NotFound(factory.assetTransactionType.Reserve);
66
+ }
67
+ // 冪等性を担保(2023-06-05~)
68
+ const completedActions = yield repos.action.search({
69
+ limit: 1,
70
+ page: 1,
71
+ actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] },
72
+ typeOf: { $eq: params.typeOf },
73
+ object: {
74
+ typeOf: { $eq: params.object.typeOf },
75
+ reservationNumber: { $eq: params.object.reservationNumber }
76
+ },
77
+ purpose: {
78
+ id: { $in: [params.purpose.id] },
79
+ typeOf: { $in: [params.purpose.typeOf] }
80
+ }
81
+ }, ['_id'], []);
82
+ if (completedActions.length === 0) {
83
+ // アクション開始
84
+ const action = yield repos.action.start(actionAttributes);
85
+ const actionObject = actionAttributes.object;
86
+ let cancelResult;
87
+ try {
88
+ if (reserveTransaction !== undefined) {
89
+ const reservationFor = reserveTransaction.object.reservationFor;
90
+ if (reservationFor === undefined) {
91
+ throw new factory.errors.NotFound('transaction.object.reservationFor');
92
+ }
93
+ // ReservationPackageに対応(2022-12-23~)
94
+ if (actionObject.typeOf === factory.reservationType.ReservationPackage) {
95
+ const subReservation = reserveTransaction.object.subReservation;
96
+ if (Array.isArray(subReservation) && subReservation.length > 0) {
97
+ yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
98
+ yield processUnlockSeat({
99
+ reservation: {
100
+ id: cancelingSubReservation.id,
101
+ reservedTicket: cancelingSubReservation.reservedTicket,
102
+ subReservation: cancelingSubReservation.subReservation,
103
+ reservationFor: {
104
+ id: String(reservationFor.id),
105
+ startDate: (reservationFor.typeOf === factory.eventType.ScreeningEvent)
106
+ ? reservationFor.startDate
107
+ : reservationFor.departureTime
108
+ }
109
+ },
110
+ // holder:取引番号に対応(2023-06-05~)
111
+ expectedHolder: (reserveTransaction.object.useHoldStockByTransactionNumber === true)
112
+ ? reserveTransaction.transactionNumber
113
+ : reserveTransactionId
114
+ })(repos);
115
+ yield processUnlockOfferRateLimit({
116
+ reservation: {
117
+ reservationNumber: reserveTransaction.object.reservationNumber,
118
+ reservedTicket: cancelingSubReservation.reservedTicket
119
+ },
120
+ reservationFor
121
+ })(repos);
122
+ })));
123
+ }
124
+ if (reserveTransaction.object.disablePendingReservations === true) {
125
+ // disablePendingReservationsの場合は処理不要(2023-06-05~)
50
126
  }
51
- // ReservationPackageに対応(2022-12-23~)
52
- if (actionObject.typeOf === factory.reservationType.ReservationPackage) {
53
- const subReservation = reserveTransaction.object.subReservation;
54
- if (Array.isArray(subReservation) && subReservation.length > 0) {
55
- yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
56
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
57
- // ...cancelingSubReservation,
58
- // reservationFor
59
- // };
60
- yield processUnlockSeat({
61
- reservation: {
62
- id: cancelingSubReservation.id,
63
- reservedTicket: cancelingSubReservation.reservedTicket,
64
- subReservation: cancelingSubReservation.subReservation,
65
- reservationFor: {
66
- id: String(reservationFor.id),
67
- startDate: (reservationFor.typeOf === factory.eventType.ScreeningEvent)
68
- ? reservationFor.startDate
69
- : reservationFor.departureTime
70
- }
71
- },
72
- expectedHolder: reserveTransactionId
73
- })(repos);
74
- yield processUnlockOfferRateLimit({
75
- reservation: {
76
- reservationNumber: cancelingSubReservation.reservationNumber,
77
- reservedTicket: cancelingSubReservation.reservedTicket
78
- },
79
- reservationFor
80
- })(repos);
81
- })));
82
- }
127
+ else {
83
128
  // 予約番号単位でキャンセル状態に変更する
84
129
  cancelResult = yield repos.reservation.cancelByReservationNumber({
85
130
  reservationNumber: actionObject.reservationNumber,
@@ -87,82 +132,41 @@ function cancelPendingReservation(actionAttributesList) {
87
132
  modifiedTime: now
88
133
  });
89
134
  }
90
- else {
91
- // 廃止(2022-12-27~)
92
- throw new factory.errors.NotImplemented(`object.typeOf '${actionObject.typeOf}' not implemented`);
93
- // const cancelingSubReservation = reserveTransaction.object.subReservation?.find((r) => {
94
- // return r.id === actionObject.id;
95
- // });
96
- // // 取消対象予約が取引に存在すれば、適宜unlock
97
- // if (cancelingSubReservation !== undefined) {
98
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
99
- // ...cancelingSubReservation,
100
- // reservationFor
101
- // };
102
- // await processUnlockSeat({
103
- // reservation: cancelingReservation,
104
- // expectedHolder: reserveTransactionId
105
- // })(repos);
106
- // await processUnlockOfferRateLimit({ reservation: cancelingReservation, reservationFor })(repos);
107
- // // 予約が存在すればキャンセル状態に変更する
108
- // const reservationCount = await repos.reservation.count({
109
- // typeOf: cancelingSubReservation.typeOf,
110
- // ids: [cancelingSubReservation.id]
111
- // });
112
- // if (reservationCount > 0) {
113
- // await repos.reservation.cancel<factory.reservationType.EventReservation>({
114
- // id: cancelingSubReservation.id,
115
- // previousReservationStatus: actionObject.reservationStatus,
116
- // modifiedTime: now
117
- // });
118
- // }
119
- // }
120
- }
121
- }
122
- }
123
- catch (error) {
124
- // actionにエラー結果を追加
125
- try {
126
- const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
127
- yield repos.action.giveUp({ typeOf: action.typeOf, id: action.id, error: actionError });
128
135
  }
129
- catch (__) {
130
- // 失敗したら仕方ない
136
+ else {
137
+ // 廃止(2022-12-27~)
138
+ throw new factory.errors.NotImplemented(`object.typeOf '${actionObject.typeOf}' not implemented`);
131
139
  }
132
- throw error;
133
140
  }
134
- // アクション完了
135
- const actionResult = Object.assign({}, (cancelResult !== undefined) ? {
136
- cancelResult: {
137
- // n: cancelResult.n,
138
- // nModified: cancelResult.nModified,
139
- // ok: cancelResult.ok,
140
- matchedCount: cancelResult.matchedCount,
141
- modifiedCount: cancelResult.modifiedCount
142
- }
143
- } : undefined
144
- // canceledReservationId: canceledReservation?.id
145
- );
146
- yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
147
- // await onReservationCanceledByAction(actionAttributes)({ task: repos.task });
148
- if (actionObject.typeOf === factory.reservationType.ReservationPackage) {
149
- // 最新のconfirmedReservationsを検索
150
- canceledReservations = yield repos.reservation.search({
151
- reservationNumber: { $eq: actionObject.reservationNumber },
152
- typeOf: factory.reservationType.EventReservation
153
- });
154
- canceledReservations = canceledReservations.map((r) => {
155
- // _idは不要であり、存在すると予期せぬ影響を及ぼす可能性がある
156
- delete r._id;
157
- return r;
158
- });
141
+ }
142
+ catch (error) {
143
+ // actionにエラー結果を追加
144
+ try {
145
+ const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
146
+ yield repos.action.giveUp({ typeOf: action.typeOf, id: action.id, error: actionError });
159
147
  }
160
- yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, false)({ task: repos.task });
161
- })));
148
+ catch (__) {
149
+ // 失敗したら仕方ない
150
+ }
151
+ throw error;
152
+ }
153
+ // アクション完了
154
+ const actionResult = Object.assign({}, (cancelResult !== undefined) ? {
155
+ cancelResult: {
156
+ // n: cancelResult.n,
157
+ // nModified: cancelResult.nModified,
158
+ // ok: cancelResult.ok,
159
+ matchedCount: cancelResult.matchedCount,
160
+ modifiedCount: cancelResult.modifiedCount
161
+ }
162
+ } : undefined
163
+ // canceledReservationId: canceledReservation?.id
164
+ );
165
+ yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
162
166
  }
167
+ return { reserveTransaction };
163
168
  });
164
169
  }
165
- exports.cancelPendingReservation = cancelPendingReservation;
166
170
  /**
167
171
  * 予約をキャンセルする
168
172
  */
@@ -175,6 +179,7 @@ function cancelReservation(actionAttributesList) {
175
179
  yield Promise.all(actionAttributesList.map((actionAttributes) => __awaiter(this, void 0, void 0, function* () {
176
180
  const action = yield repos.action.start(actionAttributes);
177
181
  let cancelResult;
182
+ let canceledReservationForId;
178
183
  try {
179
184
  if (actionAttributes.object.typeOf === factory.reservationType.ReservationPackage) {
180
185
  // 予約取引を検索
@@ -186,19 +191,16 @@ function cancelReservation(actionAttributesList) {
186
191
  });
187
192
  const reserveTransaction = reserveTransactions.shift();
188
193
  if (reserveTransaction === undefined) {
189
- throw new factory.errors.NotFound('ReserveTransaction');
194
+ throw new factory.errors.NotFound(factory.assetTransactionType.Reserve);
190
195
  }
191
196
  const reservationFor = reserveTransaction.object.reservationFor;
192
197
  if (reservationFor === undefined) {
193
198
  throw new factory.errors.NotFound('transaction.object.reservationFor');
194
199
  }
200
+ canceledReservationForId = String(reservationFor.id);
195
201
  const subReservation = reserveTransaction.object.subReservation;
196
202
  if (Array.isArray(subReservation) && subReservation.length > 0) {
197
203
  yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
198
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
199
- // ...cancelingSubReservation,
200
- // reservationFor
201
- // };
202
204
  yield processUnlockSeat({
203
205
  reservation: {
204
206
  id: cancelingSubReservation.id,
@@ -211,11 +213,14 @@ function cancelReservation(actionAttributesList) {
211
213
  : reservationFor.departureTime
212
214
  }
213
215
  },
214
- expectedHolder: reserveTransaction.id
216
+ // holder:取引番号に対応(2023-06-05~)
217
+ expectedHolder: (reserveTransaction.object.useHoldStockByTransactionNumber === true)
218
+ ? reserveTransaction.transactionNumber
219
+ : reserveTransaction.id
215
220
  })(repos);
216
221
  yield processUnlockOfferRateLimit({
217
222
  reservation: {
218
- reservationNumber: cancelingSubReservation.reservationNumber,
223
+ reservationNumber: reserveTransaction.object.reservationNumber,
219
224
  reservedTicket: cancelingSubReservation.reservedTicket
220
225
  },
221
226
  reservationFor
@@ -241,10 +246,11 @@ function cancelReservation(actionAttributesList) {
241
246
  object: { reservations: { id: { $in: [reservation.id] } } }
242
247
  });
243
248
  const reserveTransaction = reserveTransactions.shift();
244
- let expectedHolder;
245
- if (reserveTransaction !== undefined) {
246
- expectedHolder = reserveTransaction.id;
247
- }
249
+ canceledReservationForId = reservation.reservationFor.id;
250
+ // holder:取引番号に対応(2023-06-05~)
251
+ const expectedHolder = ((reserveTransaction === null || reserveTransaction === void 0 ? void 0 : reserveTransaction.object.useHoldStockByTransactionNumber) === true)
252
+ ? reserveTransaction.transactionNumber
253
+ : reserveTransaction === null || reserveTransaction === void 0 ? void 0 : reserveTransaction.id;
248
254
  if (typeof expectedHolder === 'string') {
249
255
  yield processUnlockSeat({
250
256
  reservation: {
@@ -297,7 +303,6 @@ function cancelReservation(actionAttributesList) {
297
303
  // canceledReservationId: canceledReservation?.id
298
304
  );
299
305
  yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
300
- // await onReservationCanceledByAction(actionAttributes)({ task: repos.task });
301
306
  let canceledReservations = [];
302
307
  if (actionAttributes.object.typeOf === factory.reservationType.ReservationPackage) {
303
308
  const reservationNumber = actionAttributes.object.reservationNumber;
@@ -320,7 +325,10 @@ function cancelReservation(actionAttributesList) {
320
325
  });
321
326
  canceledReservations = [canceledReservation];
322
327
  }
323
- yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, true)({ task: repos.task });
328
+ yield (0, onReservationCanceled_1.onReservationCanceled)(canceledReservations, true, {
329
+ project: { id: actionAttributes.project.id },
330
+ id: canceledReservationForId
331
+ })({ task: repos.task });
324
332
  })));
325
333
  }
326
334
  });
@@ -1,9 +1,8 @@
1
- /**
2
- * 予約サービス
3
- */
1
+ import { MongoRepository as ActionRepo } from '../../repo/action';
2
+ import { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
4
3
  import { MongoRepository as ReservationRepo } from '../../repo/reservation';
5
4
  import { MongoRepository as TaskRepo } from '../../repo/task';
6
- export declare function checkInRerservation(params: {
5
+ interface ICheckInReservationParams {
7
6
  project: {
8
7
  id: string;
9
8
  };
@@ -23,7 +22,13 @@ export declare function checkInRerservation(params: {
23
22
  ids?: string[];
24
23
  };
25
24
  };
25
+ }
26
+ export declare function checkInReservation(params: ICheckInReservationParams & {
27
+ reserveIfNotYet: boolean;
26
28
  }): (repos: {
29
+ action: ActionRepo;
30
+ assetTransaction: AssetTransactionRepo;
27
31
  reservation: ReservationRepo;
28
32
  task: TaskRepo;
29
33
  }) => Promise<void>;
34
+ export {};
@@ -9,18 +9,43 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.checkInRerservation = void 0;
12
+ exports.checkInReservation = void 0;
13
+ const createDebug = require("debug");
14
+ const factory = require("../../factory");
15
+ const confirmReservation_1 = require("./confirmReservation");
13
16
  const onReservationCheckedIn_1 = require("./potentialActions/onReservationCheckedIn");
14
- function checkInRerservation(params) {
17
+ const debug = createDebug('chevre-domain:service:reserve:checkInReservation');
18
+ function checkInReservation(params) {
15
19
  return (repos) => __awaiter(this, void 0, void 0, function* () {
16
20
  const now = new Date();
21
+ // confirmReservationが間に合わない可能性を考慮する(2023-06-01~)
22
+ debug('reserveIfNotYet?', params.reserveIfNotYet, 'ids:', params.object.ids, 'reservationNumbers:', params.object.reservationNumbers);
23
+ if (params.reserveIfNotYet === true) {
24
+ yield reserveIfNotYet(params)(repos);
25
+ }
17
26
  // 発券処理(Array対応)
18
27
  let checkedInReservationIds;
19
28
  if (Array.isArray(params.object.ids) && params.object.ids.length > 0) {
29
+ const existingReservationCount = yield repos.reservation.count({
30
+ id: { $in: params.object.ids },
31
+ typeOf: factory.reservationType.EventReservation
32
+ });
33
+ if (existingReservationCount !== params.object.ids.length) {
34
+ throw new factory.errors.NotFound(factory.reservationType.EventReservation, `Some reservations dot not exist. ${params.object.ids.join(',')}`);
35
+ }
20
36
  yield repos.reservation.checkInIfNot({ id: { $in: params.object.ids }, now });
21
37
  checkedInReservationIds = params.object.ids;
22
38
  }
23
39
  if (Array.isArray(params.object.reservationNumbers) && params.object.reservationNumbers.length > 0) {
40
+ for (const reservationNumber of params.object.reservationNumbers) {
41
+ const existingReservationCount = yield repos.reservation.count({
42
+ reservationNumber: { $eq: reservationNumber },
43
+ typeOf: factory.reservationType.EventReservation
44
+ });
45
+ if (existingReservationCount === 0) {
46
+ throw new factory.errors.NotFound(factory.reservationType.EventReservation, `Some reservations dot not exist. ${params.object.reservationNumbers.join(',')}`);
47
+ }
48
+ }
24
49
  yield repos.reservation.checkInIfNot({ reservationNumber: { $in: params.object.reservationNumbers }, now });
25
50
  // 予約番号リストを予約IDリストに変換
26
51
  checkedInReservationIds = yield repos.reservation.searchIdsByReservationNumber({
@@ -37,4 +62,53 @@ function checkInRerservation(params) {
37
62
  })({ task: repos.task });
38
63
  });
39
64
  }
40
- exports.checkInRerservation = checkInRerservation;
65
+ exports.checkInReservation = checkInReservation;
66
+ function reserveIfNotYet(params) {
67
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
68
+ let reserveTransactions = [];
69
+ if (Array.isArray(params.object.ids) && params.object.ids.length > 0) {
70
+ reserveTransactions = yield repos.assetTransaction.search({
71
+ typeOf: factory.assetTransactionType.Reserve,
72
+ object: {
73
+ reservations: { id: { $in: params.object.ids } }
74
+ },
75
+ statuses: [factory.transactionStatusType.Confirmed]
76
+ }, ['_id', 'transactionNumber', 'object', 'project', 'typeOf']);
77
+ debug(reserveTransactions.length, 'reserveTransactions found in reserveIfNotYet. ids:', params.object.ids);
78
+ }
79
+ if (Array.isArray(params.object.reservationNumbers) && params.object.reservationNumbers.length > 0) {
80
+ reserveTransactions = yield repos.assetTransaction.search({
81
+ typeOf: factory.assetTransactionType.Reserve,
82
+ object: {
83
+ reservationNumber: { $in: params.object.reservationNumbers }
84
+ },
85
+ statuses: [factory.transactionStatusType.Confirmed]
86
+ }, ['_id', 'transactionNumber', 'object', 'project', 'typeOf']);
87
+ debug(reserveTransactions.length, 'reserveTransactions found in reserveIfNotYet. reservationNumbers:', params.object.reservationNumbers);
88
+ }
89
+ yield Promise.all(reserveTransactions.map((reserveTransaction) => __awaiter(this, void 0, void 0, function* () {
90
+ var _a;
91
+ if (typeof ((_a = reserveTransaction.object.reservationFor) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') {
92
+ yield (0, confirmReservation_1.confirmReservation)({
93
+ actionAttributesList: [{
94
+ project: reserveTransaction.project,
95
+ typeOf: factory.actionType.ReserveAction,
96
+ object: {
97
+ typeOf: reserveTransaction.object.typeOf,
98
+ reservationNumber: reserveTransaction.object.reservationNumber,
99
+ reservationStatus: (typeof reserveTransaction.object.reservationStatus === 'string')
100
+ ? reserveTransaction.object.reservationStatus
101
+ : factory.reservationStatusType.ReservationPending,
102
+ reservationFor: reserveTransaction.object.reservationFor
103
+ },
104
+ agent: reserveTransaction.project,
105
+ purpose: { typeOf: reserveTransaction.typeOf, id: reserveTransaction.id }
106
+ }],
107
+ useOnReservationConfirmed: false,
108
+ byTask: false
109
+ })(repos);
110
+ debug('confirmReservation processed in reserveIfNotYet. reservationNumber:', reserveTransaction.object.reservationNumber);
111
+ }
112
+ })));
113
+ });
114
+ }
@@ -1,15 +1,18 @@
1
- /**
2
- * 予約サービス
3
- */
4
1
  import * as factory from '../../factory';
5
2
  import { MongoRepository as ActionRepo } from '../../repo/action';
3
+ import { MongoRepository as AssetTrasactionRepo } from '../../repo/assetTransaction';
6
4
  import { MongoRepository as ReservationRepo } from '../../repo/reservation';
7
5
  import { MongoRepository as TaskRepo } from '../../repo/task';
8
6
  /**
9
7
  * 予約を確定する
10
8
  */
11
- export declare function confirmReservation(actionAttributesList: factory.action.reserve.IAttributes[]): (repos: {
9
+ export declare function confirmReservation(params: {
10
+ actionAttributesList: factory.action.reserve.IAttributes[];
11
+ useOnReservationConfirmed: boolean;
12
+ byTask: boolean;
13
+ }): (repos: {
12
14
  action: ActionRepo;
15
+ assetTransaction: AssetTrasactionRepo;
13
16
  reservation: ReservationRepo;
14
17
  task: TaskRepo;
15
18
  }) => Promise<void>;