@chevre/domain 21.2.0-alpha.16 → 21.2.0-alpha.161
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/aggregateEventReservation.ts +1 -1
- package/example/src/chevre/aggregateSellerPaymentAccepted.ts +27 -0
- package/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
- package/example/src/chevre/countDelayedTasks.ts +7 -2
- package/example/src/chevre/createManyEventsIfNotExist.ts +199 -46
- package/example/src/chevre/deleteTasksByName.ts +10 -2
- package/example/src/chevre/findScreeningRoomsByBranchCode.ts +4 -3
- package/example/src/chevre/giveUpStartDatePassedCertainPeriod.ts +56 -0
- package/example/src/chevre/importEventsFromCOA.ts +3 -4
- package/example/src/chevre/lockStockHolder.ts +5 -2
- package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
- package/example/src/chevre/processPay.ts +5 -1
- package/example/src/chevre/processRegisterMembership.ts +8 -4
- package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
- package/example/src/chevre/processReserve.ts +5 -2
- package/example/src/chevre/saveTasks.ts +13 -10
- package/example/src/chevre/searchAbortedTasks.ts +34 -0
- package/example/src/chevre/searchActions.ts +33 -0
- package/example/src/chevre/searchEventSeats.ts +5 -2
- package/example/src/chevre/searchHoldReservations.ts +38 -0
- package/example/src/chevre/searchPermissions.ts +54 -0
- package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
- package/example/src/chevre/searchScreeningRooms.ts +35 -0
- package/example/src/chevre/searchSendEmailActions.ts +44 -0
- package/example/src/chevre/sendEmailMessage.ts +1 -2
- package/example/src/chevre/syncScreeningRooms.ts +22 -0
- package/example/src/chevre/syncScreeningRoomsAll.ts +44 -0
- package/example/src/chevre/task/executeTasks.ts +26 -0
- package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
- package/example/src/chevre/transaction/startExportTasks.ts +2 -1
- package/example/src/chevre/unsetContainsInPlaceFromMovieTheater.ts +41 -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 +2 -1
- package/lib/chevre/eventEmitter/task.js +1 -4
- package/lib/chevre/eventEmitter/transaction.d.ts +1 -1
- package/lib/chevre/eventEmitter/transaction.js +1 -4
- package/lib/chevre/eventEmitter.d.ts +2 -1
- package/lib/chevre/eventEmitter.js +3 -1
- package/lib/chevre/factory/order.d.ts +4 -1
- package/lib/chevre/factory/order.js +19 -6
- package/lib/chevre/repo/account.js +3 -2
- package/lib/chevre/repo/accountTransaction.d.ts +3 -1
- package/lib/chevre/repo/accountTransaction.js +3 -2
- package/lib/chevre/repo/accountingReport.d.ts +1 -3
- package/lib/chevre/repo/action.d.ts +79 -2
- package/lib/chevre/repo/action.js +151 -57
- package/lib/chevre/repo/additionalProperty.js +2 -1
- package/lib/chevre/repo/aggregation.d.ts +3 -0
- package/lib/chevre/repo/aggregation.js +3 -0
- package/lib/chevre/repo/assetTransaction.d.ts +23 -8
- package/lib/chevre/repo/assetTransaction.js +253 -80
- package/lib/chevre/repo/categoryCode.d.ts +1 -1
- package/lib/chevre/repo/categoryCode.js +37 -25
- 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 -1
- package/lib/chevre/repo/creativeWork.js +35 -12
- package/lib/chevre/repo/customer.js +2 -1
- package/lib/chevre/repo/emailMessage.js +2 -1
- package/lib/chevre/repo/event.d.ts +30 -2
- package/lib/chevre/repo/event.js +87 -36
- package/lib/chevre/repo/member.d.ts +14 -0
- package/lib/chevre/repo/member.js +31 -3
- package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/action.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +9 -6
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
- package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/comments.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/event.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
- package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +9 -9
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +3 -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 +21 -21
- package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -0
- package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
- package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +3 -3
- package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +15 -15
- package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +3 -0
- package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +9 -6
- package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
- 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 +30 -3
- package/lib/chevre/repo/order.js +57 -10
- package/lib/chevre/repo/ownershipInfo.js +2 -7
- package/lib/chevre/repo/paymentServiceProvider.d.ts +65 -0
- package/lib/chevre/repo/paymentServiceProvider.js +156 -0
- package/lib/chevre/repo/place.d.ts +203 -27
- package/lib/chevre/repo/place.js +1726 -694
- package/lib/chevre/repo/priceSpecification.js +3 -2
- package/lib/chevre/repo/product.d.ts +5 -3
- package/lib/chevre/repo/product.js +92 -5
- package/lib/chevre/repo/project.js +2 -1
- package/lib/chevre/repo/reservation.d.ts +20 -4
- package/lib/chevre/repo/reservation.js +40 -59
- package/lib/chevre/repo/role.d.ts +7 -0
- package/lib/chevre/repo/role.js +39 -2
- package/lib/chevre/repo/seller.d.ts +21 -1
- package/lib/chevre/repo/seller.js +78 -23
- package/lib/chevre/repo/serviceOutput.js +2 -1
- package/lib/chevre/repo/stockHolder.d.ts +143 -7
- package/lib/chevre/repo/stockHolder.js +622 -104
- package/lib/chevre/repo/task.d.ts +50 -2
- package/lib/chevre/repo/task.js +79 -19
- package/lib/chevre/repo/transaction.d.ts +21 -2
- package/lib/chevre/repo/transaction.js +160 -48
- package/lib/chevre/repo/trip.js +2 -1
- package/lib/chevre/repository.d.ts +11 -2
- package/lib/chevre/repository.js +15 -4
- package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +18 -8
- package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
- package/lib/chevre/service/aggregation/system.d.ts +110 -23
- package/lib/chevre/service/aggregation/system.js +213 -91
- package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
- package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
- 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 +20 -34
- package/lib/chevre/service/assetTransaction/refund.js +2 -24
- 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 +93 -70
- package/lib/chevre/service/assetTransaction.d.ts +6 -0
- package/lib/chevre/service/assetTransaction.js +9 -4
- package/lib/chevre/service/event.d.ts +3 -0
- package/lib/chevre/service/event.js +55 -22
- package/lib/chevre/service/iam.d.ts +6 -2
- package/lib/chevre/service/iam.js +23 -9
- 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 +36 -16
- package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
- 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/eventServiceByCOA/factory.js +15 -8
- package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
- package/lib/chevre/service/offer/product/factory.js +13 -6
- package/lib/chevre/service/offer/product.js +2 -2
- package/lib/chevre/service/offer.d.ts +16 -8
- package/lib/chevre/service/offer.js +72 -9
- package/lib/chevre/service/order/createAccountingReportIfNotExist.js +31 -17
- 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 +3 -5
- 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 +45 -28
- package/lib/chevre/service/order/returnOrder.d.ts +1 -0
- package/lib/chevre/service/order/returnOrder.js +8 -13
- package/lib/chevre/service/order/sendOrder.d.ts +1 -0
- package/lib/chevre/service/order/sendOrder.js +10 -13
- 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/onPaymentStatusChanged.js +4 -6
- package/lib/chevre/service/payment/any/onRefund.js +47 -43
- 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 +23 -17
- package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
- package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
- package/lib/chevre/service/payment/movieTicket/validation.js +65 -37
- package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
- package/lib/chevre/service/payment/movieTicket.js +7 -6
- 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 +162 -142
- 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 +133 -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/aggregateScreeningEvent.js +1 -1
- package/lib/chevre/service/task/cancelPendingReservation.js +6 -2
- package/lib/chevre/service/task/cancelReservation.js +1 -1
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
- package/lib/chevre/service/task/deleteTransaction.js +12 -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/onResourceUpdated.d.ts +7 -0
- package/lib/chevre/service/task/onResourceUpdated.js +396 -0
- 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/syncScreeningRooms.d.ts +7 -0
- package/lib/chevre/service/task/syncScreeningRooms.js +24 -0
- 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 +4 -2
- package/lib/chevre/service/task.d.ts +6 -0
- package/lib/chevre/service/task.js +22 -4
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +23 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +360 -0
- package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +12 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -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 +10 -13
- package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +43 -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/givePointAward.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.js +4 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +3 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +15 -15
- 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 +28 -15
- package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +11 -1
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +2 -2
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +30 -22
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +2 -2
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -3
- package/lib/chevre/service/transaction/returnOrder/potentialActions.js +1 -1
- package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
- package/lib/chevre/service/transaction/returnOrder.js +228 -36
- package/lib/chevre/service/transaction.d.ts +7 -13
- package/lib/chevre/service/transaction.js +12 -139
- package/lib/chevre/settings.d.ts +15 -2
- package/lib/chevre/settings.js +58 -7
- package/package.json +3 -3
- package/example/src/chevre/eventCatalog2eventService.ts +0 -123
- package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
- package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
- 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
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as factory from '../factory';
|
|
2
2
|
import { MongoRepository as ActionRepo } from '../repo/action';
|
|
3
3
|
import { MongoRepository as ProjectRepo } from '../repo/project';
|
|
4
|
-
export type Operation<T> = (
|
|
4
|
+
export type Operation<T> = (repos: {
|
|
5
|
+
accessToken: string;
|
|
6
|
+
}) => Promise<T>;
|
|
5
7
|
/**
|
|
6
8
|
* Eメールメッセージを送信する
|
|
7
9
|
* https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html
|
|
@@ -111,15 +111,11 @@ exports.sendEmailMessage = sendEmailMessage;
|
|
|
111
111
|
* https://notify-bot.line.me/doc/ja/
|
|
112
112
|
*/
|
|
113
113
|
function report2developers(subject, content, imageThumbnail, imageFullsize) {
|
|
114
|
-
return () => __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
115
115
|
const LINE_NOTIFY_URL = credentials_1.credentials.lineNotify.url;
|
|
116
|
-
const LINE_NOTIFY_ACCESS_TOKEN = credentials_1.credentials.lineNotify.accessToken;
|
|
117
116
|
if (LINE_NOTIFY_URL === undefined) {
|
|
118
117
|
throw new Error('Environment variable LINE_NOTIFY_URL not set');
|
|
119
118
|
}
|
|
120
|
-
if (LINE_NOTIFY_ACCESS_TOKEN === undefined) {
|
|
121
|
-
throw new Error('Environment variable LINE_NOTIFY_ACCESS_TOKEN not set');
|
|
122
|
-
}
|
|
123
119
|
const message = `--------
|
|
124
120
|
${subject}
|
|
125
121
|
--------
|
|
@@ -130,7 +126,7 @@ ${content}`;
|
|
|
130
126
|
var _a;
|
|
131
127
|
request.post({
|
|
132
128
|
url: LINE_NOTIFY_URL,
|
|
133
|
-
auth: { bearer:
|
|
129
|
+
auth: { bearer: repos.accessToken },
|
|
134
130
|
form: formData,
|
|
135
131
|
json: true,
|
|
136
132
|
timeout: (_a = settings_1.settings.webhook) === null || _a === void 0 ? void 0 : _a.timeout
|
|
@@ -154,6 +150,45 @@ ${content}`;
|
|
|
154
150
|
exports.report2developers = report2developers;
|
|
155
151
|
const USERNAME_ARGUMENT_REQUIRED_MESSAGE = 'Missing required key \'Username\' in params';
|
|
156
152
|
function triggerWebhook(params) {
|
|
153
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
// retryableにする(2023-05-12~)
|
|
155
|
+
let retry = true;
|
|
156
|
+
let numberOfTry = 0;
|
|
157
|
+
while (numberOfTry >= 0) {
|
|
158
|
+
try {
|
|
159
|
+
numberOfTry += 1;
|
|
160
|
+
if (numberOfTry > settings_1.TRIGGER_WEBHOOK_MAX_RETRY_COUNT) {
|
|
161
|
+
retry = false;
|
|
162
|
+
}
|
|
163
|
+
// retryInterval
|
|
164
|
+
if (numberOfTry > 1) {
|
|
165
|
+
yield sleep(settings_1.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS * (numberOfTry - 1));
|
|
166
|
+
}
|
|
167
|
+
yield processInformAction(params)(repos);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (retry) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
exports.triggerWebhook = triggerWebhook;
|
|
182
|
+
function sleep(waitTime) {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
184
|
+
return new Promise((resolve) => {
|
|
185
|
+
setTimeout(() => {
|
|
186
|
+
resolve();
|
|
187
|
+
}, waitTime);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
function processInformAction(params) {
|
|
157
192
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
158
193
|
var _a, _b;
|
|
159
194
|
// アクション開始
|
|
@@ -219,4 +254,3 @@ function triggerWebhook(params) {
|
|
|
219
254
|
yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: result });
|
|
220
255
|
});
|
|
221
256
|
}
|
|
222
|
-
exports.triggerWebhook = triggerWebhook;
|
|
@@ -57,5 +57,8 @@ declare function authorize(params: {
|
|
|
57
57
|
*/
|
|
58
58
|
id: string;
|
|
59
59
|
};
|
|
60
|
+
disablePendingReservations: boolean;
|
|
61
|
+
useHoldStockByTransactionNumber: boolean;
|
|
62
|
+
stockHoldUntilDaysAfterEventEnd: number;
|
|
60
63
|
}): IAuthorizeOperation<IAuthorizeOfferAction>;
|
|
61
64
|
export { authorize };
|
|
@@ -66,7 +66,10 @@ function authorize(params) {
|
|
|
66
66
|
ticketOffers,
|
|
67
67
|
unitPriceOffers,
|
|
68
68
|
validateEvent: params.validateEvent === true,
|
|
69
|
-
validateEventOfferPeriod: params.validateEventOfferPeriod === true
|
|
69
|
+
validateEventOfferPeriod: params.validateEventOfferPeriod === true,
|
|
70
|
+
disablePendingReservations: params.disablePendingReservations,
|
|
71
|
+
useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber,
|
|
72
|
+
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd
|
|
70
73
|
})(repos);
|
|
71
74
|
// requestBody = processStartReserveResult.requestBody;
|
|
72
75
|
// responseBody = processStartReserveResult.responseBody;
|
|
@@ -162,9 +165,12 @@ function processStartReserve4chevre(params) {
|
|
|
162
165
|
// requestBody = startParams;
|
|
163
166
|
const startParamObject = yield validateObjectWithoutDetail(startParams)(repos);
|
|
164
167
|
// 予約取引開始
|
|
165
|
-
|
|
168
|
+
const startReserveTransactionResult = yield ReserveTransactionService.start(Object.assign(Object.assign({}, startParams), { object: startParamObject, preSearchedEvent: event, preSearchedTicketOffers: params.ticketOffers, preSearchedUnitPriceOffers: params.unitPriceOffers, availableAtOrFrom: { id: params.availableAtOrFrom.id }, validateEvent: params.validateEvent, validateEventOfferPeriod: params.validateEventOfferPeriod, validateAppliesToMovieTicket: true, disablePendingReservations: params.disablePendingReservations, useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber, stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd }))(repos);
|
|
169
|
+
responseBody = startReserveTransactionResult.transaction;
|
|
166
170
|
// 予約取引からオファー情報を生成する
|
|
167
171
|
acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
|
|
172
|
+
issuedThrough: startReserveTransactionResult.issuedThrough,
|
|
173
|
+
objectSubReservations: startReserveTransactionResult.objectSubReservations,
|
|
168
174
|
responseBody: responseBody,
|
|
169
175
|
event: event,
|
|
170
176
|
project: transaction.project,
|
|
@@ -23,8 +23,11 @@ export declare function createAuthorizeSeatReservationActionAttributes(params: {
|
|
|
23
23
|
export declare function acceptedOffers2amount(params: {
|
|
24
24
|
acceptedOffers: IResultAcceptedOffer[];
|
|
25
25
|
}): number;
|
|
26
|
+
type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
|
|
26
27
|
type IResultAcceptedOffer = factory.action.authorize.offer.seatReservation.IResultAcceptedOffer;
|
|
27
28
|
export declare function responseBody2acceptedOffers4result(params: {
|
|
29
|
+
issuedThrough: factory.assetTransaction.reserve.IIssuedThrough;
|
|
30
|
+
objectSubReservations: IObjectSubReservation[];
|
|
28
31
|
responseBody: factory.assetTransaction.reserve.ITransaction;
|
|
29
32
|
event: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent>;
|
|
30
33
|
project: {
|
|
@@ -154,10 +154,14 @@ exports.acceptedOffers2amount = acceptedOffers2amount;
|
|
|
154
154
|
function responseBody2acceptedOffers4result(params) {
|
|
155
155
|
let acceptedOffers4result = [];
|
|
156
156
|
// 予約取引からacceptedOffers4resultを生成する
|
|
157
|
-
if (Array.isArray(params.
|
|
158
|
-
acceptedOffers4result = params.
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
if (Array.isArray(params.objectSubReservations)) {
|
|
158
|
+
acceptedOffers4result = params.objectSubReservations.map((itemOffered) => {
|
|
159
|
+
const reservation = createReservation({
|
|
160
|
+
project: params.project,
|
|
161
|
+
itemOffered,
|
|
162
|
+
event: params.event,
|
|
163
|
+
issuedThrough: params.issuedThrough
|
|
164
|
+
});
|
|
161
165
|
// appliesToMovieTicketがArrayでないケースは廃止(2022-09-12~)
|
|
162
166
|
const priceSpecification = itemOffered.price;
|
|
163
167
|
const priceComponent = priceSpecification.priceComponent.map((c) => {
|
|
@@ -179,7 +183,8 @@ function responseBody2acceptedOffers4result(params) {
|
|
|
179
183
|
}
|
|
180
184
|
: undefined);
|
|
181
185
|
});
|
|
182
|
-
|
|
186
|
+
// tslint:disable-next-line:no-unnecessary-local-variable
|
|
187
|
+
const resultAcceptedOffer = {
|
|
183
188
|
typeOf: factory.offerType.Offer,
|
|
184
189
|
id: itemOffered.reservedTicket.ticketType.id,
|
|
185
190
|
name: itemOffered.reservedTicket.ticketType.name,
|
|
@@ -190,17 +195,20 @@ function responseBody2acceptedOffers4result(params) {
|
|
|
190
195
|
priceCurrency: priceSpecification.priceCurrency,
|
|
191
196
|
typeOf: priceSpecification.typeOf,
|
|
192
197
|
valueAddedTaxIncluded: priceSpecification.valueAddedTaxIncluded
|
|
193
|
-
},
|
|
194
|
-
priceCurrency: (typeof itemOffered.priceCurrency === 'string')
|
|
195
|
-
? itemOffered.priceCurrency
|
|
196
|
-
: factory.priceCurrency.JPY,
|
|
197
|
-
seller: {
|
|
198
|
-
typeOf: params.seller.typeOf,
|
|
199
|
-
name: (typeof params.seller.name === 'string')
|
|
200
|
-
? params.seller.name
|
|
201
|
-
: String((_a = params.seller.name) === null || _a === void 0 ? void 0 : _a.ja)
|
|
202
198
|
}
|
|
199
|
+
// 不要なので廃止(2023-07-01~)
|
|
200
|
+
// priceCurrency: (typeof itemOffered.priceCurrency === 'string')
|
|
201
|
+
// ? itemOffered.priceCurrency
|
|
202
|
+
// : factory.priceCurrency.JPY,
|
|
203
|
+
// 不要なので廃止(2023-07-01~)
|
|
204
|
+
// seller: {
|
|
205
|
+
// typeOf: params.seller.typeOf,
|
|
206
|
+
// name: (typeof params.seller.name === 'string')
|
|
207
|
+
// ? params.seller.name
|
|
208
|
+
// : String(params.seller.name?.ja)
|
|
209
|
+
// }
|
|
203
210
|
};
|
|
211
|
+
return resultAcceptedOffer;
|
|
204
212
|
});
|
|
205
213
|
}
|
|
206
214
|
return acceptedOffers4result;
|
|
@@ -244,7 +252,13 @@ function createReservation(params) {
|
|
|
244
252
|
// 最適化(2022-05-31~)
|
|
245
253
|
superEvent: Object.assign(Object.assign({ typeOf: event.superEvent.typeOf, id: event.superEvent.id, kanaName: event.superEvent.kanaName, location: event.superEvent.location, name: event.superEvent.name, soundFormat: event.superEvent.soundFormat, videoFormat: event.superEvent.videoFormat, workPerformed }, (typeof event.superEvent.duration === 'string') ? { duration: event.superEvent.duration } : undefined), (event.superEvent.headline !== undefined) ? { headline: event.superEvent.headline } : undefined)
|
|
246
254
|
};
|
|
247
|
-
|
|
255
|
+
if (params.issuedThrough.typeOf !== factory.product.ProductType.EventService) {
|
|
256
|
+
throw new factory.errors.Argument('issuedThrough', `issuedThrough.typeOf must be ${factory.product.ProductType.EventService}`);
|
|
257
|
+
}
|
|
258
|
+
reservationItem = Object.assign({
|
|
259
|
+
// 不要なので廃止(2023-07-01~)
|
|
260
|
+
// project: itemOffered.project,
|
|
261
|
+
typeOf: itemOffered.typeOf, additionalProperty: itemOffered.additionalProperty, additionalTicketText: itemOffered.additionalTicketText, id: itemOffered.id, issuedThrough: params.issuedThrough, reservationNumber: itemOffered.reservationNumber, reservationFor,
|
|
248
262
|
reservedTicket }, (typeof ((_a = itemOffered.programMembershipUsed) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string')
|
|
249
263
|
? { programMembershipUsed: itemOffered.programMembershipUsed }
|
|
250
264
|
: undefined);
|
|
@@ -269,7 +283,13 @@ function createReservation(params) {
|
|
|
269
283
|
busNumber: tripByEvent.busNumber,
|
|
270
284
|
identifier: tripByEvent.identifier
|
|
271
285
|
};
|
|
272
|
-
|
|
286
|
+
if (params.issuedThrough.typeOf !== factory.product.ProductType.Transportation) {
|
|
287
|
+
throw new factory.errors.Argument('issuedThrough', `issuedThrough.typeOf must be ${factory.product.ProductType.Transportation}`);
|
|
288
|
+
}
|
|
289
|
+
reservationItem = Object.assign({
|
|
290
|
+
// 不要なので廃止(2023-07-01~)
|
|
291
|
+
// project: itemOffered.project,
|
|
292
|
+
typeOf: itemOffered.typeOf, additionalProperty: itemOffered.additionalProperty, additionalTicketText: itemOffered.additionalTicketText, id: itemOffered.id, issuedThrough: params.issuedThrough, reservationNumber: itemOffered.reservationNumber, reservationFor,
|
|
273
293
|
reservedTicket }, (typeof ((_d = itemOffered.programMembershipUsed) === null || _d === void 0 ? void 0 : _d.typeOf) === 'string')
|
|
274
294
|
? { programMembershipUsed: itemOffered.programMembershipUsed }
|
|
275
295
|
: undefined);
|
|
@@ -20,7 +20,7 @@ function importFromCOA(params) {
|
|
|
20
20
|
page: 1,
|
|
21
21
|
project: { id: { $eq: params.project.id } },
|
|
22
22
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.CurrencyType } }
|
|
23
|
-
});
|
|
23
|
+
}, [], []);
|
|
24
24
|
const defaultCurrencyType = currencyTypes.shift();
|
|
25
25
|
// メンバーシップ区分検索
|
|
26
26
|
const membershipTypes = yield repos.categoryCode.search({
|
|
@@ -28,7 +28,7 @@ function importFromCOA(params) {
|
|
|
28
28
|
page: 1,
|
|
29
29
|
project: { id: { $eq: params.project.id } },
|
|
30
30
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.MembershipType } }
|
|
31
|
-
});
|
|
31
|
+
}, [], []);
|
|
32
32
|
const defaultMembershipType = membershipTypes.shift();
|
|
33
33
|
try {
|
|
34
34
|
const ticketResults = yield repos.masterService.ticket({ theaterCode: params.theaterCode });
|
|
@@ -5,6 +5,7 @@ import { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/o
|
|
|
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
|
+
import { MongoRepository as TransactionRepo } from '../../../repo/transaction';
|
|
8
9
|
export import WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
9
10
|
interface IVoidTransactionRepos {
|
|
10
11
|
action: ActionRepo;
|
|
@@ -13,6 +14,7 @@ interface IVoidTransactionRepos {
|
|
|
13
14
|
offerRateLimit: OfferRateLimitRepo;
|
|
14
15
|
reservation: ReservationRepo;
|
|
15
16
|
task: TaskRepo;
|
|
17
|
+
transaction: TransactionRepo;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* イベントオファー承認取消(タスクから実行)
|
|
@@ -26,8 +26,13 @@ exports.WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
|
26
26
|
*/
|
|
27
27
|
function voidTransaction(params) {
|
|
28
28
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const transaction = yield repos.transaction.findById({
|
|
30
|
+
typeOf: params.purpose.typeOf,
|
|
31
|
+
id: params.purpose.id,
|
|
32
|
+
inclusion: ['_id', 'typeOf', 'status']
|
|
33
|
+
});
|
|
29
34
|
// 座席仮予約アクション検索
|
|
30
|
-
|
|
35
|
+
let authorizeActions = yield repos.action.searchByPurpose({
|
|
31
36
|
typeOf: factory.actionType.AuthorizeAction,
|
|
32
37
|
purpose: {
|
|
33
38
|
typeOf: params.purpose.typeOf,
|
|
@@ -36,6 +41,17 @@ function voidTransaction(params) {
|
|
|
36
41
|
})
|
|
37
42
|
.then((actions) => actions
|
|
38
43
|
.filter((a) => a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation));
|
|
44
|
+
switch (transaction.status) {
|
|
45
|
+
case factory.transactionStatusType.InProgress:
|
|
46
|
+
throw new factory.errors.NotImplemented(`${transaction.status} not implemented`);
|
|
47
|
+
// 確定取引に対応(2023-05-07~)
|
|
48
|
+
case factory.transactionStatusType.Confirmed:
|
|
49
|
+
// アクションステータスを検証する
|
|
50
|
+
authorizeActions = authorizeActions.filter((a) => a.actionStatus !== factory.actionStatusType.CompletedActionStatus);
|
|
51
|
+
break;
|
|
52
|
+
default:
|
|
53
|
+
// no op
|
|
54
|
+
}
|
|
39
55
|
yield Promise.all(authorizeActions.map((action) => __awaiter(this, void 0, void 0, function* () {
|
|
40
56
|
yield repos.action.cancel({ typeOf: action.typeOf, id: action.id });
|
|
41
57
|
switch (action.instrument.identifier) {
|
|
@@ -171,7 +171,10 @@ function responseBody2acceptedOffers4result(params) {
|
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
};
|
|
174
|
-
const reservation = Object.assign(Object.assign(Object.assign({
|
|
174
|
+
const reservation = Object.assign(Object.assign(Object.assign({
|
|
175
|
+
// 不要なので廃止(2023-07-01~)
|
|
176
|
+
// project: { typeOf: event.project.typeOf, id: event.project.id },
|
|
177
|
+
typeOf: factory.reservationType.EventReservation, id: reservationId, issuedThrough, bookingTime: params.bookingTime }, (Array.isArray(additionalProperty)) ? { additionalProperty } : undefined), (typeof additionalTicketText === 'string') ? { additionalTicketText } : undefined), {
|
|
175
178
|
// numSeats: 1, // 廃止(2022-08-18~)
|
|
176
179
|
reservationFor: reservationFor, reservationNumber: reservationNumber, reservedTicket: reservedTicket });
|
|
177
180
|
if (requestedOffer.priceSpecification === undefined) {
|
|
@@ -183,19 +186,23 @@ function responseBody2acceptedOffers4result(params) {
|
|
|
183
186
|
valueAddedTaxIncluded: requestedOffer.priceSpecification.valueAddedTaxIncluded,
|
|
184
187
|
priceComponent: requestedOffer.priceSpecification.priceComponent
|
|
185
188
|
};
|
|
186
|
-
|
|
189
|
+
// tslint:disable-next-line:no-unnecessary-local-variable
|
|
190
|
+
const resultAcceptedOffer = {
|
|
187
191
|
typeOf: factory.offerType.Offer,
|
|
188
192
|
id: requestedOffer.id,
|
|
189
193
|
name: requestedOffer.name,
|
|
190
194
|
itemOffered: reservation,
|
|
191
195
|
offeredThrough: { typeOf: 'WebAPI', identifier: factory.service.webAPI.Identifier.COA },
|
|
192
|
-
priceSpecification
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
priceSpecification
|
|
197
|
+
// 不要なので廃止(2023-07-01~)
|
|
198
|
+
// priceCurrency: factory.priceCurrency.JPY,
|
|
199
|
+
// 不要なので廃止(2023-07-01~)
|
|
200
|
+
// seller: {
|
|
201
|
+
// typeOf: params.seller.typeOf,
|
|
202
|
+
// name: params.seller.name
|
|
203
|
+
// }
|
|
198
204
|
};
|
|
205
|
+
return resultAcceptedOffer;
|
|
199
206
|
}));
|
|
200
207
|
return acceptedOffers4result;
|
|
201
208
|
}
|
|
@@ -29,21 +29,19 @@ function authorize(params) {
|
|
|
29
29
|
throw new factory.errors.Forbidden('Transaction not yours');
|
|
30
30
|
}
|
|
31
31
|
// イベント取得属性最適化(2023-01-23~)
|
|
32
|
-
const screeningEvent = yield repos.event.findMinimizedIndividualEventById({
|
|
33
|
-
id: params.object.event.id
|
|
34
|
-
});
|
|
32
|
+
const screeningEvent = yield repos.event.findMinimizedIndividualEventById({ id: params.object.event.id });
|
|
35
33
|
const availablePaymentMethodTypes = yield repos.categoryCode.search({
|
|
36
34
|
project: { id: { $eq: transaction.project.id } },
|
|
37
35
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.PaymentMethodType } }
|
|
38
|
-
});
|
|
36
|
+
}, [], []);
|
|
39
37
|
const seatingTypes = yield repos.categoryCode.search({
|
|
40
38
|
project: { id: { $eq: transaction.project.id } },
|
|
41
39
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.SeatingType } }
|
|
42
|
-
});
|
|
40
|
+
}, [], []);
|
|
43
41
|
const videoFormatTypes = yield repos.categoryCode.search({
|
|
44
42
|
project: { id: { $eq: transaction.project.id } },
|
|
45
43
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.VideoFormatType } }
|
|
46
|
-
});
|
|
44
|
+
}, [], []);
|
|
47
45
|
// COA仮予約後にリクエストが来る前提
|
|
48
46
|
const { acceptedOffers } = yield (0, validateAcceptedOffers_1.validateAcceptedOffers)({
|
|
49
47
|
object: params.object,
|
|
@@ -183,15 +181,15 @@ function changeOffers(params) {
|
|
|
183
181
|
const availablePaymentMethodTypes = yield repos.categoryCode.search({
|
|
184
182
|
project: { id: { $eq: transaction.project.id } },
|
|
185
183
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.PaymentMethodType } }
|
|
186
|
-
});
|
|
184
|
+
}, [], []);
|
|
187
185
|
const seatingTypes = yield repos.categoryCode.search({
|
|
188
186
|
project: { id: { $eq: transaction.project.id } },
|
|
189
187
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.SeatingType } }
|
|
190
|
-
});
|
|
188
|
+
}, [], []);
|
|
191
189
|
const videoFormatTypes = yield repos.categoryCode.search({
|
|
192
190
|
project: { id: { $eq: transaction.project.id } },
|
|
193
191
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.VideoFormatType } }
|
|
194
|
-
});
|
|
192
|
+
}, [], []);
|
|
195
193
|
// COA仮予約後にリクエストが来る前提
|
|
196
194
|
const { acceptedOffers } = yield (0, validateAcceptedOffers_1.validateAcceptedOffers)({
|
|
197
195
|
object: params.object,
|
|
@@ -78,6 +78,7 @@ function acceptedOffers2amount(params) {
|
|
|
78
78
|
return a + priceSpecification.priceComponent.reduce((a2, b2) => a2 + Number(b2.price), 0);
|
|
79
79
|
}, 0);
|
|
80
80
|
}
|
|
81
|
+
// tslint:disable-next-line:max-func-body-length
|
|
81
82
|
function responseBody2resultAcceptedOffer(params) {
|
|
82
83
|
let acceptedOffers = [];
|
|
83
84
|
if (Array.isArray(params.responseBody.object)) {
|
|
@@ -90,7 +91,10 @@ function responseBody2resultAcceptedOffer(params) {
|
|
|
90
91
|
}
|
|
91
92
|
// itemOfferedを最小限に最適化
|
|
92
93
|
const permitByResponse = responseBodyObject.itemOffered.serviceOutput;
|
|
93
|
-
const itemOffered = Object.assign(Object.assign({
|
|
94
|
+
const itemOffered = Object.assign(Object.assign({
|
|
95
|
+
// 不要なので廃止(2023-07-01~)
|
|
96
|
+
// project: permitByResponse.project,
|
|
97
|
+
typeOf: permitByResponse.typeOf, identifier: permitByResponse.identifier, issuedThrough: permitByResponse.issuedThrough, name: permitByResponse.name }, (typeof permitByResponse.validFor === 'string') ? { validFor: permitByResponse.validFor } : undefined), (typeof ((_c = permitByResponse.amount) === null || _c === void 0 ? void 0 : _c.typeOf) === 'string') ? { amount: permitByResponse.amount } : undefined);
|
|
94
98
|
const offer = params.acceptedOffer.find((o) => o.id === responseBodyObject.id);
|
|
95
99
|
if (offer === undefined) {
|
|
96
100
|
throw new factory.errors.ServiceUnavailable(`Offer ${responseBodyObject.id} from registerService not found`);
|
|
@@ -132,16 +136,19 @@ function responseBody2resultAcceptedOffer(params) {
|
|
|
132
136
|
}
|
|
133
137
|
})
|
|
134
138
|
};
|
|
135
|
-
|
|
136
|
-
|
|
139
|
+
// tslint:disable-next-line:no-unnecessary-local-variable
|
|
140
|
+
const permitAcceptedOffer = {
|
|
137
141
|
typeOf: responseBodyObject.typeOf,
|
|
138
142
|
id: offer.id,
|
|
139
143
|
name: offer.name,
|
|
140
144
|
itemOffered,
|
|
141
|
-
priceSpecification
|
|
142
|
-
|
|
143
|
-
|
|
145
|
+
priceSpecification
|
|
146
|
+
// 不要なので廃止(2023-07-01~)
|
|
147
|
+
// priceCurrency: offer.priceCurrency,
|
|
148
|
+
// 不要なので廃止(2023-07-01~)
|
|
149
|
+
// seller: { name: offer.seller.name, typeOf: offer.seller.typeOf }
|
|
144
150
|
};
|
|
151
|
+
return permitAcceptedOffer;
|
|
145
152
|
});
|
|
146
153
|
}
|
|
147
154
|
return acceptedOffers;
|
|
@@ -32,7 +32,7 @@ function search(params) {
|
|
|
32
32
|
page: 1,
|
|
33
33
|
project: { id: { $eq: params.project.id } },
|
|
34
34
|
id: { $eq: params.itemOffered.id }
|
|
35
|
-
});
|
|
35
|
+
}, [], []);
|
|
36
36
|
const product = searchProductsResult.shift();
|
|
37
37
|
if (product === undefined) {
|
|
38
38
|
throw new factory.errors.NotFound('Product');
|
|
@@ -206,7 +206,7 @@ function fixProductAndOffers(params) {
|
|
|
206
206
|
page: 1,
|
|
207
207
|
project: { id: { $eq: params.project.id } },
|
|
208
208
|
id: { $eq: productId }
|
|
209
|
-
});
|
|
209
|
+
}, [], []);
|
|
210
210
|
const product = searchProductsResult.shift();
|
|
211
211
|
if (product === undefined) {
|
|
212
212
|
throw new factory.errors.NotFound('Product');
|
|
@@ -47,19 +47,17 @@ export declare function searchEventSeatOffersWithPaging(params: {
|
|
|
47
47
|
stockHolder: StockHolderRepo;
|
|
48
48
|
place: PlaceRepo;
|
|
49
49
|
}) => Promise<factory.place.seat.IPlaceWithOffer[]>;
|
|
50
|
-
interface IChangedEvent {
|
|
51
|
-
id: string;
|
|
52
|
-
typeOf: factory.eventType;
|
|
53
|
-
project: {
|
|
54
|
-
id: string;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
50
|
/**
|
|
58
51
|
* イベント変更時処理
|
|
59
52
|
*/
|
|
60
53
|
export declare function onEventChanged(params: {
|
|
61
|
-
|
|
54
|
+
id: string[];
|
|
55
|
+
typeOf: factory.eventType;
|
|
56
|
+
project: {
|
|
57
|
+
id: string;
|
|
58
|
+
};
|
|
62
59
|
isNew: boolean;
|
|
60
|
+
useInform?: boolean;
|
|
63
61
|
}): (repos: {
|
|
64
62
|
event: EventRepo;
|
|
65
63
|
project: ProjectRepo;
|
|
@@ -76,3 +74,13 @@ export declare function createAggregateScreeningEventIfNotExist(params: {
|
|
|
76
74
|
}): (repos: {
|
|
77
75
|
task: TaskRepo;
|
|
78
76
|
}) => Promise<void>;
|
|
77
|
+
export declare function createInformTasks(params: {
|
|
78
|
+
project: {
|
|
79
|
+
id: string;
|
|
80
|
+
};
|
|
81
|
+
ids: string[];
|
|
82
|
+
typeOf: factory.eventType;
|
|
83
|
+
}): (repos: {
|
|
84
|
+
event: EventRepo;
|
|
85
|
+
task: TaskRepo;
|
|
86
|
+
}) => Promise<void>;
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createAggregateScreeningEventIfNotExist = exports.onEventChanged = exports.searchEventSeatOffersWithPaging = exports.addOffers2Seat = exports.product = exports.moneyTransfer = exports.eventServiceByCOA = exports.event = void 0;
|
|
12
|
+
exports.createInformTasks = exports.createAggregateScreeningEventIfNotExist = exports.onEventChanged = exports.searchEventSeatOffersWithPaging = exports.addOffers2Seat = exports.product = exports.moneyTransfer = exports.eventServiceByCOA = exports.event = void 0;
|
|
13
13
|
const moment = require("moment");
|
|
14
14
|
const factory = require("../factory");
|
|
15
15
|
const EventOfferService = require("./offer/event");
|
|
@@ -20,6 +20,8 @@ const MoneyTransferOfferService = require("./offer/moneyTransfer");
|
|
|
20
20
|
exports.moneyTransfer = MoneyTransferOfferService;
|
|
21
21
|
const ProductOfferService = require("./offer/product");
|
|
22
22
|
exports.product = ProductOfferService;
|
|
23
|
+
const settings_1 = require("../settings");
|
|
24
|
+
const informEvents = settings_1.settings.onEventChanged.informEvent;
|
|
23
25
|
/**
|
|
24
26
|
* 座席にオファー情報を付加する
|
|
25
27
|
*/
|
|
@@ -86,12 +88,14 @@ function searchEventSeatOffersWithPaging(params) {
|
|
|
86
88
|
branchCode: { $eq: movieTheaterBranchCode }
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
|
-
} }));
|
|
91
|
+
} }), settings_1.USE_READ_SCREENING_ROOM_TYPE);
|
|
90
92
|
if (seats.length > 0) {
|
|
91
93
|
const availabilities = yield repos.stockHolder.searchHolders({
|
|
94
|
+
project: { id: event.project.id },
|
|
92
95
|
eventId: params.event.id,
|
|
93
96
|
startDate: moment(event.startDate)
|
|
94
97
|
.toDate(),
|
|
98
|
+
hasTicketedSeat: true,
|
|
95
99
|
offers: seats.map((s) => {
|
|
96
100
|
var _a;
|
|
97
101
|
return {
|
|
@@ -117,24 +121,33 @@ function searchEventSeatOffersWithPaging(params) {
|
|
|
117
121
|
});
|
|
118
122
|
}
|
|
119
123
|
exports.searchEventSeatOffersWithPaging = searchEventSeatOffersWithPaging;
|
|
124
|
+
// type IChangedEvent = factory.task.onEventChanged.IChangedEvent;
|
|
120
125
|
/**
|
|
121
126
|
* イベント変更時処理
|
|
122
127
|
*/
|
|
123
128
|
function onEventChanged(params) {
|
|
124
129
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
125
|
-
const changedEvents = (Array.isArray(params.event)) ? params.event : [params.event];
|
|
126
|
-
if (
|
|
130
|
+
// const changedEvents = (Array.isArray(params.event)) ? params.event : [params.event];
|
|
131
|
+
if (params.id.length > 0) {
|
|
127
132
|
// ScreeningEventであれば集計タスク
|
|
128
|
-
if (
|
|
133
|
+
if (params.typeOf === factory.eventType.ScreeningEvent) {
|
|
129
134
|
yield createAggregateScreeningEventIfNotExist({
|
|
130
|
-
project: { id:
|
|
131
|
-
reservationFor:
|
|
132
|
-
return { id
|
|
135
|
+
project: { id: params.project.id },
|
|
136
|
+
reservationFor: params.id.map((id) => {
|
|
137
|
+
return { id };
|
|
133
138
|
}),
|
|
134
139
|
// 新規作成の場合は強制的に集計
|
|
135
140
|
force: params.isNew
|
|
136
141
|
})(repos);
|
|
137
142
|
}
|
|
143
|
+
// 通知タスク作成(2023-06-08~)
|
|
144
|
+
if (params.useInform === true) {
|
|
145
|
+
yield createInformTasks({
|
|
146
|
+
project: { id: params.project.id },
|
|
147
|
+
ids: params.id,
|
|
148
|
+
typeOf: params.typeOf
|
|
149
|
+
})(repos);
|
|
150
|
+
}
|
|
138
151
|
}
|
|
139
152
|
});
|
|
140
153
|
}
|
|
@@ -186,8 +199,58 @@ function createAggregateScreeningEventIfNotExist(params) {
|
|
|
186
199
|
}
|
|
187
200
|
}
|
|
188
201
|
if (aggregateTasks.length > 0) {
|
|
189
|
-
yield repos.task.saveMany(aggregateTasks);
|
|
202
|
+
yield repos.task.saveMany(aggregateTasks, { emitImmediately: true });
|
|
190
203
|
}
|
|
191
204
|
});
|
|
192
205
|
}
|
|
193
206
|
exports.createAggregateScreeningEventIfNotExist = createAggregateScreeningEventIfNotExist;
|
|
207
|
+
function createInformTasks(params) {
|
|
208
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
209
|
+
const events4inform = yield repos.event.search({
|
|
210
|
+
id: { $in: params.ids },
|
|
211
|
+
typeOf: params.typeOf
|
|
212
|
+
}, {
|
|
213
|
+
aggregateEntranceGate: 0, aggregateOffer: 0, aggregateReservation: 0,
|
|
214
|
+
remainingAttendeeCapacity: 0, checkInCount: 0, attendeeCount: 0
|
|
215
|
+
});
|
|
216
|
+
if (events4inform.length > 0) {
|
|
217
|
+
const taskRunsAt = new Date();
|
|
218
|
+
const informTasks = [];
|
|
219
|
+
informEvents === null || informEvents === void 0 ? void 0 : informEvents.forEach((informEvent) => {
|
|
220
|
+
var _a;
|
|
221
|
+
const informUrl = String((_a = informEvent.recipient) === null || _a === void 0 ? void 0 : _a.url);
|
|
222
|
+
events4inform.forEach((event4inform) => {
|
|
223
|
+
var _a;
|
|
224
|
+
// _idは不要であり、存在すると予期せぬ影響を及ぼす可能性がある
|
|
225
|
+
delete event4inform._id;
|
|
226
|
+
const informActionAttributes = {
|
|
227
|
+
agent: event4inform.project,
|
|
228
|
+
object: event4inform,
|
|
229
|
+
project: event4inform.project,
|
|
230
|
+
recipient: {
|
|
231
|
+
id: '',
|
|
232
|
+
name: String((_a = informEvent.recipient) === null || _a === void 0 ? void 0 : _a.name),
|
|
233
|
+
typeOf: factory.creativeWorkType.WebApplication,
|
|
234
|
+
url: informUrl
|
|
235
|
+
},
|
|
236
|
+
typeOf: factory.actionType.InformAction
|
|
237
|
+
};
|
|
238
|
+
informTasks.push({
|
|
239
|
+
project: event4inform.project,
|
|
240
|
+
name: factory.taskName.TriggerWebhook,
|
|
241
|
+
status: factory.taskStatus.Ready,
|
|
242
|
+
runsAt: taskRunsAt,
|
|
243
|
+
remainingNumberOfTries: 10,
|
|
244
|
+
numberOfTried: 0,
|
|
245
|
+
executionResults: [],
|
|
246
|
+
data: informActionAttributes
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
if (informTasks.length > 0) {
|
|
251
|
+
yield repos.task.saveMany(informTasks, { emitImmediately: true });
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
exports.createInformTasks = createInformTasks;
|