@chevre/domain 21.2.0-alpha.98 → 21.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example/src/chevre/aggregateEventReservation.ts +1 -1
- package/example/src/chevre/aggregateSellerPaymentAccepted.ts +27 -0
- package/example/src/chevre/aggregation/aggregateSystem.ts +53 -22
- package/example/src/chevre/countDelayedTasks.ts +7 -2
- package/example/src/chevre/createManyEventsIfNotExist.ts +199 -46
- package/example/src/chevre/findScreeningRoomsByBranchCode.ts +4 -3
- package/example/src/chevre/giveUpStartDatePassedCertainPeriod.ts +56 -0
- package/example/src/chevre/lockStockHolder.ts +5 -2
- package/example/src/chevre/migrateCategoryCodeAdditionalProperties.ts +116 -0
- package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
- package/example/src/chevre/processPay.ts +5 -2
- package/example/src/chevre/processRegisterMembership.ts +8 -4
- package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
- package/example/src/chevre/processReserve.ts +1 -1
- package/example/src/chevre/searchAbortedTasks.ts +4 -6
- 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/searchScreeningRooms.ts +35 -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/unsetContainsInPlaceFromMovieTheater.ts +41 -0
- 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.js +2 -1
- package/lib/chevre/repo/accountingReport.d.ts +1 -3
- package/lib/chevre/repo/action.d.ts +50 -1
- package/lib/chevre/repo/action.js +103 -34
- 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.js +6 -5
- 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.js +2 -1
- 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/action.js +12 -0
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.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 +3 -3
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +21 -21
- 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/reservation.d.ts +9 -9
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +3 -3
- package/lib/chevre/repo/offer.js +3 -2
- package/lib/chevre/repo/offerCatalog.js +0 -27
- package/lib/chevre/repo/offerItemCondition.js +2 -1
- package/lib/chevre/repo/order.js +8 -7
- 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 +9 -1
- package/lib/chevre/repo/reservation.js +29 -20
- 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 +59 -4
- 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 +12 -1
- package/lib/chevre/repo/task.js +17 -7
- package/lib/chevre/repo/transaction.js +6 -5
- package/lib/chevre/repo/trip.js +2 -1
- package/lib/chevre/repository.d.ts +6 -0
- package/lib/chevre/repository.js +8 -1
- 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 +43 -1
- package/lib/chevre/service/aggregation/system.js +112 -2
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -1
- package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
- package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
- package/lib/chevre/service/assetTransaction/pay.js +7 -7
- package/lib/chevre/service/assetTransaction/refund.js +1 -1
- package/lib/chevre/service/assetTransaction/reserve.js +10 -3
- package/lib/chevre/service/event.d.ts +3 -0
- package/lib/chevre/service/event.js +52 -21
- package/lib/chevre/service/iam.d.ts +6 -2
- package/lib/chevre/service/iam.js +23 -9
- package/lib/chevre/service/offer/event/factory.js +22 -13
- package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
- 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 +71 -8
- package/lib/chevre/service/order/createAccountingReportIfNotExist.js +31 -17
- package/lib/chevre/service/order/onOrderStatusChanged/factory.js +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged.js +2 -2
- package/lib/chevre/service/order/placeOrder.js +4 -4
- package/lib/chevre/service/order/returnOrder.js +1 -1
- package/lib/chevre/service/order/sendOrder.js +3 -3
- package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +4 -6
- package/lib/chevre/service/payment/any/onRefund.js +46 -42
- package/lib/chevre/service/payment/any.d.ts +9 -6
- package/lib/chevre/service/payment/any.js +6 -2
- package/lib/chevre/service/payment/creditCard.js +2 -2
- 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 +3 -4
- package/lib/chevre/service/payment/movieTicket/validation.js +53 -12
- package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket.js +4 -4
- package/lib/chevre/service/reserve/cancelReservation.js +15 -3
- package/lib/chevre/service/reserve/confirmReservation.js +19 -11
- package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
- package/lib/chevre/service/task/cancelPendingReservation.js +1 -1
- package/lib/chevre/service/task/cancelReservation.js +1 -1
- package/lib/chevre/service/task/deleteTransaction.js +2 -0
- package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
- package/lib/chevre/service/task/onEventChanged.js +29 -0
- package/lib/chevre/service/task/onResourceUpdated.d.ts +7 -0
- package/lib/chevre/service/task/onResourceUpdated.js +396 -0
- package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
- package/lib/chevre/service/task/syncScreeningRooms.js +24 -0
- package/lib/chevre/service/task/voidReserveTransaction.js +1 -1
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +2 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +129 -1
- package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +1 -0
- package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
- package/lib/chevre/service/transaction/moneyTransfer.js +1 -1
- 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 -4
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/givePointAward.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.js +4 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +3 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +8 -12
- package/lib/chevre/service/transaction/placeOrderInProgress.js +6 -4
- package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +1 -0
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +2 -2
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +5 -5
- 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.js +3 -1
- package/lib/chevre/settings.d.ts +11 -0
- package/lib/chevre/settings.js +44 -2
- package/package.json +3 -3
- package/example/src/chevre/eventCatalog2eventService.ts +0 -123
- package/example/src/chevre/migrateOrderAdditionalProperties.ts +0 -85
- package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
- package/example/src/chevre/searchAssetTransactions.ts +0 -30
|
@@ -10,29 +10,34 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.validateMovieTicket = void 0;
|
|
13
|
-
|
|
14
|
-
* 決済取引サービス
|
|
15
|
-
*/
|
|
13
|
+
const createDebug = require("debug");
|
|
16
14
|
const factory = require("../../../factory");
|
|
17
15
|
const checkByIdentifier_1 = require("./checkByIdentifier");
|
|
18
|
-
|
|
16
|
+
const debug = createDebug('chevre-domain:service:payment');
|
|
17
|
+
function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBeforePay, useCheckByIdentifierIfNotYet) {
|
|
19
18
|
// tslint:disable-next-line:max-func-body-length
|
|
20
19
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
21
20
|
var _a, _b, _c, _d;
|
|
22
21
|
const movieTickets = (_a = params.object.paymentMethod) === null || _a === void 0 ? void 0 : _a.movieTickets;
|
|
23
22
|
if (!Array.isArray(movieTickets)) {
|
|
24
|
-
throw new factory.errors.Argument('object.paymentMethod.movieTickets must be an array');
|
|
23
|
+
throw new factory.errors.Argument('movieTickets', 'object.paymentMethod.movieTickets must be an array');
|
|
25
24
|
}
|
|
26
25
|
// イベント1つのみ許可
|
|
27
|
-
const eventIds = [...new Set(movieTickets
|
|
26
|
+
const eventIds = [...new Set(movieTickets.map((t) => t.serviceOutput.reservationFor.id))];
|
|
28
27
|
if (eventIds.length !== 1) {
|
|
29
28
|
throw new factory.errors.Argument('movieTickets', 'Number of events must be 1');
|
|
30
29
|
}
|
|
31
|
-
//
|
|
32
|
-
const movieTicketIdentifiers = [...new Set(movieTickets
|
|
30
|
+
// 決済カードidentifierは1つのみ許可
|
|
31
|
+
const movieTicketIdentifiers = [...new Set(movieTickets.map((t) => t.identifier))];
|
|
33
32
|
if (movieTicketIdentifiers.length !== 1) {
|
|
34
33
|
throw new factory.errors.Argument('movieTickets', 'Number of movie ticket identifiers must be 1');
|
|
35
34
|
}
|
|
35
|
+
const movieTicketIdentifier = movieTicketIdentifiers[0];
|
|
36
|
+
// 決済カードaccessCodeは1つのみ許可(2023-06-23~)
|
|
37
|
+
const accessCodes = [...new Set(movieTickets.map((t) => t.accessCode))];
|
|
38
|
+
if (accessCodes.length !== 1) {
|
|
39
|
+
throw new factory.errors.Argument('movieTickets', 'Number of movie ticket accessCodes must be 1');
|
|
40
|
+
}
|
|
36
41
|
// ムビチケ系統の決済方法タイプは動的
|
|
37
42
|
const paymentMethodType = (_b = params.object.paymentMethod) === null || _b === void 0 ? void 0 : _b.typeOf;
|
|
38
43
|
if (typeof paymentMethodType !== 'string') {
|
|
@@ -47,7 +52,7 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
|
|
|
47
52
|
if (typeof sellerId !== 'string') {
|
|
48
53
|
throw new factory.errors.ArgumentNull('recipient.id');
|
|
49
54
|
}
|
|
50
|
-
const seller = yield repos.seller.findById({ id: sellerId });
|
|
55
|
+
const seller = yield repos.seller.findById({ id: sellerId }, ['paymentAccepted', 'project'], []);
|
|
51
56
|
const paymentAccepted = (_d = seller.paymentAccepted) === null || _d === void 0 ? void 0 : _d.some((a) => a.paymentMethodType === paymentMethodType);
|
|
52
57
|
if (paymentAccepted !== true) {
|
|
53
58
|
throw new factory.errors.Argument('recipient', 'payment not accepted');
|
|
@@ -56,11 +61,13 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
|
|
|
56
61
|
if (!useCheckMovieTicketBeforePay) {
|
|
57
62
|
return { accountsReceivablesByServiceType: [] };
|
|
58
63
|
}
|
|
59
|
-
const checkResult = yield (
|
|
64
|
+
const checkResult = yield checkByIdentifierIfNotYet({
|
|
65
|
+
movieTicketIdentifier,
|
|
60
66
|
movieTickets: movieTickets,
|
|
61
67
|
seller: seller,
|
|
62
68
|
screeningEvent: screeningEvent,
|
|
63
|
-
paymentServiceId
|
|
69
|
+
paymentServiceId,
|
|
70
|
+
useCheckByIdentifierIfNotYet
|
|
64
71
|
})(repos);
|
|
65
72
|
const accountsReceivablesByServiceType = [];
|
|
66
73
|
// 券種ごとに枚数が足りているか
|
|
@@ -69,7 +76,7 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
|
|
|
69
76
|
var _a, _b;
|
|
70
77
|
const requiredMovieTicketsCountByServiceType = movieTickets.filter((t) => t.serviceType === serviceType).length;
|
|
71
78
|
let availableMovieTicketsCountByServiceType = 0;
|
|
72
|
-
const ykknInfos = (_b = (_a = checkResult.purchaseNumberAuthResult.knyknrNoInfoOut) === null || _a === void 0 ? void 0 : _a.find((knyknrNoInfoOut) => knyknrNoInfoOut.knyknrNo ===
|
|
79
|
+
const ykknInfos = (_b = (_a = checkResult.purchaseNumberAuthResult.knyknrNoInfoOut) === null || _a === void 0 ? void 0 : _a.find((knyknrNoInfoOut) => knyknrNoInfoOut.knyknrNo === movieTicketIdentifier)) === null || _b === void 0 ? void 0 : _b.ykknInfo;
|
|
73
80
|
const ykknInfoOfServiceType = ykknInfos === null || ykknInfos === void 0 ? void 0 : ykknInfos.find((ykknInfo) => ykknInfo.ykknshTyp === serviceType);
|
|
74
81
|
const ykknKnshbtsmiNum = ykknInfoOfServiceType === null || ykknInfoOfServiceType === void 0 ? void 0 : ykknInfoOfServiceType.ykknKnshbtsmiNum;
|
|
75
82
|
if (typeof ykknKnshbtsmiNum === 'string') {
|
|
@@ -89,3 +96,37 @@ function validateMovieTicket(params, paymentServiceId, useCheckMovieTicketBefore
|
|
|
89
96
|
});
|
|
90
97
|
}
|
|
91
98
|
exports.validateMovieTicket = validateMovieTicket;
|
|
99
|
+
function checkByIdentifierIfNotYet(params) {
|
|
100
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
var _a;
|
|
102
|
+
let checkResult;
|
|
103
|
+
if (params.useCheckByIdentifierIfNotYet === true) {
|
|
104
|
+
// すでにCheckActionが存在すれば認証しない(2023-06-06~)
|
|
105
|
+
debug('searching alreadyCheckedActions...movieTicketIdentifier:', params.movieTicketIdentifier, 'screeningEvent.id:', params.screeningEvent.id);
|
|
106
|
+
const alreadyCheckedAction = yield repos.action.search({
|
|
107
|
+
limit: 1,
|
|
108
|
+
page: 1,
|
|
109
|
+
sort: { startDate: factory.sortType.Descending },
|
|
110
|
+
typeOf: { $eq: factory.actionType.CheckAction },
|
|
111
|
+
actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] },
|
|
112
|
+
object: {
|
|
113
|
+
typeOf: { $eq: factory.service.paymentService.PaymentServiceType.MovieTicket },
|
|
114
|
+
id: { $eq: params.paymentServiceId },
|
|
115
|
+
movieTickets: {
|
|
116
|
+
identifier: { $eq: params.movieTicketIdentifier },
|
|
117
|
+
serviceOutput: {
|
|
118
|
+
reservationFor: { id: { $eq: params.screeningEvent.id } } // 指定のイベントにおいて
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}, ['result'], []);
|
|
123
|
+
debug('alreadyCheckedAction found', alreadyCheckedAction, 'movieTicketIdentifier:', params.movieTicketIdentifier, 'screeningEvent.id:', params.screeningEvent.id);
|
|
124
|
+
checkResult = (_a = alreadyCheckedAction.shift()) === null || _a === void 0 ? void 0 : _a.result;
|
|
125
|
+
}
|
|
126
|
+
if (checkResult === undefined) {
|
|
127
|
+
debug('checkByIdentifier processing because movieTickets not checked yet...', checkResult);
|
|
128
|
+
checkResult = yield (0, checkByIdentifier_1.checkByIdentifier)(params)(repos);
|
|
129
|
+
}
|
|
130
|
+
return checkResult;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
@@ -49,7 +49,7 @@ interface IAuthorizeResult {
|
|
|
49
49
|
* MovieTicket承認
|
|
50
50
|
* オーソリサービスが存在するわけではないので、実質着券する
|
|
51
51
|
*/
|
|
52
|
-
declare function authorize(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, transaction: factory.assetTransaction.pay.ITransaction, paymentServiceId: string, useCheckMovieTicketBeforePay: boolean): (repos: {
|
|
52
|
+
declare function authorize(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, transaction: factory.assetTransaction.pay.ITransaction, paymentServiceId: string, useCheckMovieTicketBeforePay: boolean, useCheckByIdentifierIfNotYet: boolean): (repos: {
|
|
53
53
|
action: ActionRepo;
|
|
54
54
|
accountingReport: AccountingReportRepo;
|
|
55
55
|
event: EventRepo;
|
|
@@ -58,7 +58,7 @@ function checkMovieTicket(params) {
|
|
|
58
58
|
id: eventIds[0]
|
|
59
59
|
});
|
|
60
60
|
// ショップ情報取得
|
|
61
|
-
const seller = yield repos.seller.findById({ id: (_e = params.object[0]) === null || _e === void 0 ? void 0 : _e.seller.id });
|
|
61
|
+
const seller = yield repos.seller.findById({ id: (_e = params.object[0]) === null || _e === void 0 ? void 0 : _e.seller.id }, ['paymentAccepted', 'project'], []);
|
|
62
62
|
const paymentAccepted = (_f = seller.paymentAccepted) === null || _f === void 0 ? void 0 : _f.some((a) => a.paymentMethodType === paymentMethodType);
|
|
63
63
|
if (paymentAccepted !== true) {
|
|
64
64
|
throw new factory.errors.Argument('transactionId', 'payment not accepted');
|
|
@@ -102,7 +102,7 @@ exports.checkMovieTicket = checkMovieTicket;
|
|
|
102
102
|
* MovieTicket承認
|
|
103
103
|
* オーソリサービスが存在するわけではないので、実質着券する
|
|
104
104
|
*/
|
|
105
|
-
function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBeforePay) {
|
|
105
|
+
function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBeforePay, useCheckByIdentifierIfNotYet) {
|
|
106
106
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
107
107
|
var _a, _b;
|
|
108
108
|
let accountId;
|
|
@@ -110,7 +110,7 @@ function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBef
|
|
|
110
110
|
let accountsReceivablesByServiceType = [];
|
|
111
111
|
try {
|
|
112
112
|
// MovieTicket決済の場合、認証
|
|
113
|
-
const validateMovieTicketResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckMovieTicketBeforePay)(repos);
|
|
113
|
+
const validateMovieTicketResult = yield (0, validation_1.validateMovieTicket)(params, paymentServiceId, useCheckMovieTicketBeforePay, useCheckByIdentifierIfNotYet)(repos);
|
|
114
114
|
accountsReceivablesByServiceType = validateMovieTicketResult.accountsReceivablesByServiceType;
|
|
115
115
|
const paymentMethod = transaction.object.paymentMethod;
|
|
116
116
|
const paymentMethodType = String(paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.typeOf);
|
|
@@ -302,7 +302,7 @@ function payActionParams2seatInfoSyncIn(params) {
|
|
|
302
302
|
// イベント取得属性最適化(2023-01-23~)
|
|
303
303
|
// const event = await repos.event.findById<factory.eventType.ScreeningEvent>({ id: eventIds[0] });
|
|
304
304
|
const event = yield repos.event.findMinimizedIndividualEventById({ id: eventIds[0] });
|
|
305
|
-
const seller = yield repos.seller.findById({ id: String((_d = params.recipient) === null || _d === void 0 ? void 0 : _d.id) });
|
|
305
|
+
const seller = yield repos.seller.findById({ id: String((_d = params.recipient) === null || _d === void 0 ? void 0 : _d.id) }, ['paymentAccepted', 'project'], []);
|
|
306
306
|
// 全購入管理番号のMovieTicketをマージ
|
|
307
307
|
const movieTickets = params.object.reduce((a, b) => [...a, ...(Array.isArray(b.movieTickets)) ? b.movieTickets : []], []);
|
|
308
308
|
const sellerCredentials = yield (0, getCredentials_1.getCredentials)({ paymentMethodType, seller, paymentServiceId })(repos);
|
|
@@ -98,6 +98,7 @@ function cancelPengindIfNotYet(params, now) {
|
|
|
98
98
|
yield processUnlockSeat({
|
|
99
99
|
reservation: {
|
|
100
100
|
id: cancelingSubReservation.id,
|
|
101
|
+
project: { id: reserveTransaction.project.id },
|
|
101
102
|
reservedTicket: cancelingSubReservation.reservedTicket,
|
|
102
103
|
subReservation: cancelingSubReservation.subReservation,
|
|
103
104
|
reservationFor: {
|
|
@@ -204,6 +205,7 @@ function cancelReservation(actionAttributesList) {
|
|
|
204
205
|
yield processUnlockSeat({
|
|
205
206
|
reservation: {
|
|
206
207
|
id: cancelingSubReservation.id,
|
|
208
|
+
project: { id: reserveTransaction.project.id },
|
|
207
209
|
reservedTicket: cancelingSubReservation.reservedTicket,
|
|
208
210
|
subReservation: cancelingSubReservation.subReservation,
|
|
209
211
|
reservationFor: {
|
|
@@ -255,6 +257,7 @@ function cancelReservation(actionAttributesList) {
|
|
|
255
257
|
yield processUnlockSeat({
|
|
256
258
|
reservation: {
|
|
257
259
|
id: reservation.id,
|
|
260
|
+
project: { id: reservation.project.id },
|
|
258
261
|
reservedTicket: reservation.reservedTicket,
|
|
259
262
|
subReservation: reservation.subReservation,
|
|
260
263
|
reservationFor: {
|
|
@@ -344,13 +347,16 @@ function processUnlockSeat(params) {
|
|
|
344
347
|
.toDate();
|
|
345
348
|
// 予約IDでロックされていれば解除
|
|
346
349
|
let lockKey = {
|
|
350
|
+
project: reservation.project,
|
|
347
351
|
eventId: reservation.reservationFor.id,
|
|
348
352
|
startDate: eventStartDate,
|
|
353
|
+
hasTicketedSeat: false,
|
|
349
354
|
offer: {
|
|
350
355
|
itemOffered: { serviceOutput: { id: reservation.id } },
|
|
351
356
|
seatNumber: '',
|
|
352
357
|
seatSection: ''
|
|
353
|
-
}
|
|
358
|
+
},
|
|
359
|
+
holder: params.expectedHolder
|
|
354
360
|
};
|
|
355
361
|
let holder = yield repos.stockHolder.getHolder(lockKey);
|
|
356
362
|
if (holder === params.expectedHolder) {
|
|
@@ -360,12 +366,15 @@ function processUnlockSeat(params) {
|
|
|
360
366
|
const ticketedSeat = reservation.reservedTicket.ticketedSeat;
|
|
361
367
|
if (ticketedSeat !== undefined) {
|
|
362
368
|
lockKey = {
|
|
369
|
+
project: reservation.project,
|
|
363
370
|
eventId: reservation.reservationFor.id,
|
|
364
371
|
startDate: eventStartDate,
|
|
372
|
+
hasTicketedSeat: true,
|
|
365
373
|
offer: {
|
|
366
374
|
seatNumber: ticketedSeat.seatNumber,
|
|
367
375
|
seatSection: ticketedSeat.seatSection
|
|
368
|
-
}
|
|
376
|
+
},
|
|
377
|
+
holder: params.expectedHolder
|
|
369
378
|
};
|
|
370
379
|
holder = yield repos.stockHolder.getHolder(lockKey);
|
|
371
380
|
if (holder === params.expectedHolder) {
|
|
@@ -381,12 +390,15 @@ function processUnlockSeat(params) {
|
|
|
381
390
|
const seatNumber4sub = (_d = (_c = subReservation.reservedTicket) === null || _c === void 0 ? void 0 : _c.ticketedSeat) === null || _d === void 0 ? void 0 : _d.seatNumber;
|
|
382
391
|
if (typeof seatSection4sub === 'string' && typeof seatNumber4sub === 'string') {
|
|
383
392
|
const lockKey4sub = {
|
|
393
|
+
project: reservation.project,
|
|
384
394
|
eventId: reservation.reservationFor.id,
|
|
385
395
|
startDate: eventStartDate,
|
|
396
|
+
hasTicketedSeat: true,
|
|
386
397
|
offer: {
|
|
387
398
|
seatNumber: seatNumber4sub,
|
|
388
399
|
seatSection: seatSection4sub
|
|
389
|
-
}
|
|
400
|
+
},
|
|
401
|
+
holder: params.expectedHolder
|
|
390
402
|
};
|
|
391
403
|
const holder4sub = yield repos.stockHolder.getHolder(lockKey4sub);
|
|
392
404
|
if (holder4sub === params.expectedHolder) {
|
|
@@ -97,17 +97,25 @@ function reserveIfNotYet(params, options) {
|
|
|
97
97
|
if (reserveTransaction.object.disablePendingReservations === true) {
|
|
98
98
|
const reservationFor = reserveTransaction.object.reservationFor;
|
|
99
99
|
const subReservations = reserveTransaction.object.subReservation;
|
|
100
|
-
if (Array.isArray(subReservations)
|
|
101
|
-
|
|
102
|
-
yield
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
100
|
+
if (Array.isArray(subReservations) && typeof (reservationFor === null || reservationFor === void 0 ? void 0 : reservationFor.typeOf) === 'string') {
|
|
101
|
+
// confirmManyに変更(2023-06-13~)
|
|
102
|
+
const confirmManyIfNotExistResult = yield repos.reservation.confirmManyIfNotExist({
|
|
103
|
+
subReservation: subReservations,
|
|
104
|
+
reservationFor,
|
|
105
|
+
underName,
|
|
106
|
+
broker: reserveTransaction.object.broker,
|
|
107
|
+
issuedThrough: reserveTransaction.object.issuedThrough
|
|
108
|
+
});
|
|
109
|
+
debug('confirmManyIfNotExistResult:', confirmManyIfNotExistResult, 'reservationNumber:', reservationPackage.reservationNumber);
|
|
110
|
+
// await Promise.all(subReservations.map(async (subReservation) => {
|
|
111
|
+
// await repos.reservation.confirmByIdIfNotExist({
|
|
112
|
+
// reservation: subReservation,
|
|
113
|
+
// reservationFor,
|
|
114
|
+
// underName,
|
|
115
|
+
// broker: reserveTransaction.object.broker,
|
|
116
|
+
// issuedThrough: reserveTransaction.object.issuedThrough
|
|
117
|
+
// });
|
|
118
|
+
// }));
|
|
111
119
|
}
|
|
112
120
|
}
|
|
113
121
|
else {
|
|
@@ -32,7 +32,7 @@ function call(data) {
|
|
|
32
32
|
}
|
|
33
33
|
yield AggregationService.event.aggregateScreeningEvent(data)({
|
|
34
34
|
event: new event_1.MongoRepository(settings.connection),
|
|
35
|
-
stockHolder: new stockHolder_1.StockHolderRepository(settings.redisClient),
|
|
35
|
+
stockHolder: new stockHolder_1.StockHolderRepository(settings.redisClient, settings.connection),
|
|
36
36
|
offer: new offer_1.MongoRepository(settings.connection),
|
|
37
37
|
offerCatalog: new offerCatalog_1.MongoRepository(settings.connection),
|
|
38
38
|
offerRateLimit: new offer_2.RedisRepository(settings.redisClient),
|
|
@@ -30,7 +30,7 @@ function call(data) {
|
|
|
30
30
|
const assetTransactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
|
|
31
31
|
const taskRepo = new task_1.MongoRepository(settings.connection);
|
|
32
32
|
const reservationRepo = new reservation_1.MongoRepository(settings.connection);
|
|
33
|
-
const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient);
|
|
33
|
+
const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient, settings.connection);
|
|
34
34
|
const offerRateLimitRepo = new offer_1.RedisRepository(settings.redisClient);
|
|
35
35
|
// アクション数は予約番号単位で1しかありえないはず(2023-06-05~)
|
|
36
36
|
if (data.actionAttributes.length !== 1) {
|
|
@@ -30,7 +30,7 @@ function call(data) {
|
|
|
30
30
|
const reservationRepo = new reservation_1.MongoRepository(settings.connection);
|
|
31
31
|
const taskRepo = new task_1.MongoRepository(settings.connection);
|
|
32
32
|
const transactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
|
|
33
|
-
const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient);
|
|
33
|
+
const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient, settings.connection);
|
|
34
34
|
const offerRateLimitRepo = new offer_1.RedisRepository(settings.redisClient);
|
|
35
35
|
yield ReserveService.cancelReservation(data.actionAttributes)({
|
|
36
36
|
action: actionRepo,
|
|
@@ -16,6 +16,7 @@ const assetTransaction_1 = require("../../repo/assetTransaction");
|
|
|
16
16
|
const order_1 = require("../../repo/order");
|
|
17
17
|
const ownershipInfo_1 = require("../../repo/ownershipInfo");
|
|
18
18
|
const reservation_1 = require("../../repo/reservation");
|
|
19
|
+
const task_1 = require("../../repo/task");
|
|
19
20
|
const transaction_1 = require("../../repo/transaction");
|
|
20
21
|
const TransactionService = require("../transaction");
|
|
21
22
|
/**
|
|
@@ -30,6 +31,7 @@ function call(data) {
|
|
|
30
31
|
order: new order_1.MongoRepository(settings.connection),
|
|
31
32
|
ownershipInfo: new ownershipInfo_1.MongoRepository(settings.connection),
|
|
32
33
|
reservation: new reservation_1.MongoRepository(settings.connection),
|
|
34
|
+
task: new task_1.MongoRepository(settings.connection),
|
|
33
35
|
transaction: new transaction_1.MongoRepository(settings.connection)
|
|
34
36
|
});
|
|
35
37
|
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as factory from '../../factory';
|
|
2
|
+
import { IConnectionSettings } from '../task';
|
|
3
|
+
export type IOperation<T> = (settings: IConnectionSettings) => Promise<T>;
|
|
4
|
+
/**
|
|
5
|
+
* タスク実行関数
|
|
6
|
+
*/
|
|
7
|
+
export declare function call(data: factory.task.onEventChanged.IData): IOperation<void>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.call = void 0;
|
|
13
|
+
const event_1 = require("../../repo/event");
|
|
14
|
+
const project_1 = require("../../repo/project");
|
|
15
|
+
const task_1 = require("../../repo/task");
|
|
16
|
+
const offer_1 = require("../offer");
|
|
17
|
+
/**
|
|
18
|
+
* タスク実行関数
|
|
19
|
+
*/
|
|
20
|
+
function call(data) {
|
|
21
|
+
return (settings) => __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
yield (0, offer_1.onEventChanged)(data)({
|
|
23
|
+
event: new event_1.MongoRepository(settings.connection),
|
|
24
|
+
project: new project_1.MongoRepository(settings.connection),
|
|
25
|
+
task: new task_1.MongoRepository(settings.connection)
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
exports.call = call;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as factory from '../../factory';
|
|
2
|
+
import { IConnectionSettings } from '../task';
|
|
3
|
+
export type IOperation<T> = (settings: IConnectionSettings) => Promise<T>;
|
|
4
|
+
/**
|
|
5
|
+
* タスク実行関数
|
|
6
|
+
*/
|
|
7
|
+
export declare function call(data: factory.task.onResourceUpdated.IData): IOperation<void>;
|