@chevre/domain 21.27.0-alpha.1 → 21.27.0-alpha.10
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/transaction/processPlaceOrder.ts +2 -4
- package/example/src/chevre/validateCheckMovieTicketActions.ts +70 -0
- package/lib/chevre/credentials.d.ts +7 -0
- package/lib/chevre/credentials.js +10 -6
- package/lib/chevre/repo/action.d.ts +8 -0
- package/lib/chevre/repo/action.js +22 -4
- package/lib/chevre/repo/mongoose/schemas/action.js +3 -2
- package/lib/chevre/repo/transaction.js +8 -1
- package/lib/chevre/service/assetTransaction/pay/potentialActions.d.ts +1 -11
- package/lib/chevre/service/assetTransaction/pay/potentialActions.js +1 -11
- package/lib/chevre/service/assetTransaction/pay.d.ts +1 -4
- package/lib/chevre/service/assetTransaction/pay.js +18 -29
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +1 -1
- package/lib/chevre/service/assetTransaction/reserve/factory.js +9 -8
- package/lib/chevre/service/assetTransaction/reserve.js +2 -1
- package/lib/chevre/service/event.js +2 -18
- package/lib/chevre/service/notification.js +0 -102
- package/lib/chevre/service/order/confirmPayTransaction.d.ts +1 -3
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +0 -4
- package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +2 -9
- package/lib/chevre/service/payment/any/onRefund.d.ts +1 -3
- package/lib/chevre/service/payment/any/onRefund.js +69 -62
- package/lib/chevre/service/payment/any.d.ts +0 -1
- package/lib/chevre/service/payment/any.js +1 -1
- package/lib/chevre/service/payment/creditCard.d.ts +0 -1
- package/lib/chevre/service/payment/creditCard.js +11 -29
- package/lib/chevre/service/payment/faceToFace.js +2 -1
- package/lib/chevre/service/payment/movieTicket/checkByIdentifier.js +1 -9
- package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket.js +31 -28
- package/lib/chevre/service/reserve/factory.d.ts +10 -8
- package/lib/chevre/service/reserve/factory.js +15 -10
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +28 -28
- package/lib/chevre/service/reserve.d.ts +1 -2
- package/lib/chevre/service/reserve.js +1 -4
- package/lib/chevre/service/task/confirmPayTransaction.js +1 -2
- package/lib/chevre/service/task/returnPayTransaction.js +9 -5
- package/lib/chevre/service/transaction/placeOrderInProgress/start.d.ts +1 -3
- package/lib/chevre/service/transaction/placeOrderInProgress/start.js +1 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateStartRequest.js +8 -11
- package/lib/chevre/service/transaction/returnOrder/preStart.js +0 -18
- package/lib/chevre/settings.d.ts +1 -4
- package/lib/chevre/settings.js +4 -5
- package/package.json +3 -3
|
@@ -37,8 +37,7 @@ async function main() {
|
|
|
37
37
|
object: {
|
|
38
38
|
clientUser: <any>{ client_id: CLIENT_ID }
|
|
39
39
|
},
|
|
40
|
-
seller: { id: '59d20831e53ebc2b4e774466' }
|
|
41
|
-
validateEligibleCustomerType: false
|
|
40
|
+
seller: { id: '59d20831e53ebc2b4e774466' }
|
|
42
41
|
})({
|
|
43
42
|
member: await chevre.repository.Member.createInstance(mongoose.connection),
|
|
44
43
|
projectMakesOffer: await chevre.repository.ProjectMakesOffer.createInstance(mongoose.connection),
|
|
@@ -117,8 +116,7 @@ async function main() {
|
|
|
117
116
|
options: {
|
|
118
117
|
useCancelPayTransactionOnFailed: false,
|
|
119
118
|
useCheckMovieTicketBeforePay: false,
|
|
120
|
-
useCheckByIdentifierIfNotYet: false
|
|
121
|
-
useSearchTrade4accountId: false
|
|
119
|
+
useCheckByIdentifierIfNotYet: false
|
|
122
120
|
}
|
|
123
121
|
})({
|
|
124
122
|
accountingReport: await chevre.repository.AccountingReport.createInstance(mongoose.connection),
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// tslint:disable:no-console
|
|
2
|
+
import * as moment from 'moment';
|
|
3
|
+
import * as mongoose from 'mongoose';
|
|
4
|
+
|
|
5
|
+
import { chevre } from '../../../lib/index';
|
|
6
|
+
|
|
7
|
+
// tslint:disable-next-line:max-func-body-length
|
|
8
|
+
async function main() {
|
|
9
|
+
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
10
|
+
|
|
11
|
+
const actionRepo = await chevre.repository.Action.createInstance(mongoose.connection);
|
|
12
|
+
|
|
13
|
+
const cursor = actionRepo.getCursor(
|
|
14
|
+
{
|
|
15
|
+
typeOf: { $eq: chevre.factory.actionType.CheckAction },
|
|
16
|
+
'object.typeOf': { $eq: chevre.factory.service.paymentService.PaymentServiceType.MovieTicket },
|
|
17
|
+
// 'project.id': { $eq: project.id },
|
|
18
|
+
startDate: {
|
|
19
|
+
$gte: moment()
|
|
20
|
+
// tslint:disable-next-line:no-magic-numbers
|
|
21
|
+
.add(-90, 'days')
|
|
22
|
+
.toDate()
|
|
23
|
+
// $lte: moment('2023-08-01T21:20:43.133Z')
|
|
24
|
+
// .toDate()
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
startDate: 1,
|
|
29
|
+
object: 1,
|
|
30
|
+
project: 1,
|
|
31
|
+
instrument: 1,
|
|
32
|
+
purpose: 1
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
console.log('actions found');
|
|
36
|
+
|
|
37
|
+
let i = 0;
|
|
38
|
+
let updateCount = 0;
|
|
39
|
+
const actions: Pick<
|
|
40
|
+
chevre.factory.action.check.paymentMethod.movieTicket.IAction,
|
|
41
|
+
'startDate' | 'object' | 'project' | 'instrument' | 'id' | 'purpose'
|
|
42
|
+
>[] = [];
|
|
43
|
+
await cursor.eachAsync(async (doc) => {
|
|
44
|
+
i += 1;
|
|
45
|
+
const action: Pick<
|
|
46
|
+
chevre.factory.action.check.paymentMethod.movieTicket.IAction,
|
|
47
|
+
'startDate' | 'object' | 'project' | 'instrument' | 'id' | 'purpose'
|
|
48
|
+
> = doc.toObject();
|
|
49
|
+
|
|
50
|
+
const alreadyMigrated = typeof action.purpose?.id === 'string'
|
|
51
|
+
&& action.purpose?.id.length > 0;
|
|
52
|
+
|
|
53
|
+
if (alreadyMigrated) {
|
|
54
|
+
console.log('already exist.', action.project.id, action.id, action.purpose?.typeOf, action.purpose?.id, action.startDate, i);
|
|
55
|
+
} else {
|
|
56
|
+
console.log('updating...', action.project.id, action.id, action.purpose?.typeOf, action.purpose?.id, action.startDate, i);
|
|
57
|
+
updateCount += 1;
|
|
58
|
+
actions.push(action);
|
|
59
|
+
console.log('updated.', action.project.id, action.id, action.purpose?.typeOf, action.purpose?.id, action.startDate, i);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
console.log('invalidAction:', actions);
|
|
64
|
+
console.log(i, 'actions checked');
|
|
65
|
+
console.log(updateCount, 'actions updated');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
main()
|
|
69
|
+
.then()
|
|
70
|
+
.catch(console.error);
|
|
@@ -33,7 +33,14 @@ export declare const credentials: {
|
|
|
33
33
|
accessTokenAlert: string;
|
|
34
34
|
};
|
|
35
35
|
movieticketReserve: {
|
|
36
|
+
/**
|
|
37
|
+
* 着券時タイムアウト
|
|
38
|
+
*/
|
|
36
39
|
timeout: number;
|
|
40
|
+
/**
|
|
41
|
+
* 認証時タイムアウト
|
|
42
|
+
*/
|
|
43
|
+
timeoutCheck: number;
|
|
37
44
|
};
|
|
38
45
|
sendGrid: {
|
|
39
46
|
apiKey: string | undefined;
|
|
@@ -29,7 +29,7 @@ exports.credentials = {
|
|
|
29
29
|
},
|
|
30
30
|
gmo: {
|
|
31
31
|
// tslint:disable-next-line:no-magic-numbers
|
|
32
|
-
timeout: (typeof process.env.GMO_TIMEOUT === 'string') ? Number(process.env.GMO_TIMEOUT) :
|
|
32
|
+
timeout: (typeof process.env.GMO_TIMEOUT === 'string') ? Number(process.env.GMO_TIMEOUT) : 5000,
|
|
33
33
|
useFetch: process.env.GMO_USE_FETCH === '1'
|
|
34
34
|
},
|
|
35
35
|
lineNotify: {
|
|
@@ -38,16 +38,20 @@ exports.credentials = {
|
|
|
38
38
|
accessTokenAlert: process.env.LINE_NOTIFY_ACCESS_TOKEN_ALERT
|
|
39
39
|
},
|
|
40
40
|
movieticketReserve: {
|
|
41
|
+
/**
|
|
42
|
+
* 着券時タイムアウト
|
|
43
|
+
*/
|
|
41
44
|
// tslint:disable-next-line:no-magic-numbers
|
|
42
|
-
timeout: (typeof process.env.MVTK_TIMEOUT === 'string') ? Number(process.env.MVTK_TIMEOUT) :
|
|
45
|
+
timeout: (typeof process.env.MVTK_TIMEOUT === 'string') ? Number(process.env.MVTK_TIMEOUT) : 5000,
|
|
46
|
+
/**
|
|
47
|
+
* 認証時タイムアウト
|
|
48
|
+
*/
|
|
49
|
+
// tslint:disable-next-line:no-magic-numbers
|
|
50
|
+
timeoutCheck: (typeof process.env.MVTK_TIMEOUT_CHECK === 'string') ? Number(process.env.MVTK_TIMEOUT_CHECK) : 5000
|
|
43
51
|
},
|
|
44
52
|
sendGrid: {
|
|
45
53
|
apiKey: process.env.SENDGRID_API_KEY
|
|
46
54
|
},
|
|
47
|
-
// discontinue(2023-12-12~)
|
|
48
|
-
// hub: {
|
|
49
|
-
// clientId: <string>process.env.HUB_CLIENT_ID
|
|
50
|
-
// },
|
|
51
55
|
jwt: {
|
|
52
56
|
secret: process.env.TOKEN_SECRET,
|
|
53
57
|
issuer: process.env.RESOURCE_SERVER_IDENTIFIER
|
|
@@ -83,6 +83,14 @@ export declare class MongoRepository {
|
|
|
83
83
|
typeOf: factory.actionType;
|
|
84
84
|
id: string;
|
|
85
85
|
}): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* アクション失敗
|
|
88
|
+
*/
|
|
89
|
+
giveUpWithObject(params: {
|
|
90
|
+
typeOf: factory.actionType;
|
|
91
|
+
id: string;
|
|
92
|
+
error: Error;
|
|
93
|
+
}): Promise<IAction<factory.actionType>>;
|
|
86
94
|
/**
|
|
87
95
|
* アクション失敗
|
|
88
96
|
*/
|
|
@@ -535,16 +535,34 @@ class MongoRepository {
|
|
|
535
535
|
}
|
|
536
536
|
});
|
|
537
537
|
}
|
|
538
|
+
/**
|
|
539
|
+
* アクション失敗
|
|
540
|
+
*/
|
|
541
|
+
giveUpWithObject(params) {
|
|
542
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
543
|
+
const actionError = Object.assign(Object.assign({}, params.error), { message: params.error.message, name: params.error.name });
|
|
544
|
+
const doc = yield this.actionModel.findOneAndUpdate({
|
|
545
|
+
typeOf: params.typeOf,
|
|
546
|
+
_id: params.id
|
|
547
|
+
}, {
|
|
548
|
+
actionStatus: factory.actionStatusType.FailedActionStatus,
|
|
549
|
+
error: actionError,
|
|
550
|
+
endDate: new Date()
|
|
551
|
+
}, { new: true })
|
|
552
|
+
.select({ __v: 0, createdAt: 0, updatedAt: 0 })
|
|
553
|
+
.exec();
|
|
554
|
+
if (doc === null) {
|
|
555
|
+
throw new factory.errors.NotFound(this.actionModel.modelName);
|
|
556
|
+
}
|
|
557
|
+
return doc.toObject();
|
|
558
|
+
});
|
|
559
|
+
}
|
|
538
560
|
/**
|
|
539
561
|
* アクション失敗
|
|
540
562
|
*/
|
|
541
563
|
giveUp(params) {
|
|
542
564
|
return __awaiter(this, void 0, void 0, function* () {
|
|
543
565
|
const actionError = Object.assign(Object.assign({}, params.error), { message: params.error.message, name: params.error.name });
|
|
544
|
-
// const actionError: Object = params.error;
|
|
545
|
-
// if (params.error instanceof Error) {
|
|
546
|
-
// actionError = { ...params.error, message: params.error.message, name: params.error.name };
|
|
547
|
-
// }
|
|
548
566
|
const doc = yield this.actionModel.findOneAndUpdate({
|
|
549
567
|
typeOf: params.typeOf,
|
|
550
568
|
_id: params.id
|
|
@@ -24,8 +24,9 @@ const schemaDefinition = {
|
|
|
24
24
|
fromLocation: mongoose_1.SchemaTypes.Mixed,
|
|
25
25
|
toLocation: mongoose_1.SchemaTypes.Mixed,
|
|
26
26
|
instrument: mongoose_1.SchemaTypes.Mixed,
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
location: mongoose_1.SchemaTypes.Mixed,
|
|
28
|
+
replacer: mongoose_1.SchemaTypes.Mixed,
|
|
29
|
+
targetCollection: mongoose_1.SchemaTypes.Mixed // add targetCollection(2024-03-19~)
|
|
29
30
|
};
|
|
30
31
|
const schemaOptions = {
|
|
31
32
|
autoIndex: settings_1.MONGO_AUTO_INDEX,
|
|
@@ -242,10 +242,17 @@ class MongoRepository {
|
|
|
242
242
|
else {
|
|
243
243
|
expires = params.expires;
|
|
244
244
|
}
|
|
245
|
-
|
|
245
|
+
const transaction = yield this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate, endDate: undefined, expires, tasksExportAction: {
|
|
246
246
|
actionStatus: factory.actionStatusType.PotentialActionStatus
|
|
247
247
|
}, tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported }))
|
|
248
248
|
.then((doc) => doc.toObject());
|
|
249
|
+
// 取引開始時にも取引イベントエミッター連携(2024-03-21~)
|
|
250
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
251
|
+
id: transaction.id,
|
|
252
|
+
typeOf: transaction.typeOf,
|
|
253
|
+
status: factory.transactionStatusType.InProgress
|
|
254
|
+
});
|
|
255
|
+
return transaction;
|
|
249
256
|
});
|
|
250
257
|
}
|
|
251
258
|
/**
|
|
@@ -7,14 +7,4 @@ declare function createPayActions(params: {
|
|
|
7
7
|
acceptedOffersMovieTicketUsed: IAcceptedOfferMovieTicketUsed[];
|
|
8
8
|
};
|
|
9
9
|
}): factory.action.trade.pay.IAttributes[];
|
|
10
|
-
|
|
11
|
-
* 取引のポストアクションを作成する
|
|
12
|
-
*/
|
|
13
|
-
declare function createPotentialActions(params: {
|
|
14
|
-
transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Pay>;
|
|
15
|
-
potentialActions?: factory.assetTransaction.pay.IPotentialActionsParams;
|
|
16
|
-
order: Pick<factory.order.IOrder, 'typeOf' | 'confirmationNumber' | 'orderNumber'> & {
|
|
17
|
-
acceptedOffersMovieTicketUsed: IAcceptedOfferMovieTicketUsed[];
|
|
18
|
-
};
|
|
19
|
-
}): factory.assetTransaction.IPotentialActions<factory.assetTransactionType.Pay>;
|
|
20
|
-
export { createPayActions, createPotentialActions, IAcceptedOfferMovieTicketUsed };
|
|
10
|
+
export { createPayActions, IAcceptedOfferMovieTicketUsed };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createPayActions = void 0;
|
|
4
4
|
const factory = require("../../../factory");
|
|
5
5
|
const createPayObjectServiceOutput_1 = require("./potentialActions/createPayObjectServiceOutput");
|
|
6
6
|
function createPayActions(params) {
|
|
@@ -151,13 +151,3 @@ function createInformPaymentActions(params) {
|
|
|
151
151
|
}
|
|
152
152
|
return informPaymentActions;
|
|
153
153
|
}
|
|
154
|
-
/**
|
|
155
|
-
* 取引のポストアクションを作成する
|
|
156
|
-
*/
|
|
157
|
-
function createPotentialActions(params) {
|
|
158
|
-
const payActionAttributesList = createPayActions(params);
|
|
159
|
-
return {
|
|
160
|
-
pay: payActionAttributesList
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
exports.createPotentialActions = createPotentialActions;
|
|
@@ -94,16 +94,13 @@ export import IPaymentAgencyTransaction = CreditCardPayment.IPaymentAgencyTransa
|
|
|
94
94
|
export declare function start(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, options: {
|
|
95
95
|
useCheckMovieTicketBeforePay: boolean;
|
|
96
96
|
useCheckByIdentifierIfNotYet: boolean;
|
|
97
|
-
searchTrade4accountId: boolean;
|
|
98
97
|
pendingPaymentAgencyTransaction?: CreditCardPayment.IPaymentAgencyTransaction;
|
|
99
98
|
}): IStartOperation<factory.assetTransaction.pay.ITransaction>;
|
|
100
99
|
/**
|
|
101
100
|
* 取引確定
|
|
102
101
|
*/
|
|
103
102
|
export declare function confirm(params: factory.assetTransaction.pay.IConfirmParams & {
|
|
104
|
-
options: {
|
|
105
|
-
minimizePotentialActions: boolean;
|
|
106
|
-
};
|
|
103
|
+
options: {};
|
|
107
104
|
}): IConfirmOperation<void>;
|
|
108
105
|
export declare function fixOrderAsPurpose(params: {
|
|
109
106
|
potentialActions: {
|
|
@@ -18,7 +18,6 @@ const MovieTicketPayment = require("../payment/movieTicket");
|
|
|
18
18
|
const PaymentCardPayment = require("../payment/paymentCard");
|
|
19
19
|
const validation_1 = require("./pay/account/validation");
|
|
20
20
|
const factory_1 = require("./pay/factory");
|
|
21
|
-
const potentialActions_1 = require("./pay/potentialActions");
|
|
22
21
|
const debug = createDebug('chevre-domain:service:assetTransaction');
|
|
23
22
|
/**
|
|
24
23
|
* 外部決済ロケーション発行
|
|
@@ -42,7 +41,7 @@ function publishPaymentUrl(params) {
|
|
|
42
41
|
let result;
|
|
43
42
|
switch (paymentServiceType) {
|
|
44
43
|
case factory.service.paymentService.PaymentServiceType.CreditCard:
|
|
45
|
-
const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, {
|
|
44
|
+
const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, { processPublishPaymentUrl: true })(repos);
|
|
46
45
|
let paymentUrl;
|
|
47
46
|
// 3DS拡張(2024-01-02~)
|
|
48
47
|
const retUrl = (_c = params.object.paymentMethod.creditCard) === null || _c === void 0 ? void 0 : _c.retUrl;
|
|
@@ -148,7 +147,7 @@ function start(params, options) {
|
|
|
148
147
|
break;
|
|
149
148
|
case factory.service.paymentService.PaymentServiceType.CreditCard:
|
|
150
149
|
transaction =
|
|
151
|
-
yield processAuthorizeCreditCard(params, transaction, String(paymentService === null || paymentService === void 0 ? void 0 : paymentService.id), Object.assign({
|
|
150
|
+
yield processAuthorizeCreditCard(params, transaction, String(paymentService === null || paymentService === void 0 ? void 0 : paymentService.id), Object.assign({}, (options.pendingPaymentAgencyTransaction !== undefined)
|
|
152
151
|
? { pendingPaymentAgencyTransaction: options.pendingPaymentAgencyTransaction }
|
|
153
152
|
: undefined))(repos);
|
|
154
153
|
break;
|
|
@@ -306,7 +305,7 @@ function processAuthorizeAccount(params, transaction, paymentServiceId) {
|
|
|
306
305
|
}
|
|
307
306
|
function processAuthorizeCreditCard(params, transaction, paymentServiceId, options) {
|
|
308
307
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
309
|
-
const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, Object.assign({ processPublishPaymentUrl: false
|
|
308
|
+
const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, Object.assign({ processPublishPaymentUrl: false }, (options.pendingPaymentAgencyTransaction !== undefined)
|
|
310
309
|
? { pendingPaymentAgencyTransaction: options.pendingPaymentAgencyTransaction }
|
|
311
310
|
: undefined))(repos);
|
|
312
311
|
return saveAuthorizeResult({
|
|
@@ -375,32 +374,22 @@ function confirm(params) {
|
|
|
375
374
|
throw new factory.errors.ArgumentNull('potentialActions.pay.purpose');
|
|
376
375
|
}
|
|
377
376
|
let potentialActions;
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
throw new factory.errors.NotFound(factory.order.OrderType.Order);
|
|
389
|
-
}
|
|
390
|
-
const payActionData4order = {
|
|
391
|
-
object: { paymentMethod: { paymentMethodId: transaction.transactionNumber } },
|
|
392
|
-
purpose: { confirmationNumber, orderNumber, typeOf: factory.order.OrderType.Order }
|
|
393
|
-
};
|
|
394
|
-
potentialActions = { pay: [payActionData4order] };
|
|
395
|
-
}
|
|
396
|
-
else {
|
|
397
|
-
const order = yield fixOrderAsPurpose({ potentialActions: { pay: { purpose: { confirmationNumber, orderNumber } } } }, transaction)(repos);
|
|
398
|
-
potentialActions = (0, potentialActions_1.createPotentialActions)({
|
|
399
|
-
transaction: transaction,
|
|
400
|
-
potentialActions: params.potentialActions,
|
|
401
|
-
order
|
|
402
|
-
});
|
|
377
|
+
// 注文検証
|
|
378
|
+
const existingOrders = yield repos.order.search({
|
|
379
|
+
limit: 1,
|
|
380
|
+
page: 1,
|
|
381
|
+
project: { id: { $eq: transaction.project.id } },
|
|
382
|
+
confirmationNumbers: [confirmationNumber],
|
|
383
|
+
orderNumbers: [orderNumber]
|
|
384
|
+
}, { orderNumber: 1 });
|
|
385
|
+
if (existingOrders.length === 0) {
|
|
386
|
+
throw new factory.errors.NotFound(factory.order.OrderType.Order);
|
|
403
387
|
}
|
|
388
|
+
const payActionData4order = {
|
|
389
|
+
object: { paymentMethod: { paymentMethodId: transaction.transactionNumber } },
|
|
390
|
+
purpose: { confirmationNumber, orderNumber, typeOf: factory.order.OrderType.Order }
|
|
391
|
+
};
|
|
392
|
+
potentialActions = { pay: [payActionData4order] };
|
|
404
393
|
yield repos.assetTransaction.confirm(Object.assign({ typeOf: factory.assetTransactionType.Pay, id: transaction.id, result: {}, potentialActions: potentialActions }, (typeof overwritingPaymentMethodIdentifier === 'string')
|
|
405
394
|
? { object: { paymentMethod: { identifier: overwritingPaymentMethodIdentifier } } }
|
|
406
395
|
: undefined));
|
|
@@ -52,7 +52,7 @@ export declare function createAdditionalTicketText(params: {
|
|
|
52
52
|
reservedTicket: factory.reservation.ITicket;
|
|
53
53
|
}): string | undefined;
|
|
54
54
|
export type IUnitPriceSpecification = factory.priceSpecification.IPriceSpecification<factory.priceSpecificationType.UnitPriceSpecification>;
|
|
55
|
-
export declare function createReservationFor(params: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent> | IMinimizedIndividualEvent<factory.eventType.Event
|
|
55
|
+
export declare function createReservationFor(params: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent> | IMinimizedIndividualEvent<factory.eventType.Event>, useOptimizeReservation: boolean): factory.assetTransaction.reserve.IReservationFor;
|
|
56
56
|
export declare function createIssuedThrough(params: {
|
|
57
57
|
reservationFor: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent> | IMinimizedIndividualEvent<factory.eventType.Event>;
|
|
58
58
|
}): {
|
|
@@ -332,10 +332,10 @@ function createAdditionalTicketText(params) {
|
|
|
332
332
|
return (_b = (_a = params.acceptedOffer.itemOffered) === null || _a === void 0 ? void 0 : _a.serviceOutput) === null || _b === void 0 ? void 0 : _b.additionalTicketText;
|
|
333
333
|
}
|
|
334
334
|
exports.createAdditionalTicketText = createAdditionalTicketText;
|
|
335
|
-
function createReservationFor(params) {
|
|
335
|
+
function createReservationFor(params, useOptimizeReservation) {
|
|
336
336
|
var _a, _b;
|
|
337
337
|
if (params.typeOf === factory.eventType.ScreeningEvent) {
|
|
338
|
-
return Object.assign({ endDate: params.endDate, id: params.id, location: params.location, name: params.name, startDate: params.startDate, superEvent: optimizeReservationSuperEvent(params), typeOf: params.typeOf }, (params.doorTime instanceof Date)
|
|
338
|
+
return Object.assign({ endDate: params.endDate, id: params.id, location: params.location, name: params.name, startDate: params.startDate, superEvent: optimizeReservationSuperEvent(params, useOptimizeReservation), typeOf: params.typeOf }, (params.doorTime instanceof Date)
|
|
339
339
|
? { doorTime: params.doorTime }
|
|
340
340
|
: undefined);
|
|
341
341
|
}
|
|
@@ -348,13 +348,13 @@ function createReservationFor(params) {
|
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
350
|
exports.createReservationFor = createReservationFor;
|
|
351
|
-
function optimizeReservationSuperEvent(params) {
|
|
351
|
+
function optimizeReservationSuperEvent(params, useOptimizeReservation) {
|
|
352
352
|
const superEvent = params.superEvent;
|
|
353
353
|
return Object.assign(Object.assign({ id: superEvent.id,
|
|
354
354
|
// kanaName: superEvent.kanaName, // 廃止(2024-01-26~)
|
|
355
355
|
location: superEvent.location, name: superEvent.name, soundFormat: superEvent.soundFormat, typeOf: superEvent.typeOf, videoFormat: superEvent.videoFormat, workPerformed: superEvent.workPerformed }, (superEvent.headline !== undefined)
|
|
356
356
|
? { headline: superEvent.headline }
|
|
357
|
-
: undefined), (
|
|
357
|
+
: undefined), (useOptimizeReservation)
|
|
358
358
|
? {}
|
|
359
359
|
: {
|
|
360
360
|
additionalProperty: (Array.isArray(superEvent.additionalProperty))
|
|
@@ -477,6 +477,7 @@ function createPotentialActions(params) {
|
|
|
477
477
|
if (reservationFor === undefined) {
|
|
478
478
|
throw new factory.errors.NotFound('transaction.object.reservationFor');
|
|
479
479
|
}
|
|
480
|
+
const useOptimizeReservation = !settings_1.USE_OPTIMIZE_RESERVATION_EXCEPTIONS.includes(transaction.project.id);
|
|
480
481
|
// 予約アクション属性作成
|
|
481
482
|
const pendingReservations = (Array.isArray(transaction.object.subReservation)) ? transaction.object.subReservation : [];
|
|
482
483
|
let reserveActionAttributes = [];
|
|
@@ -486,7 +487,7 @@ function createPotentialActions(params) {
|
|
|
486
487
|
// ReservationPackageに対応(2022-12-22~)
|
|
487
488
|
// purpose:Orderの指定があれば、underName,issuedByを調整(2022-05-23~)
|
|
488
489
|
if (typeof ((_a = params.order) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') {
|
|
489
|
-
const ordre2reservationUnderNameResult = ordre2reservationUnderName({ order: params.order });
|
|
490
|
+
const ordre2reservationUnderNameResult = ordre2reservationUnderName({ order: params.order, useOptimizeReservation });
|
|
490
491
|
underName = ordre2reservationUnderNameResult.underName;
|
|
491
492
|
}
|
|
492
493
|
const moneyTransferActions = [];
|
|
@@ -543,7 +544,7 @@ exports.createPotentialActions = createPotentialActions;
|
|
|
543
544
|
function createReservationUnderNameIdentifier(params) {
|
|
544
545
|
// 必要最低限の識別子のみ継承する(2024-03-16~)
|
|
545
546
|
let identifiersFromCustomer = (Array.isArray(params.order.customer.identifier)) ? params.order.customer.identifier : [];
|
|
546
|
-
if (
|
|
547
|
+
if (params.useOptimizeReservation) {
|
|
547
548
|
identifiersFromCustomer = identifiersFromCustomer.filter(({ name }) => name === 'clientId');
|
|
548
549
|
}
|
|
549
550
|
return [
|
|
@@ -552,14 +553,14 @@ function createReservationUnderNameIdentifier(params) {
|
|
|
552
553
|
];
|
|
553
554
|
}
|
|
554
555
|
function createReservationUnderName(params) {
|
|
555
|
-
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ identifier: createReservationUnderNameIdentifier({ order: params.order }), name: String(params.order.customer.name), typeOf: params.order.customer.typeOf }, (typeof params.order.customer.address === 'string') ? { address: params.order.customer.address } : undefined), (typeof params.order.customer.age === 'string') ? { age: params.order.customer.age } : undefined), (typeof params.order.customer.email === 'string') ? { email: params.order.customer.email } : undefined), (typeof params.order.customer.familyName === 'string') ? { familyName: params.order.customer.familyName } : undefined), (typeof params.order.customer.gender === 'string') ? { gender: params.order.customer.gender } : undefined), (typeof params.order.customer.givenName === 'string') ? { givenName: params.order.customer.givenName } : undefined), (typeof params.order.customer.id === 'string') ? { id: params.order.customer.id } : undefined), (typeof params.order.customer.telephone === 'string') ? { telephone: params.order.customer.telephone } : undefined), (typeof params.order.customer.url === 'string') ? { url: params.order.customer.url } : undefined);
|
|
556
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ identifier: createReservationUnderNameIdentifier({ order: params.order, useOptimizeReservation: params.useOptimizeReservation }), name: String(params.order.customer.name), typeOf: params.order.customer.typeOf }, (typeof params.order.customer.address === 'string') ? { address: params.order.customer.address } : undefined), (typeof params.order.customer.age === 'string') ? { age: params.order.customer.age } : undefined), (typeof params.order.customer.email === 'string') ? { email: params.order.customer.email } : undefined), (typeof params.order.customer.familyName === 'string') ? { familyName: params.order.customer.familyName } : undefined), (typeof params.order.customer.gender === 'string') ? { gender: params.order.customer.gender } : undefined), (typeof params.order.customer.givenName === 'string') ? { givenName: params.order.customer.givenName } : undefined), (typeof params.order.customer.id === 'string') ? { id: params.order.customer.id } : undefined), (typeof params.order.customer.telephone === 'string') ? { telephone: params.order.customer.telephone } : undefined), (typeof params.order.customer.url === 'string') ? { url: params.order.customer.url } : undefined);
|
|
556
557
|
}
|
|
557
558
|
/**
|
|
558
559
|
* 注文者情報を予約者情報へ変換する
|
|
559
560
|
*/
|
|
560
561
|
function ordre2reservationUnderName(params) {
|
|
561
562
|
return {
|
|
562
|
-
underName: createReservationUnderName({ order: params.order })
|
|
563
|
+
underName: createReservationUnderName({ order: params.order, useOptimizeReservation: params.useOptimizeReservation })
|
|
563
564
|
};
|
|
564
565
|
}
|
|
565
566
|
function createMoneyTransferActions(params) {
|
|
@@ -141,7 +141,8 @@ function addReservations(params) {
|
|
|
141
141
|
validateAppliesToMovieTicket: params.validateAppliesToMovieTicket
|
|
142
142
|
})(repos);
|
|
143
143
|
// 予約イベント最適化
|
|
144
|
-
const
|
|
144
|
+
const useOptimizeReservation = !settings_1.USE_OPTIMIZE_RESERVATION_EXCEPTIONS.includes(transaction.project.id);
|
|
145
|
+
const reservationFor = (0, factory_1.createReservationFor)(event, useOptimizeReservation);
|
|
145
146
|
const { issuedThrough } = (0, factory_1.createIssuedThrough)({ reservationFor: event });
|
|
146
147
|
// 取引に予約追加
|
|
147
148
|
let lockedOfferRateLimitKeys = [];
|
|
@@ -304,16 +304,6 @@ function saveScreeningEvents(params) {
|
|
|
304
304
|
for (const screeningEvent of screeningEvents) {
|
|
305
305
|
try {
|
|
306
306
|
const attributes = screeningEvent;
|
|
307
|
-
// repository側で制御しているため不要(2022-08-26~)
|
|
308
|
-
// const attributes = {
|
|
309
|
-
// ...screeningEvent,
|
|
310
|
-
// ...{
|
|
311
|
-
// // 残席数は作成時のみ
|
|
312
|
-
// $setOnInsert: { remainingAttendeeCapacity: screeningEvent.remainingAttendeeCapacity }
|
|
313
|
-
// }
|
|
314
|
-
// };
|
|
315
|
-
// repository側で制御しているためdeleteは不要(2022-08-26~)
|
|
316
|
-
// delete attributes.remainingAttendeeCapacity;
|
|
317
307
|
saveParams.push({
|
|
318
308
|
id: screeningEvent.id,
|
|
319
309
|
attributes: attributes,
|
|
@@ -321,10 +311,7 @@ function saveScreeningEvents(params) {
|
|
|
321
311
|
});
|
|
322
312
|
}
|
|
323
313
|
catch (error) {
|
|
324
|
-
//
|
|
325
|
-
/* istanbul ignore next */
|
|
326
|
-
// tslint:disable-next-line:no-console
|
|
327
|
-
console.error(error);
|
|
314
|
+
// no op
|
|
328
315
|
}
|
|
329
316
|
}
|
|
330
317
|
yield repos.event.saveMany(saveParams);
|
|
@@ -425,10 +412,7 @@ function cancelDeletedEvents(params) {
|
|
|
425
412
|
});
|
|
426
413
|
}
|
|
427
414
|
catch (error) {
|
|
428
|
-
//
|
|
429
|
-
/* istanbul ignore next */
|
|
430
|
-
// tslint:disable-next-line:no-console
|
|
431
|
-
console.error(error);
|
|
415
|
+
// no op
|
|
432
416
|
}
|
|
433
417
|
}
|
|
434
418
|
debug(`${cancelledIds.length} events cancelled.`);
|