@chevre/domain 21.37.0-alpha.8 → 21.37.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/processOrder.ts +87 -0
- package/example/src/chevre/transaction/processPlaceOrder.ts +17 -143
- package/lib/chevre/factory/reservedAgentIdentifireNames.js +2 -1
- package/lib/chevre/factory/transaction.d.ts +1 -4
- package/lib/chevre/repo/passport.d.ts +39 -0
- package/lib/chevre/repo/passport.js +134 -0
- package/lib/chevre/repo/task.d.ts +9 -0
- package/lib/chevre/repo/task.js +23 -2
- package/lib/chevre/repository.d.ts +5 -0
- package/lib/chevre/repository.js +15 -2
- package/lib/chevre/service/accountTransaction/deposit.js +0 -1
- package/lib/chevre/service/accountTransaction/transfer.js +0 -1
- package/lib/chevre/service/accountTransaction/withdraw.js +0 -1
- package/lib/chevre/service/assetTransaction/reserve/cancel.d.ts +22 -0
- package/lib/chevre/service/assetTransaction/reserve/cancel.js +41 -0
- package/lib/chevre/service/assetTransaction/reserve/confirm/factory.d.ts +8 -0
- package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +94 -0
- package/lib/chevre/service/assetTransaction/reserve/confirm.d.ts +19 -0
- package/lib/chevre/service/assetTransaction/reserve/confirm.js +93 -0
- package/lib/chevre/service/assetTransaction/reserve/exportTasksById.d.ts +15 -0
- package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +99 -0
- package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.d.ts +28 -0
- package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +405 -0
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.d.ts +15 -0
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +40 -0
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.d.ts +54 -0
- package/lib/chevre/service/assetTransaction/reserve/{factory.js → start/factory/createReservation.js} +3 -222
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.d.ts +22 -0
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +90 -0
- package/lib/chevre/service/assetTransaction/reserve/{factory → start/factory}/price.d.ts +1 -1
- package/lib/chevre/service/assetTransaction/reserve/{factory → start/factory}/price.js +1 -1
- package/lib/chevre/service/assetTransaction/reserve/start.d.ts +74 -0
- package/lib/chevre/service/assetTransaction/reserve/start.js +570 -0
- package/lib/chevre/service/assetTransaction/reserve.d.ts +6 -128
- package/lib/chevre/service/assetTransaction/reserve.js +9 -1047
- package/lib/chevre/service/offer/event/{defaultOffer.d.ts → authorize/defaultOffer.d.ts} +1 -1
- package/lib/chevre/service/offer/event/{defaultOffer.js → authorize/defaultOffer.js} +1 -1
- package/lib/chevre/service/offer/event/{factory.d.ts → authorize/factory.d.ts} +13 -20
- package/lib/chevre/service/offer/event/{factory.js → authorize/factory.js} +72 -146
- package/lib/chevre/service/offer/event/{processStartReserve4chevre.d.ts → authorize/processStartReserve4chevre.d.ts} +19 -19
- package/lib/chevre/service/offer/event/{processStartReserve4chevre.js → authorize/processStartReserve4chevre.js} +8 -13
- package/lib/chevre/service/offer/event/authorize.d.ts +1 -1
- package/lib/chevre/service/offer/event/authorize.js +104 -128
- package/lib/chevre/service/offer/event/importFromCOA/factory.d.ts +9 -0
- package/lib/chevre/service/offer/event/importFromCOA/factory.js +67 -0
- package/lib/chevre/service/offer/event/importFromCOA.js +1 -1
- package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +0 -3
- package/lib/chevre/service/offer/eventServiceByCOA/factory.d.ts +3 -3
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.d.ts +4 -4
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.d.ts +16 -0
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +168 -0
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +4 -5
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +4 -135
- package/lib/chevre/service/order/onOrderStatusChanged.d.ts +2 -2
- package/lib/chevre/service/order/onOrderStatusChanged.js +2 -1
- package/lib/chevre/service/order.d.ts +2 -2
- package/lib/chevre/service/order.js +2 -1
- package/lib/chevre/service/transaction/moneyTransfer.d.ts +3 -2
- package/lib/chevre/service/transaction/moneyTransfer.js +1 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/start/factory.d.ts +10 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/start/factory.js +36 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/start.d.ts +6 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/start.js +26 -12
- package/lib/chevre/service/validation/validateOrder.js +1 -1
- package/lib/chevre/settings.d.ts +1 -0
- package/lib/chevre/settings.js +5 -1
- package/package.json +3 -3
- package/example/src/chevre/migrateAuthorizeEventServiceOfferResult.ts +0 -163
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +0 -96
- package/lib/chevre/service/transaction/placeOrderInProgress/factory.d.ts +0 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +0 -29
- package/lib/chevre/service/transaction/validation.d.ts +0 -14
- package/lib/chevre/service/transaction/validation.js +0 -101
|
@@ -0,0 +1,168 @@
|
|
|
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.processOrder = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* 注文処理時処理
|
|
15
|
+
*/
|
|
16
|
+
const createDebug = require("debug");
|
|
17
|
+
const util = require("util");
|
|
18
|
+
const factory = require("../../../../factory");
|
|
19
|
+
const settings_1 = require("../../../../settings");
|
|
20
|
+
const factory_1 = require("./factory");
|
|
21
|
+
const debug = createDebug('chevre-domain:service:order');
|
|
22
|
+
function processOrder(params) {
|
|
23
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const simpleOrder = {
|
|
25
|
+
typeOf: params.order.typeOf,
|
|
26
|
+
// seller: {
|
|
27
|
+
// id: params.order.seller.id,
|
|
28
|
+
// typeOf: params.order.seller.typeOf,
|
|
29
|
+
// name: params.order.seller.name
|
|
30
|
+
// }, // 廃止(2024-03-06~)
|
|
31
|
+
// customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id }, // 廃止(2024-03-06~)
|
|
32
|
+
orderNumber: params.order.orderNumber,
|
|
33
|
+
// price: params.order.price,
|
|
34
|
+
// priceCurrency: params.order.priceCurrency,
|
|
35
|
+
orderDate: params.order.orderDate
|
|
36
|
+
};
|
|
37
|
+
if (params.order.itemOfferedTypeOf === factory.actionType.MoneyTransfer) {
|
|
38
|
+
yield createConfirmMoneyTransferTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
39
|
+
}
|
|
40
|
+
else if (params.order.itemOfferedTypeOf === factory.reservationType.BusReservation
|
|
41
|
+
|| params.order.itemOfferedTypeOf === factory.reservationType.EventReservation) {
|
|
42
|
+
// 冗長なconfirmReserveTransactionタスク作成を回避(2023-08-25~)
|
|
43
|
+
yield createConfirmReserveTransactionTasksIfNotExist(params.order, simpleOrder, params.options)(repos);
|
|
44
|
+
}
|
|
45
|
+
else if (params.order.itemOfferedTypeOf === factory.permit.PermitType.Permit) {
|
|
46
|
+
yield createConfirmRegisterServiceTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
exports.processOrder = processOrder;
|
|
51
|
+
function createConfirmReserveTransactionTasksIfNotExist(order, simpleOrder, options) {
|
|
52
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const taskRunsAt = new Date();
|
|
54
|
+
const taskRunsAt4coa = new Date();
|
|
55
|
+
let confirmObjects;
|
|
56
|
+
if (order.offeredThroughIdentifier === factory.service.webAPI.Identifier.COA) {
|
|
57
|
+
confirmObjects = (0, factory_1.createConfirmReservationActionObject4COAByOrder)({ order });
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
confirmObjects = (0, factory_1.createConfirmReservationActionObject4ChevreByOrder)({ order });
|
|
61
|
+
}
|
|
62
|
+
yield Promise.all(confirmObjects.map((confirmObject) => __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
const data = {
|
|
64
|
+
project: order.project,
|
|
65
|
+
typeOf: factory.actionType.ConfirmAction,
|
|
66
|
+
object: confirmObject,
|
|
67
|
+
agent: order.project,
|
|
68
|
+
purpose: simpleOrder
|
|
69
|
+
// instrument廃止(2024-03-13~)
|
|
70
|
+
// instrument: {
|
|
71
|
+
// typeOf: 'WebAPI',
|
|
72
|
+
// identifier: (confirmObject.typeOf === factory.assetTransactionType.COAReserveTransaction)
|
|
73
|
+
// ? factory.service.webAPI.Identifier.COA
|
|
74
|
+
// : factory.service.webAPI.Identifier.Chevre
|
|
75
|
+
// }
|
|
76
|
+
};
|
|
77
|
+
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmReserveTransaction, data.purpose.typeOf, data.purpose.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
78
|
+
const confirmReserveTransactionTask = {
|
|
79
|
+
identifier: taskIdentifier,
|
|
80
|
+
project: order.project,
|
|
81
|
+
name: factory.taskName.ConfirmReserveTransaction,
|
|
82
|
+
status: factory.taskStatus.Ready,
|
|
83
|
+
runsAt: (confirmObject.typeOf === factory.assetTransactionType.COAReserveTransaction) ? taskRunsAt4coa : taskRunsAt,
|
|
84
|
+
remainingNumberOfTries: settings_1.NUM_TRY_CONFIRM_RESERVE_TRANSACTION,
|
|
85
|
+
numberOfTried: 0,
|
|
86
|
+
executionResults: [],
|
|
87
|
+
data
|
|
88
|
+
};
|
|
89
|
+
yield repos.task.createIfNotExistByIdentifier(confirmReserveTransactionTask, { emitImmediately: true });
|
|
90
|
+
if (options.force === true) {
|
|
91
|
+
const existingTask = yield repos.task.findByIdentifier({
|
|
92
|
+
identifier: taskIdentifier,
|
|
93
|
+
name: confirmReserveTransactionTask.name,
|
|
94
|
+
project: { id: confirmReserveTransactionTask.project.id }
|
|
95
|
+
});
|
|
96
|
+
if (typeof (existingTask === null || existingTask === void 0 ? void 0 : existingTask.id) === 'string') {
|
|
97
|
+
const retryResult = yield repos.task.retryForciblyIfAborted({
|
|
98
|
+
id: existingTask.id,
|
|
99
|
+
remainingNumberOfTries: settings_1.NUM_TRY_CONFIRM_RESERVE_TRANSACTION
|
|
100
|
+
});
|
|
101
|
+
debug('retryResult:', retryResult, 'taskIdentifier:', taskIdentifier);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
})));
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function createConfirmMoneyTransferTasksIfNotExist(order, simpleOrder) {
|
|
108
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
const taskRunsAt = new Date();
|
|
110
|
+
yield Promise.all(order.serialNumbers.map((moneyTransferTransactionNumber) => __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
const data = {
|
|
112
|
+
project: order.project,
|
|
113
|
+
typeOf: factory.actionType.ConfirmAction,
|
|
114
|
+
object: {
|
|
115
|
+
// pendingTransaction: { id: '' }, // 空文字であれば、transactionNumberで処理される
|
|
116
|
+
transactionNumber: moneyTransferTransactionNumber,
|
|
117
|
+
typeOf: factory.assetTransactionType.MoneyTransfer
|
|
118
|
+
},
|
|
119
|
+
agent: order.project,
|
|
120
|
+
purpose: simpleOrder
|
|
121
|
+
};
|
|
122
|
+
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmMoneyTransfer, data.purpose.typeOf, simpleOrder.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
123
|
+
const confirmMoneyTransferTransactionTask = {
|
|
124
|
+
identifier: taskIdentifier,
|
|
125
|
+
project: order.project,
|
|
126
|
+
name: factory.taskName.ConfirmMoneyTransfer,
|
|
127
|
+
status: factory.taskStatus.Ready,
|
|
128
|
+
runsAt: taskRunsAt,
|
|
129
|
+
remainingNumberOfTries: 10,
|
|
130
|
+
numberOfTried: 0,
|
|
131
|
+
executionResults: [],
|
|
132
|
+
data
|
|
133
|
+
};
|
|
134
|
+
yield repos.task.createIfNotExistByIdentifier(confirmMoneyTransferTransactionTask, { emitImmediately: true });
|
|
135
|
+
})));
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
function createConfirmRegisterServiceTasksIfNotExist(order, simpleOrder) {
|
|
139
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const taskRunsAt = new Date();
|
|
141
|
+
yield Promise.all(order.serialNumbers.map((registerServiceTransactionNumber) => __awaiter(this, void 0, void 0, function* () {
|
|
142
|
+
const data = {
|
|
143
|
+
project: order.project,
|
|
144
|
+
typeOf: factory.actionType.ConfirmAction,
|
|
145
|
+
object: {
|
|
146
|
+
endDate: order.orderDate,
|
|
147
|
+
transactionNumber: registerServiceTransactionNumber,
|
|
148
|
+
typeOf: factory.assetTransactionType.RegisterService
|
|
149
|
+
},
|
|
150
|
+
agent: order.project,
|
|
151
|
+
purpose: simpleOrder
|
|
152
|
+
};
|
|
153
|
+
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmRegisterService, data.purpose.typeOf, simpleOrder.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
154
|
+
const confirmRegisterServiceTask = {
|
|
155
|
+
identifier: taskIdentifier,
|
|
156
|
+
project: order.project,
|
|
157
|
+
name: factory.taskName.ConfirmRegisterService,
|
|
158
|
+
status: factory.taskStatus.Ready,
|
|
159
|
+
runsAt: taskRunsAt,
|
|
160
|
+
remainingNumberOfTries: 10,
|
|
161
|
+
numberOfTried: 0,
|
|
162
|
+
executionResults: [],
|
|
163
|
+
data
|
|
164
|
+
};
|
|
165
|
+
yield repos.task.createIfNotExistByIdentifier(confirmRegisterServiceTask, { emitImmediately: true });
|
|
166
|
+
})));
|
|
167
|
+
});
|
|
168
|
+
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
2
2
|
import * as factory from '../../../factory';
|
|
3
|
-
import { IExternalOrder } from './onOrderProcessing/factory';
|
|
3
|
+
import { IExternalOrder, IProcessingOrder } from './onOrderProcessing/factory';
|
|
4
|
+
import { processOrder } from './onOrderProcessing/processOrder';
|
|
4
5
|
type IPlaceOrderTransaction = Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'typeOf' | 'potentialActions'>;
|
|
5
6
|
declare function onOrderProcessing(params: {
|
|
6
|
-
order:
|
|
7
|
-
orderStatus: factory.orderStatus.OrderProcessing;
|
|
8
|
-
numAcceptedOffers: number;
|
|
7
|
+
order: IProcessingOrder & {
|
|
9
8
|
itemOfferedTypeOf: factory.order.IItemOffered['typeOf'];
|
|
10
9
|
serialNumbers: string[];
|
|
11
10
|
offeredThroughIdentifier?: factory.service.webAPI.Identifier;
|
|
@@ -14,4 +13,4 @@ declare function onOrderProcessing(params: {
|
|
|
14
13
|
}): (repos: {
|
|
15
14
|
task: TaskRepo;
|
|
16
15
|
}) => Promise<void>;
|
|
17
|
-
export { IExternalOrder, onOrderProcessing };
|
|
16
|
+
export { IExternalOrder, onOrderProcessing, processOrder };
|
|
@@ -9,16 +9,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.onOrderProcessing = void 0;
|
|
12
|
+
exports.processOrder = exports.onOrderProcessing = void 0;
|
|
13
13
|
/**
|
|
14
14
|
* 注文処理時処理
|
|
15
15
|
*/
|
|
16
16
|
const createDebug = require("debug");
|
|
17
|
-
const util = require("util");
|
|
18
17
|
const factory = require("../../../factory");
|
|
19
18
|
const settings_1 = require("../../../settings");
|
|
20
19
|
const createSendEmailMessageTaskIfNotExist_1 = require("./onOrderProcessing/createSendEmailMessageTaskIfNotExist");
|
|
21
20
|
const factory_1 = require("./onOrderProcessing/factory");
|
|
21
|
+
const processOrder_1 = require("./onOrderProcessing/processOrder");
|
|
22
|
+
Object.defineProperty(exports, "processOrder", { enumerable: true, get: function () { return processOrder_1.processOrder; } });
|
|
22
23
|
const debug = createDebug('chevre-domain:service:order');
|
|
23
24
|
function onOrderProcessing(params) {
|
|
24
25
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -27,20 +28,6 @@ function onOrderProcessing(params) {
|
|
|
27
28
|
let tasks = [];
|
|
28
29
|
const sendEmailMessageByOrderPotentialActions = (_f = (_e = (_d = (_c = (_b = (_a = params.placeOrderTransaction) === null || _a === void 0 ? void 0 : _a.potentialActions) === null || _b === void 0 ? void 0 : _b.order) === null || _c === void 0 ? void 0 : _c.potentialActions) === null || _d === void 0 ? void 0 : _d.sendOrder) === null || _e === void 0 ? void 0 : _e.potentialActions) === null || _f === void 0 ? void 0 : _f.sendEmailMessage;
|
|
29
30
|
const sendEmailMessageByOnOrderProcessing = (_k = (_j = (_h = (_g = params.placeOrderTransaction) === null || _g === void 0 ? void 0 : _g.potentialActions) === null || _h === void 0 ? void 0 : _h.order) === null || _j === void 0 ? void 0 : _j.onOrderProcessing) === null || _k === void 0 ? void 0 : _k.sendEmailMessage;
|
|
30
|
-
// const maskedCustomer = createMaskedCustomer(params.order, { noProfile: true });
|
|
31
|
-
const simpleOrder = {
|
|
32
|
-
typeOf: params.order.typeOf,
|
|
33
|
-
// seller: {
|
|
34
|
-
// id: params.order.seller.id,
|
|
35
|
-
// typeOf: params.order.seller.typeOf,
|
|
36
|
-
// name: params.order.seller.name
|
|
37
|
-
// }, // 廃止(2024-03-06~)
|
|
38
|
-
// customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id }, // 廃止(2024-03-06~)
|
|
39
|
-
orderNumber: params.order.orderNumber,
|
|
40
|
-
// price: params.order.price,
|
|
41
|
-
// priceCurrency: params.order.priceCurrency,
|
|
42
|
-
orderDate: params.order.orderDate
|
|
43
|
-
};
|
|
44
31
|
switch (params.order.orderStatus) {
|
|
45
32
|
case factory.orderStatus.OrderProcessing:
|
|
46
33
|
tasks = [
|
|
@@ -54,21 +41,7 @@ function onOrderProcessing(params) {
|
|
|
54
41
|
yield repos.task.saveMany(tasks, { emitImmediately: true });
|
|
55
42
|
switch (params.order.orderStatus) {
|
|
56
43
|
case factory.orderStatus.OrderProcessing:
|
|
57
|
-
|
|
58
|
-
yield createConfirmMoneyTransferTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
59
|
-
}
|
|
60
|
-
else if (params.order.itemOfferedTypeOf === factory.reservationType.BusReservation
|
|
61
|
-
|| params.order.itemOfferedTypeOf === factory.reservationType.EventReservation) {
|
|
62
|
-
// 冗長なconfirmReserveTransactionタスク作成を回避(2023-08-25~)
|
|
63
|
-
yield createConfirmReserveTransactionTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
64
|
-
}
|
|
65
|
-
else if (params.order.itemOfferedTypeOf === factory.permit.PermitType.Permit) {
|
|
66
|
-
yield createConfirmRegisterServiceTasksIfNotExist(params.order, simpleOrder)(repos);
|
|
67
|
-
}
|
|
68
|
-
// 完全廃止(2024-03-12~)
|
|
69
|
-
// await createGivePointAwardTaskIfNotExist({
|
|
70
|
-
// potentialActions: params.placeOrderTransaction?.potentialActions?.order?.potentialActions
|
|
71
|
-
// })(repos);
|
|
44
|
+
yield (0, processOrder_1.processOrder)({ order: params.order, options: { force: false } })(repos);
|
|
72
45
|
// OrderProcessingにおけるEメール送信に対応(2024-01-17~)
|
|
73
46
|
yield (0, createSendEmailMessageTaskIfNotExist_1.createSendEmailMessageTaskIfNotExist)({
|
|
74
47
|
sendEmailMessage: [
|
|
@@ -83,107 +56,3 @@ function onOrderProcessing(params) {
|
|
|
83
56
|
});
|
|
84
57
|
}
|
|
85
58
|
exports.onOrderProcessing = onOrderProcessing;
|
|
86
|
-
function createConfirmReserveTransactionTasksIfNotExist(order, simpleOrder) {
|
|
87
|
-
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
88
|
-
const taskRunsAt = new Date();
|
|
89
|
-
const taskRunsAt4coa = new Date();
|
|
90
|
-
let confirmObjects;
|
|
91
|
-
if (order.offeredThroughIdentifier === factory.service.webAPI.Identifier.COA) {
|
|
92
|
-
confirmObjects = (0, factory_1.createConfirmReservationActionObject4COAByOrder)({ order });
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
confirmObjects = (0, factory_1.createConfirmReservationActionObject4ChevreByOrder)({ order });
|
|
96
|
-
}
|
|
97
|
-
yield Promise.all(confirmObjects.map((confirmObject) => __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
const data = {
|
|
99
|
-
project: order.project,
|
|
100
|
-
typeOf: factory.actionType.ConfirmAction,
|
|
101
|
-
object: confirmObject,
|
|
102
|
-
agent: order.project,
|
|
103
|
-
purpose: simpleOrder
|
|
104
|
-
// instrument廃止(2024-03-13~)
|
|
105
|
-
// instrument: {
|
|
106
|
-
// typeOf: 'WebAPI',
|
|
107
|
-
// identifier: (confirmObject.typeOf === factory.assetTransactionType.COAReserveTransaction)
|
|
108
|
-
// ? factory.service.webAPI.Identifier.COA
|
|
109
|
-
// : factory.service.webAPI.Identifier.Chevre
|
|
110
|
-
// }
|
|
111
|
-
};
|
|
112
|
-
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmReserveTransaction, data.purpose.typeOf, data.purpose.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
113
|
-
const confirmReserveTransactionTask = {
|
|
114
|
-
identifier: taskIdentifier,
|
|
115
|
-
project: order.project,
|
|
116
|
-
name: factory.taskName.ConfirmReserveTransaction,
|
|
117
|
-
status: factory.taskStatus.Ready,
|
|
118
|
-
runsAt: (confirmObject.typeOf === factory.assetTransactionType.COAReserveTransaction) ? taskRunsAt4coa : taskRunsAt,
|
|
119
|
-
remainingNumberOfTries: 10,
|
|
120
|
-
numberOfTried: 0,
|
|
121
|
-
executionResults: [],
|
|
122
|
-
data
|
|
123
|
-
};
|
|
124
|
-
yield repos.task.createIfNotExistByIdentifier(confirmReserveTransactionTask, { emitImmediately: true });
|
|
125
|
-
})));
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
function createConfirmMoneyTransferTasksIfNotExist(order, simpleOrder) {
|
|
129
|
-
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const taskRunsAt = new Date();
|
|
131
|
-
yield Promise.all(order.serialNumbers.map((moneyTransferTransactionNumber) => __awaiter(this, void 0, void 0, function* () {
|
|
132
|
-
const data = {
|
|
133
|
-
project: order.project,
|
|
134
|
-
typeOf: factory.actionType.ConfirmAction,
|
|
135
|
-
object: {
|
|
136
|
-
// pendingTransaction: { id: '' }, // 空文字であれば、transactionNumberで処理される
|
|
137
|
-
transactionNumber: moneyTransferTransactionNumber,
|
|
138
|
-
typeOf: factory.assetTransactionType.MoneyTransfer
|
|
139
|
-
},
|
|
140
|
-
agent: order.project,
|
|
141
|
-
purpose: simpleOrder
|
|
142
|
-
};
|
|
143
|
-
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmMoneyTransfer, data.purpose.typeOf, simpleOrder.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
144
|
-
const confirmMoneyTransferTransactionTask = {
|
|
145
|
-
identifier: taskIdentifier,
|
|
146
|
-
project: order.project,
|
|
147
|
-
name: factory.taskName.ConfirmMoneyTransfer,
|
|
148
|
-
status: factory.taskStatus.Ready,
|
|
149
|
-
runsAt: taskRunsAt,
|
|
150
|
-
remainingNumberOfTries: 10,
|
|
151
|
-
numberOfTried: 0,
|
|
152
|
-
executionResults: [],
|
|
153
|
-
data
|
|
154
|
-
};
|
|
155
|
-
yield repos.task.createIfNotExistByIdentifier(confirmMoneyTransferTransactionTask, { emitImmediately: true });
|
|
156
|
-
})));
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
function createConfirmRegisterServiceTasksIfNotExist(order, simpleOrder) {
|
|
160
|
-
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
161
|
-
const taskRunsAt = new Date();
|
|
162
|
-
yield Promise.all(order.serialNumbers.map((registerServiceTransactionNumber) => __awaiter(this, void 0, void 0, function* () {
|
|
163
|
-
const data = {
|
|
164
|
-
project: order.project,
|
|
165
|
-
typeOf: factory.actionType.ConfirmAction,
|
|
166
|
-
object: {
|
|
167
|
-
endDate: order.orderDate,
|
|
168
|
-
transactionNumber: registerServiceTransactionNumber,
|
|
169
|
-
typeOf: factory.assetTransactionType.RegisterService
|
|
170
|
-
},
|
|
171
|
-
agent: order.project,
|
|
172
|
-
purpose: simpleOrder
|
|
173
|
-
};
|
|
174
|
-
const taskIdentifier = util.format('%s:%s:%s:%s:%s:%s', data.project.id, factory.taskName.ConfirmRegisterService, data.purpose.typeOf, simpleOrder.orderNumber, data.object.typeOf, data.object.transactionNumber);
|
|
175
|
-
const confirmRegisterServiceTask = {
|
|
176
|
-
identifier: taskIdentifier,
|
|
177
|
-
project: order.project,
|
|
178
|
-
name: factory.taskName.ConfirmRegisterService,
|
|
179
|
-
status: factory.taskStatus.Ready,
|
|
180
|
-
runsAt: taskRunsAt,
|
|
181
|
-
remainingNumberOfTries: 10,
|
|
182
|
-
numberOfTried: 0,
|
|
183
|
-
executionResults: [],
|
|
184
|
-
data
|
|
185
|
-
};
|
|
186
|
-
yield repos.task.createIfNotExistByIdentifier(confirmRegisterServiceTask, { emitImmediately: true });
|
|
187
|
-
})));
|
|
188
|
-
});
|
|
189
|
-
}
|
|
@@ -6,6 +6,6 @@ import { onOrderDelivered } from './onOrderStatusChanged/onOrderDelivered';
|
|
|
6
6
|
import { onOrderDeliveredPartially } from './onOrderStatusChanged/onOrderDeliveredPartially';
|
|
7
7
|
import { onOrderInTransit } from './onOrderStatusChanged/onOrderInTransit';
|
|
8
8
|
import { onOrderPaymentDue } from './onOrderStatusChanged/onOrderPaymentDue';
|
|
9
|
-
import { IExternalOrder, onOrderProcessing } from './onOrderStatusChanged/onOrderProcessing';
|
|
9
|
+
import { IExternalOrder, onOrderProcessing, processOrder } from './onOrderStatusChanged/onOrderProcessing';
|
|
10
10
|
import { onOrderReturned } from './onOrderStatusChanged/onOrderReturned';
|
|
11
|
-
export { IExternalOrder, onOrderCancelled, onOrderDelivered, onOrderDeliveredPartially, onOrderInTransit, onOrderPaymentDue, onOrderProcessing, onOrderReturned };
|
|
11
|
+
export { IExternalOrder, onOrderCancelled, onOrderDelivered, onOrderDeliveredPartially, onOrderInTransit, onOrderPaymentDue, onOrderProcessing, onOrderReturned, processOrder };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.onOrderReturned = exports.onOrderProcessing = exports.onOrderPaymentDue = exports.onOrderInTransit = exports.onOrderDeliveredPartially = exports.onOrderDelivered = exports.onOrderCancelled = void 0;
|
|
3
|
+
exports.processOrder = exports.onOrderReturned = exports.onOrderProcessing = exports.onOrderPaymentDue = exports.onOrderInTransit = exports.onOrderDeliveredPartially = exports.onOrderDelivered = exports.onOrderCancelled = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 注文ステータス変更時処理
|
|
6
6
|
*/
|
|
@@ -16,5 +16,6 @@ const onOrderPaymentDue_1 = require("./onOrderStatusChanged/onOrderPaymentDue");
|
|
|
16
16
|
Object.defineProperty(exports, "onOrderPaymentDue", { enumerable: true, get: function () { return onOrderPaymentDue_1.onOrderPaymentDue; } });
|
|
17
17
|
const onOrderProcessing_1 = require("./onOrderStatusChanged/onOrderProcessing");
|
|
18
18
|
Object.defineProperty(exports, "onOrderProcessing", { enumerable: true, get: function () { return onOrderProcessing_1.onOrderProcessing; } });
|
|
19
|
+
Object.defineProperty(exports, "processOrder", { enumerable: true, get: function () { return onOrderProcessing_1.processOrder; } });
|
|
19
20
|
const onOrderReturned_1 = require("./onOrderStatusChanged/onOrderReturned");
|
|
20
21
|
Object.defineProperty(exports, "onOrderReturned", { enumerable: true, get: function () { return onOrderReturned_1.onOrderReturned; } });
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
import { confirmPayTransaction } from './order/confirmPayTransaction';
|
|
5
5
|
import { deleteOrder } from './order/deleteOrder';
|
|
6
6
|
import { onAssetTransactionStatusChanged, paymentDue2Processing } from './order/onAssetTransactionStatusChanged';
|
|
7
|
-
import { onOrderProcessing } from './order/onOrderStatusChanged';
|
|
7
|
+
import { onOrderProcessing, processOrder } from './order/onOrderStatusChanged';
|
|
8
8
|
import { onOrderUpdated } from './order/onOrderUpdated';
|
|
9
9
|
import { payOrder } from './order/payOrder';
|
|
10
10
|
import { placeOrder } from './order/placeOrder';
|
|
11
11
|
import { placeOrderWithoutTransaction } from './order/placeOrderWithoutTransaction';
|
|
12
12
|
import { sendOrder } from './order/sendOrder';
|
|
13
|
-
export { confirmPayTransaction, deleteOrder, onAssetTransactionStatusChanged, onOrderProcessing, onOrderUpdated, paymentDue2Processing, payOrder, placeOrder, placeOrderWithoutTransaction, sendOrder };
|
|
13
|
+
export { confirmPayTransaction, deleteOrder, onAssetTransactionStatusChanged, onOrderProcessing, onOrderUpdated, paymentDue2Processing, payOrder, placeOrder, placeOrderWithoutTransaction, processOrder, sendOrder };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendOrder = exports.placeOrderWithoutTransaction = exports.placeOrder = exports.payOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.onOrderProcessing = exports.onAssetTransactionStatusChanged = exports.deleteOrder = exports.confirmPayTransaction = void 0;
|
|
3
|
+
exports.sendOrder = exports.processOrder = exports.placeOrderWithoutTransaction = exports.placeOrder = exports.payOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.onOrderProcessing = exports.onAssetTransactionStatusChanged = exports.deleteOrder = exports.confirmPayTransaction = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 注文サービス
|
|
6
6
|
*/
|
|
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "onAssetTransactionStatusChanged", { enumerable:
|
|
|
13
13
|
Object.defineProperty(exports, "paymentDue2Processing", { enumerable: true, get: function () { return onAssetTransactionStatusChanged_1.paymentDue2Processing; } });
|
|
14
14
|
const onOrderStatusChanged_1 = require("./order/onOrderStatusChanged");
|
|
15
15
|
Object.defineProperty(exports, "onOrderProcessing", { enumerable: true, get: function () { return onOrderStatusChanged_1.onOrderProcessing; } });
|
|
16
|
+
Object.defineProperty(exports, "processOrder", { enumerable: true, get: function () { return onOrderStatusChanged_1.processOrder; } });
|
|
16
17
|
const onOrderUpdated_1 = require("./order/onOrderUpdated");
|
|
17
18
|
Object.defineProperty(exports, "onOrderUpdated", { enumerable: true, get: function () { return onOrderUpdated_1.onOrderUpdated; } });
|
|
18
19
|
const payOrder_1 = require("./order/payOrder");
|
|
@@ -2,6 +2,7 @@ import type { MongoRepository as ActionRepo } from '../../repo/action';
|
|
|
2
2
|
import type { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
|
|
3
3
|
import type { AuthorizationRepo } from '../../repo/code';
|
|
4
4
|
import type { MongoRepository as OrderRepo } from '../../repo/order';
|
|
5
|
+
import type { PassportRepo } from '../../repo/passport';
|
|
5
6
|
import type { MongoRepository as ProductRepo } from '../../repo/product';
|
|
6
7
|
import type { MongoRepository as ProjectRepo } from '../../repo/project';
|
|
7
8
|
import type { MongoRepository as SellerRepo } from '../../repo/seller';
|
|
@@ -9,11 +10,12 @@ import type { MongoRepository as TaskRepo } from '../../repo/task';
|
|
|
9
10
|
import type { TicketRepo } from '../../repo/ticket';
|
|
10
11
|
import type { IStartedTransaction, MongoRepository as TransactionRepo } from '../../repo/transaction';
|
|
11
12
|
import type { RedisRepository as TransactionNumberRepo } from '../../repo/transactionNumber';
|
|
12
|
-
import {
|
|
13
|
+
import { moneyTransfer as MoneyTransferFactory } from '../../factory/transaction';
|
|
13
14
|
export interface IStartOperationRepos {
|
|
14
15
|
action: ActionRepo;
|
|
15
16
|
authorization: AuthorizationRepo;
|
|
16
17
|
order: OrderRepo;
|
|
18
|
+
passport: PassportRepo;
|
|
17
19
|
product: ProductRepo;
|
|
18
20
|
project: ProjectRepo;
|
|
19
21
|
seller: SellerRepo;
|
|
@@ -31,7 +33,6 @@ export type IConfirmOperation<T> = (repos: {
|
|
|
31
33
|
action: ActionRepo;
|
|
32
34
|
transaction: TransactionRepo;
|
|
33
35
|
}) => Promise<T>;
|
|
34
|
-
export type IPassportValidator = IWaiterPassportValidator;
|
|
35
36
|
export type IStartParams = MoneyTransferFactory.IStartParams;
|
|
36
37
|
/**
|
|
37
38
|
* 取引開始
|
|
@@ -19,7 +19,6 @@ const order_1 = require("../../factory/order");
|
|
|
19
19
|
const factory_1 = require("./moneyTransfer/exportTasks/factory");
|
|
20
20
|
const factory_2 = require("./moneyTransfer/factory");
|
|
21
21
|
const potentialActions_1 = require("./moneyTransfer/potentialActions");
|
|
22
|
-
const validation_1 = require("./validation");
|
|
23
22
|
const MoneyTransferAssetTransactionService = require("../assetTransaction/moneyTransfer");
|
|
24
23
|
const CodeService = require("../code");
|
|
25
24
|
/**
|
|
@@ -28,7 +27,7 @@ const CodeService = require("../code");
|
|
|
28
27
|
*/
|
|
29
28
|
function start(params) {
|
|
30
29
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const { passport } = yield
|
|
30
|
+
const { passport } = yield repos.passport.validatePassportTokenIfExist(params);
|
|
32
31
|
const sellers = yield repos.seller.search({
|
|
33
32
|
limit: 1,
|
|
34
33
|
page: 1,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as factory from '../../../../factory';
|
|
2
|
+
declare const AGENT_IDENTIFIER_NAME_PASSPORT = "passport";
|
|
3
|
+
type IVerifiedPassport = factory.waiter.passport.IPassport & {
|
|
4
|
+
/**
|
|
5
|
+
* 許可証識別子(2024-07-06~)
|
|
6
|
+
*/
|
|
7
|
+
identifier: string;
|
|
8
|
+
};
|
|
9
|
+
declare function createStartParams(params: factory.transaction.placeOrder.IStartParamsWithoutDetail, expiresInSeconds: number, passport: IVerifiedPassport | undefined, seller: Pick<factory.seller.ISeller, 'id' | 'name' | 'typeOf' | 'project' | 'additionalProperty'>, broker?: factory.order.IBroker, customerType?: string, memeberOfPayload?: factory.transaction.placeOrder.IMemberOfPayload): factory.transaction.placeOrder.IStartParams;
|
|
10
|
+
export { AGENT_IDENTIFIER_NAME_PASSPORT, createStartParams };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createStartParams = exports.AGENT_IDENTIFIER_NAME_PASSPORT = void 0;
|
|
4
|
+
const factory = require("../../../../factory");
|
|
5
|
+
const AGENT_IDENTIFIER_NAME_PASSPORT = 'passport';
|
|
6
|
+
exports.AGENT_IDENTIFIER_NAME_PASSPORT = AGENT_IDENTIFIER_NAME_PASSPORT;
|
|
7
|
+
function createStartParams(params, expiresInSeconds, passport, seller, broker, customerType, memeberOfPayload) {
|
|
8
|
+
var _a, _b, _c, _d;
|
|
9
|
+
let clientUser;
|
|
10
|
+
let instrument;
|
|
11
|
+
if (typeof ((_a = params.object.clientUser) === null || _a === void 0 ? void 0 : _a.client_id) === 'string') {
|
|
12
|
+
const { sub, token_use, iss, exp, iat, version, jti, client_id, username, aud, typ } = params.object.clientUser;
|
|
13
|
+
clientUser = { sub, token_use, iss, exp, iat, version, jti, client_id, username, aud, typ };
|
|
14
|
+
instrument = { id: client_id, typeOf: factory.creativeWorkType.WebApplication };
|
|
15
|
+
}
|
|
16
|
+
const transactionObject = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (typeof (passport === null || passport === void 0 ? void 0 : passport.scope) === 'string') ? { passport } : undefined), (typeof (clientUser === null || clientUser === void 0 ? void 0 : clientUser.client_id) === 'string') ? { clientUser } : undefined), (typeof ((_b = params.object) === null || _b === void 0 ? void 0 : _b.name) === 'string') ? { name: (_c = params.object) === null || _c === void 0 ? void 0 : _c.name } : undefined), (typeof (broker === null || broker === void 0 ? void 0 : broker.typeOf) === 'string') ? { broker: broker } : undefined), (typeof ((_d = params.object.customer) === null || _d === void 0 ? void 0 : _d.typeOf) === 'string') ? { customer: params.object.customer } : undefined), (typeof customerType === 'string') ? { customerType } : undefined);
|
|
17
|
+
if (typeof seller.id !== 'string') {
|
|
18
|
+
throw new factory.errors.NotFound('seller.id');
|
|
19
|
+
}
|
|
20
|
+
if (typeof expiresInSeconds !== 'number') {
|
|
21
|
+
throw new factory.errors.ArgumentNull('expiresInSeconds');
|
|
22
|
+
}
|
|
23
|
+
const agentIdentifier = [
|
|
24
|
+
...(Array.isArray(params.agent.identifier)) ? params.agent.identifier : [],
|
|
25
|
+
// add passport(2024-07-05~)
|
|
26
|
+
...(typeof (passport === null || passport === void 0 ? void 0 : passport.identifier) === 'string') ? [{ name: AGENT_IDENTIFIER_NAME_PASSPORT, value: passport.identifier }] : []
|
|
27
|
+
];
|
|
28
|
+
const agent = Object.assign(Object.assign(Object.assign({}, params.agent), (memeberOfPayload !== undefined) ? { memeberOfPayload } : undefined), { identifier: agentIdentifier });
|
|
29
|
+
return Object.assign({ project: { typeOf: seller.project.typeOf, id: seller.project.id }, typeOf: factory.transactionType.PlaceOrder, agent, seller: {
|
|
30
|
+
id: seller.id,
|
|
31
|
+
name: seller.name,
|
|
32
|
+
typeOf: seller.typeOf,
|
|
33
|
+
additionalProperty: (Array.isArray(seller.additionalProperty)) ? seller.additionalProperty : [] // 追加特性を追加(2023-08-08~)
|
|
34
|
+
}, object: transactionObject, expiresInSeconds }, (typeof (instrument === null || instrument === void 0 ? void 0 : instrument.id) === 'string') ? { instrument } : undefined);
|
|
35
|
+
}
|
|
36
|
+
exports.createStartParams = createStartParams;
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import type { MongoRepository as MemberRepo } from '../../../repo/member';
|
|
2
|
+
import type { PassportRepo } from '../../../repo/passport';
|
|
2
3
|
import type { MongoRepository as ProjectMakesOfferRepo } from '../../../repo/projectMakesOffer';
|
|
3
4
|
import type { MongoRepository as SellerRepo } from '../../../repo/seller';
|
|
4
5
|
import type { IStartedTransaction, MongoRepository as TransactionRepo } from '../../../repo/transaction';
|
|
5
6
|
import { placeOrder as PlaceOrderFactory } from '../../../factory/transaction';
|
|
6
7
|
interface IStartOperationRepos {
|
|
7
8
|
member: MemberRepo;
|
|
9
|
+
passport: PassportRepo;
|
|
8
10
|
projectMakesOffer: ProjectMakesOfferRepo;
|
|
9
11
|
seller: SellerRepo;
|
|
10
12
|
transaction: TransactionRepo;
|
|
11
13
|
}
|
|
12
14
|
type IStartOperation<T> = (repos: IStartOperationRepos) => Promise<T>;
|
|
13
15
|
type IStartParams = PlaceOrderFactory.IStartParams;
|
|
16
|
+
interface IStartOptions {
|
|
17
|
+
lockPassport: boolean;
|
|
18
|
+
}
|
|
14
19
|
/**
|
|
15
20
|
* 取引開始
|
|
16
21
|
*/
|
|
17
|
-
declare function start(params: IStartParams): IStartOperation<IStartedTransaction>;
|
|
22
|
+
declare function start(params: IStartParams, options: IStartOptions): IStartOperation<IStartedTransaction>;
|
|
18
23
|
export { start };
|
|
@@ -10,18 +10,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.start = void 0;
|
|
13
|
-
const errorHandler_1 = require("../../../errorHandler");
|
|
14
13
|
const factory = require("../../../factory");
|
|
15
|
-
const
|
|
16
|
-
const factory_1 = require("./factory");
|
|
14
|
+
const factory_1 = require("./start/factory");
|
|
17
15
|
const validateStartRequest_1 = require("./validation/validateStartRequest");
|
|
18
16
|
/**
|
|
19
17
|
* 取引開始
|
|
20
18
|
*/
|
|
21
|
-
function start(params) {
|
|
19
|
+
function start(params, options) {
|
|
22
20
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
23
21
|
var _a;
|
|
24
|
-
const { passport, customerType } = yield
|
|
22
|
+
const { passport, customerType } = yield repos.passport.validatePassportTokenIfExist(params);
|
|
25
23
|
const { memeberOfPayload, sellerMakesOffer, seller } = yield (0, validateStartRequest_1.validateStartRequest)(Object.assign(Object.assign(Object.assign({ project: { id: params.project.id }, seller: { id: params.seller.id } }, (typeof (passport === null || passport === void 0 ? void 0 : passport.scope) === 'string') ? { customerType } : undefined), (params.object.clientUser !== undefined) ? { clientUser: params.object.clientUser } : undefined), (typeof params.agent.memberOfToken === 'string') ? { memberOfToken: params.agent.memberOfToken } : undefined))(repos);
|
|
26
24
|
const expiresInSeconds = (_a = sellerMakesOffer.eligibleTransactionDuration) === null || _a === void 0 ? void 0 : _a.maxValue;
|
|
27
25
|
if (typeof expiresInSeconds !== 'number') {
|
|
@@ -30,14 +28,30 @@ function start(params) {
|
|
|
30
28
|
// 取引ファクトリーで新しい進行中取引オブジェクトを作成
|
|
31
29
|
const startParams = (0, factory_1.createStartParams)(params, expiresInSeconds, passport, seller, params.broker, customerType, memeberOfPayload);
|
|
32
30
|
let transaction;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
// lock passport(2024-07-05~)
|
|
32
|
+
if (options.lockPassport && passport !== undefined) {
|
|
33
|
+
try {
|
|
34
|
+
yield repos.passport.lock(passport);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
// in case already locked
|
|
38
|
+
const alreadyStartedTransaction = (yield repos.transaction.search({
|
|
39
|
+
limit: 1, page: 1,
|
|
40
|
+
typeOf: factory.transactionType.PlaceOrder,
|
|
41
|
+
project: { id: { $eq: startParams.project.id } },
|
|
42
|
+
agent: { identifiers: [{ name: factory_1.AGENT_IDENTIFIER_NAME_PASSPORT, value: passport.identifier }] },
|
|
43
|
+
inclusion: ['expires', 'startDate', 'status']
|
|
44
|
+
})).shift();
|
|
45
|
+
if (alreadyStartedTransaction !== undefined) {
|
|
46
|
+
transaction = alreadyStartedTransaction;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
39
51
|
}
|
|
40
|
-
|
|
52
|
+
}
|
|
53
|
+
if (transaction === undefined) {
|
|
54
|
+
transaction = yield repos.transaction.start(startParams);
|
|
41
55
|
}
|
|
42
56
|
return transaction;
|
|
43
57
|
});
|
|
@@ -13,7 +13,7 @@ exports.validateOrder = void 0;
|
|
|
13
13
|
// import * as createDebug from 'debug';
|
|
14
14
|
const moment = require("moment");
|
|
15
15
|
const factory = require("../../factory");
|
|
16
|
-
const factory_1 = require("../offer/event/factory");
|
|
16
|
+
const factory_1 = require("../offer/event/authorize/factory");
|
|
17
17
|
const factory_2 = require("../offer/product/factory");
|
|
18
18
|
const validateMovieTicket_1 = require("../transaction/placeOrderInProgress/validation/validateMovieTicket");
|
|
19
19
|
// const debug = createDebug('chevre-domain:service:validation');
|
package/lib/chevre/settings.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS: number;
|
|
|
4
4
|
export declare const MAXIMUM_RESERVATION_GRACE_PERIOD_IN_DAYS: number;
|
|
5
5
|
export declare const ABORTED_TASKS_WITHOUT_REPORT: string[];
|
|
6
6
|
export declare const MAX_NUM_CREDIT_CARD_PAYMENT_METHOD: number;
|
|
7
|
+
export declare const NUM_TRY_CONFIRM_RESERVE_TRANSACTION: number;
|
|
7
8
|
/**
|
|
8
9
|
* 取引保管期間(Confirmed)
|
|
9
10
|
*/
|