@chevre/domain 21.2.0-alpha.10 → 21.2.0-alpha.101
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.
- package/example/src/chevre/aggregation/aggregateSystem.ts +58 -31
- package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
- package/example/src/chevre/deleteTasksByName.ts +10 -2
- package/example/src/chevre/importEventsFromCOA.ts +3 -4
- package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
- package/example/src/chevre/processPay.ts +5 -1
- package/example/src/chevre/processReserve.ts +4 -1
- package/example/src/chevre/saveTasks.ts +13 -10
- package/example/src/chevre/searchAbortedTasks.ts +36 -0
- package/example/src/chevre/searchActions.ts +33 -0
- package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
- package/example/src/chevre/searchSendEmailActions.ts +44 -0
- package/example/src/chevre/task/executeTasks.ts +26 -0
- package/example/src/chevre/transaction/findCreditCard.ts +1 -1
- package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
- package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
- package/example/src/chevre/transaction/startExportTasks.ts +20 -0
- package/example/src/chevre/updateTransaction.ts +1 -1
- package/example/src/playOnMoment.ts +24 -0
- package/lib/chevre/credentials.d.ts +1 -0
- package/lib/chevre/credentials.js +2 -1
- package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
- package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
- package/lib/chevre/eventEmitter/task.d.ts +18 -0
- package/lib/chevre/eventEmitter/task.js +25 -0
- package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
- package/lib/chevre/eventEmitter/transaction.js +25 -0
- package/lib/chevre/eventEmitter.d.ts +4 -0
- package/lib/chevre/eventEmitter.js +9 -0
- package/lib/chevre/index.d.ts +3 -2
- package/lib/chevre/index.js +5 -3
- package/lib/chevre/repo/account.js +3 -2
- package/lib/chevre/repo/accountTransaction.d.ts +3 -11
- package/lib/chevre/repo/accountTransaction.js +3 -55
- package/lib/chevre/repo/action.d.ts +29 -1
- package/lib/chevre/repo/action.js +100 -56
- package/lib/chevre/repo/additionalProperty.js +2 -1
- package/lib/chevre/repo/assetTransaction.d.ts +25 -9
- package/lib/chevre/repo/assetTransaction.js +259 -87
- package/lib/chevre/repo/categoryCode.js +3 -2
- package/lib/chevre/repo/code.js +3 -2
- package/lib/chevre/repo/comment.d.ts +4 -1
- package/lib/chevre/repo/comment.js +22 -6
- package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
- package/lib/chevre/repo/confirmationNumber.js +3 -15
- package/lib/chevre/repo/creativeWork.d.ts +1 -3
- package/lib/chevre/repo/creativeWork.js +3 -2
- package/lib/chevre/repo/customer.js +2 -1
- package/lib/chevre/repo/emailMessage.d.ts +1 -27
- package/lib/chevre/repo/emailMessage.js +2 -1
- package/lib/chevre/repo/event.d.ts +5 -1
- package/lib/chevre/repo/event.js +4 -3
- package/lib/chevre/repo/member.js +4 -3
- package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
- package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
- package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
- package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
- package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
- package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
- package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
- package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
- package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
- package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
- package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
- package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +49 -3
- package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
- package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
- package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
- package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
- package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
- package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
- package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
- package/lib/chevre/repo/offer.js +3 -2
- package/lib/chevre/repo/offerCatalog.js +0 -27
- package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
- package/lib/chevre/repo/offerItemCondition.js +121 -0
- package/lib/chevre/repo/order.d.ts +55 -3
- package/lib/chevre/repo/order.js +62 -10
- package/lib/chevre/repo/ownershipInfo.js +2 -7
- package/lib/chevre/repo/place.js +3 -2
- package/lib/chevre/repo/priceSpecification.js +3 -2
- package/lib/chevre/repo/product.js +2 -1
- package/lib/chevre/repo/project.js +2 -1
- package/lib/chevre/repo/reservation.d.ts +12 -4
- package/lib/chevre/repo/reservation.js +20 -59
- package/lib/chevre/repo/role.js +3 -2
- package/lib/chevre/repo/seller.js +22 -21
- package/lib/chevre/repo/serviceOutput.js +2 -1
- package/lib/chevre/repo/task.d.ts +42 -2
- package/lib/chevre/repo/task.js +93 -11
- package/lib/chevre/repo/transaction.d.ts +23 -3
- package/lib/chevre/repo/transaction.js +177 -56
- package/lib/chevre/repo/trip.js +2 -1
- package/lib/chevre/repository.d.ts +5 -2
- package/lib/chevre/repository.js +8 -4
- package/lib/chevre/service/aggregation/system.d.ts +67 -22
- package/lib/chevre/service/aggregation/system.js +101 -89
- package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -23
- package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
- package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
- package/lib/chevre/service/assetTransaction/pay.js +18 -32
- package/lib/chevre/service/assetTransaction/refund.js +1 -23
- package/lib/chevre/service/assetTransaction/registerService.js +1 -25
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
- package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
- package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
- package/lib/chevre/service/assetTransaction/reserve.js +85 -69
- package/lib/chevre/service/assetTransaction.d.ts +6 -2
- package/lib/chevre/service/assetTransaction.js +9 -5
- package/lib/chevre/service/event.js +3 -1
- package/lib/chevre/service/notification/factory.js +2 -2
- package/lib/chevre/service/notification.d.ts +3 -1
- package/lib/chevre/service/notification.js +41 -7
- package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
- package/lib/chevre/service/offer/event/authorize.js +8 -2
- package/lib/chevre/service/offer/event/factory.d.ts +3 -0
- package/lib/chevre/service/offer/event/factory.js +16 -5
- package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
- package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
- package/lib/chevre/service/offer.d.ts +12 -7
- package/lib/chevre/service/offer.js +57 -2
- package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
- package/lib/chevre/service/order/deleteOrder.js +8 -8
- package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
- package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
- package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
- package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
- package/lib/chevre/service/order/onOrderUpdated.js +22 -0
- package/lib/chevre/service/order/placeOrder.d.ts +1 -0
- package/lib/chevre/service/order/placeOrder.js +41 -24
- package/lib/chevre/service/order/returnOrder.d.ts +1 -0
- package/lib/chevre/service/order/returnOrder.js +7 -12
- package/lib/chevre/service/order/sendOrder.d.ts +1 -0
- package/lib/chevre/service/order/sendOrder.js +7 -10
- package/lib/chevre/service/order.d.ts +2 -1
- package/lib/chevre/service/order.js +3 -1
- package/lib/chevre/service/payment/any/onPaid.js +1 -1
- package/lib/chevre/service/payment/any/onRefund.js +1 -1
- package/lib/chevre/service/payment/any.d.ts +9 -5
- package/lib/chevre/service/payment/any.js +80 -18
- package/lib/chevre/service/payment/creditCard.d.ts +1 -1
- package/lib/chevre/service/payment/creditCard.js +21 -15
- package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +7 -6
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
- package/lib/chevre/service/payment/movieTicket/validation.js +54 -31
- package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
- package/lib/chevre/service/payment/movieTicket.js +5 -4
- package/lib/chevre/service/product.js +1 -5
- package/lib/chevre/service/report/telemetry.d.ts +0 -11
- package/lib/chevre/service/report/telemetry.js +21 -24
- package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
- package/lib/chevre/service/reserve/cancelReservation.js +147 -139
- package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
- package/lib/chevre/service/reserve/checkInReservation.js +77 -3
- package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
- package/lib/chevre/service/reserve/confirmReservation.js +125 -58
- package/lib/chevre/service/reserve/factory.d.ts +1 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
- package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
- package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
- package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
- package/lib/chevre/service/reserve/useReservation.js +61 -71
- package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
- package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
- package/lib/chevre/service/reserve.d.ts +3 -2
- package/lib/chevre/service/reserve.js +4 -2
- package/lib/chevre/service/task/cancelPendingReservation.js +5 -1
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
- package/lib/chevre/service/task/deleteTransaction.js +10 -8
- package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
- package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
- package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
- package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
- package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
- package/lib/chevre/service/task/placeOrder.js +1 -1
- package/lib/chevre/service/task/reserve.js +10 -7
- package/lib/chevre/service/task/returnOrder.js +1 -1
- package/lib/chevre/service/task/returnPayTransaction.js +2 -12
- package/lib/chevre/service/task/sendOrder.js +1 -1
- package/lib/chevre/service/task/useReservation.d.ts +7 -0
- package/lib/chevre/service/task/useReservation.js +36 -0
- package/lib/chevre/service/task/voidReserveTransaction.js +3 -1
- package/lib/chevre/service/task.d.ts +9 -0
- package/lib/chevre/service/task.js +43 -4
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
- package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
- package/lib/chevre/service/transaction/moneyTransfer.js +9 -12
- package/lib/chevre/service/transaction/orderProgramMembership.js +6 -2
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
- package/lib/chevre/service/transaction/placeOrder.js +1 -5
- package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
- package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
- package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
- package/lib/chevre/service/transaction/placeOrderInProgress.js +22 -11
- package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
- package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
- package/lib/chevre/service/transaction/returnOrder.js +225 -35
- package/lib/chevre/service/transaction.d.ts +8 -13
- package/lib/chevre/service/transaction.js +12 -145
- package/lib/chevre/settings.d.ts +8 -1
- package/lib/chevre/settings.js +35 -6
- package/package.json +5 -5
- package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
- package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
- package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
- package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
- package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
|
@@ -247,17 +247,12 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
|
|
|
247
247
|
const maxRequiredTimeInMilliseconds = requiredTimesConfirmed.reduce((a, b) => Math.max(a, b), 0);
|
|
248
248
|
const minRequiredTimeInMilliseconds = requiredTimesConfirmed.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? requiredTimesConfirmed[0] : 0);
|
|
249
249
|
const averageRequiredTimeInMilliseconds = (numberOfTransactionsConfirmed > 0) ? totalRequiredTimeInMilliseconds / numberOfTransactionsConfirmed : 0;
|
|
250
|
-
//
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
});
|
|
257
|
-
const totalTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => a + b, 0);
|
|
258
|
-
const maxTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.max(a, b), 0);
|
|
259
|
-
const minTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? timesLeftUntilEvent[0] : 0);
|
|
260
|
-
const averageTimeLeftUntilEventInMilliseconds = (numberOfTransactionsConfirmed > 0) ? totalTimeLeftUntilEventInMilliseconds / numberOfTransactionsConfirmed : 0;
|
|
250
|
+
// const totalTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => a + b, 0);
|
|
251
|
+
// const maxTimeLeftUntilEventInMilliseconds = timesLeftUntilEvent.reduce((a, b) => Math.max(a, b), 0);
|
|
252
|
+
// const minTimeLeftUntilEventInMilliseconds =
|
|
253
|
+
// timesLeftUntilEvent.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? timesLeftUntilEvent[0] : 0);
|
|
254
|
+
// const averageTimeLeftUntilEventInMilliseconds =
|
|
255
|
+
// (numberOfTransactionsConfirmed > 0) ? totalTimeLeftUntilEventInMilliseconds / numberOfTransactionsConfirmed : 0;
|
|
261
256
|
// 金額算出
|
|
262
257
|
const amounts = confirmedTransactions.map((transaction) => transaction.result.order.price);
|
|
263
258
|
const totalAmount = amounts.reduce((a, b) => a + b, 0);
|
|
@@ -265,11 +260,13 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
|
|
|
265
260
|
const minAmount = amounts.reduce((a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? amounts[0] : 0);
|
|
266
261
|
const averageAmount = (numberOfTransactionsConfirmed > 0) ? totalAmount / numberOfTransactionsConfirmed : 0;
|
|
267
262
|
// アクション数集計
|
|
268
|
-
const numbersOfActions = confirmedTransactions.map((t) => t.object.authorizeActions.length);
|
|
269
|
-
const totalNumberOfActions = numbersOfActions.reduce((a, b) => a + b, 0);
|
|
270
|
-
const maxNumberOfActions = numbersOfActions.reduce((a, b) => Math.max(a, b), 0);
|
|
271
|
-
const minNumberOfActions = numbersOfActions.reduce(
|
|
272
|
-
|
|
263
|
+
// const numbersOfActions = confirmedTransactions.map((t) => t.object.authorizeActions.length);
|
|
264
|
+
// const totalNumberOfActions = numbersOfActions.reduce((a, b) => a + b, 0);
|
|
265
|
+
// const maxNumberOfActions = numbersOfActions.reduce((a, b) => Math.max(a, b), 0);
|
|
266
|
+
// const minNumberOfActions = numbersOfActions.reduce(
|
|
267
|
+
// (a, b) => Math.min(a, b), (numberOfTransactionsConfirmed > 0) ? numbersOfActions[0] : 0
|
|
268
|
+
// );
|
|
269
|
+
// const averageNumberOfActions = (numberOfTransactionsConfirmed > 0) ? totalNumberOfActions / numberOfTransactionsConfirmed : 0;
|
|
273
270
|
// 期限切れ取引数
|
|
274
271
|
const numberOfTransactionsExpired = expiredTransactions.length;
|
|
275
272
|
const expiredTransactionIds = expiredTransactions.map((transaction) => transaction.id);
|
|
@@ -284,18 +281,18 @@ function createSellerFlowTransactionResult(measuredFrom, measuredThrough, seller
|
|
|
284
281
|
maxRequiredTimeInMilliseconds: maxRequiredTimeInMilliseconds,
|
|
285
282
|
minRequiredTimeInMilliseconds: minRequiredTimeInMilliseconds,
|
|
286
283
|
averageRequiredTimeInMilliseconds: parseFloat(averageRequiredTimeInMilliseconds.toFixed(1)),
|
|
287
|
-
totalTimeLeftUntilEventInMilliseconds: totalTimeLeftUntilEventInMilliseconds,
|
|
288
|
-
maxTimeLeftUntilEventInMilliseconds: maxTimeLeftUntilEventInMilliseconds,
|
|
289
|
-
minTimeLeftUntilEventInMilliseconds: minTimeLeftUntilEventInMilliseconds,
|
|
290
|
-
averageTimeLeftUntilEventInMilliseconds: averageTimeLeftUntilEventInMilliseconds,
|
|
284
|
+
// totalTimeLeftUntilEventInMilliseconds: totalTimeLeftUntilEventInMilliseconds,
|
|
285
|
+
// maxTimeLeftUntilEventInMilliseconds: maxTimeLeftUntilEventInMilliseconds,
|
|
286
|
+
// minTimeLeftUntilEventInMilliseconds: minTimeLeftUntilEventInMilliseconds,
|
|
287
|
+
// averageTimeLeftUntilEventInMilliseconds: averageTimeLeftUntilEventInMilliseconds,
|
|
291
288
|
totalAmount: totalAmount,
|
|
292
289
|
maxAmount: maxAmount,
|
|
293
290
|
minAmount: minAmount,
|
|
294
291
|
averageAmount: parseFloat(averageAmount.toFixed(1)),
|
|
295
|
-
totalNumberOfActionsOnConfirmed: totalNumberOfActions,
|
|
296
|
-
maxNumberOfActionsOnConfirmed: maxNumberOfActions,
|
|
297
|
-
minNumberOfActionsOnConfirmed: minNumberOfActions,
|
|
298
|
-
averageNumberOfActionsOnConfirmed: parseFloat(averageNumberOfActions.toFixed(1)),
|
|
292
|
+
// totalNumberOfActionsOnConfirmed: totalNumberOfActions,
|
|
293
|
+
// maxNumberOfActionsOnConfirmed: maxNumberOfActions,
|
|
294
|
+
// minNumberOfActionsOnConfirmed: minNumberOfActions,
|
|
295
|
+
// averageNumberOfActionsOnConfirmed: parseFloat(averageNumberOfActions.toFixed(1)),
|
|
299
296
|
// tslint:disable-next-line:no-suspicious-comment
|
|
300
297
|
totalNumberOfOrderItems: 0,
|
|
301
298
|
// tslint:disable-next-line:no-suspicious-comment
|
|
@@ -5,11 +5,10 @@ import { RedisRepository as OfferRateLimitRepo } from '../../repo/rateLimit/offe
|
|
|
5
5
|
import { MongoRepository as ReservationRepo } from '../../repo/reservation';
|
|
6
6
|
import { StockHolderRepository as StockHolderRepo } from '../../repo/stockHolder';
|
|
7
7
|
import { MongoRepository as TaskRepo } from '../../repo/task';
|
|
8
|
-
type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
|
|
9
8
|
/**
|
|
10
9
|
* 進行中の予約をキャンセルする
|
|
11
10
|
*/
|
|
12
|
-
declare function cancelPendingReservation(
|
|
11
|
+
declare function cancelPendingReservation(actionAttributes: factory.action.cancel.reservation.IAttributes): (repos: {
|
|
13
12
|
action: ActionRepo;
|
|
14
13
|
assetTransaction: AssetTransactionRepo;
|
|
15
14
|
stockHolder: StockHolderRepo;
|
|
@@ -29,7 +28,10 @@ declare function cancelReservation(actionAttributesList: factory.action.cancel.r
|
|
|
29
28
|
assetTransaction: AssetTransactionRepo;
|
|
30
29
|
}) => Promise<void>;
|
|
31
30
|
declare function processUnlockOfferRateLimit(params: {
|
|
32
|
-
reservation:
|
|
31
|
+
reservation: {
|
|
32
|
+
reservationNumber: string;
|
|
33
|
+
reservedTicket: factory.assetTransaction.reserve.IObjectSubReservationReservedTicket;
|
|
34
|
+
};
|
|
33
35
|
reservationFor: factory.assetTransaction.reserve.IReservationFor;
|
|
34
36
|
}): (repos: {
|
|
35
37
|
offerRateLimit: OfferRateLimitRepo;
|
|
@@ -19,67 +19,112 @@ const onReservationCanceled_1 = require("./potentialActions/onReservationCancele
|
|
|
19
19
|
/**
|
|
20
20
|
* 進行中の予約をキャンセルする
|
|
21
21
|
*/
|
|
22
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
//
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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(
|
|
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>;
|