@chevre/domain 25.0.0-alpha.1 → 25.0.0-alpha.11
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/lib/chevre/emailMessageBuilder.d.ts +10 -4
- package/lib/chevre/emailMessageBuilder.js +48 -73
- package/lib/chevre/repo/acceptedOffer.d.ts +1 -5
- package/lib/chevre/repo/acceptedOffer.js +5 -5
- package/lib/chevre/repo/acceptedOfferInReserve.d.ts +1 -5
- package/lib/chevre/repo/acceptedOfferInReserve.js +4 -4
- package/lib/chevre/repo/emailMessage.d.ts +18 -9
- package/lib/chevre/repo/emailMessage.js +26 -36
- package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +1 -3
- package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.js +2 -3
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +9 -1
- package/lib/chevre/repo/mongoose/schemas/emailMessages.js +5 -20
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +4 -0
- package/lib/chevre/repo/mongoose/schemas/order.js +10 -109
- package/lib/chevre/repo/mongoose/schemas/setting.d.ts +0 -6
- package/lib/chevre/repo/order.d.ts +9 -6
- package/lib/chevre/repo/order.js +45 -26
- package/lib/chevre/repo/orderInTransaction.d.ts +15 -16
- package/lib/chevre/repo/orderInTransaction.js +38 -23
- package/lib/chevre/repo/orderNumber.d.ts +4 -0
- package/lib/chevre/repo/orderNumber.js +32 -60
- package/lib/chevre/repo/transaction.d.ts +5 -1
- package/lib/chevre/repo/transaction.js +4 -0
- package/lib/chevre/service/offer/any.d.ts +3 -6
- package/lib/chevre/service/offer/any.js +3 -1
- package/lib/chevre/service/offer/event/authorize.js +3 -1
- package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +1 -0
- package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +1 -0
- package/lib/chevre/service/order/deleteOrder.js +1 -1
- package/lib/chevre/service/order/placeOrder/factory.js +4 -2
- package/lib/chevre/service/order.d.ts +1 -2
- package/lib/chevre/service/order.js +1 -5
- package/lib/chevre/service/reserve/findByCode.js +1 -1
- package/lib/chevre/service/reserve/searchByOrder.js +1 -1
- package/lib/chevre/service/task/confirmReserveTransaction.js +1 -1
- package/lib/chevre/service/task/payment/payByTask.js +1 -1
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.d.ts +0 -1
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +8 -23
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.d.ts +0 -1
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +1 -6
- package/lib/chevre/service/transaction/placeOrder/confirm.d.ts +1 -3
- package/lib/chevre/service/transaction/placeOrder/confirm.js +17 -14
- package/lib/chevre/service/transaction/placeOrder/start/factory.d.ts +0 -1
- package/lib/chevre/service/transaction/placeOrder/start/factory.js +3 -5
- package/lib/chevre/service/transaction/placeOrder/updateAgent.js +1 -0
- package/lib/chevre/service/transaction/placeOrder.d.ts +2 -2
- package/lib/chevre/service/transaction/placeOrder.js +3 -3
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -37
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.d.ts +2 -2
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -18
- package/lib/chevre/service/transaction/returnOrder/potentialActions.d.ts +0 -1
- package/lib/chevre/service/transaction/returnOrder/potentialActions.js +0 -4
- package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -1
- package/lib/chevre/service/transaction/returnOrder.d.ts +0 -2
- package/lib/chevre/service/transaction/returnOrder.js +13 -12
- package/lib/chevre/service/validation/validateOrder.js +1 -1
- package/lib/chevre/service.d.ts +0 -2
- package/lib/chevre/service.js +0 -2
- package/package.json +2 -2
- package/lib/chevre/factory/order.d.ts +0 -2
- package/lib/chevre/factory/order.js +0 -5
- package/lib/chevre/service/order/placeOrderWithoutTransaction.d.ts +0 -22
- package/lib/chevre/service/order/placeOrderWithoutTransaction.js +0 -51
|
@@ -17,36 +17,25 @@ const ORDER_NUMBER_SEPARATOR = '-';
|
|
|
17
17
|
class OrderNumberRepo {
|
|
18
18
|
counterRepo;
|
|
19
19
|
settingModel;
|
|
20
|
+
// static にすることで、クラスが何回 new されてもメモリ上で1つだけ保持される
|
|
21
|
+
static cachedSettings;
|
|
22
|
+
static cacheExpiry = 0;
|
|
23
|
+
static CACHE_TTL_MS = 10 * 60 * 1000; // 10分
|
|
20
24
|
constructor(params) {
|
|
21
25
|
this.counterRepo = new transactionNumberCounter_1.TransactionNumberCounterRepo(params);
|
|
22
26
|
this.settingModel = params.connection.model(setting_1.modelName, (0, setting_1.createSchema)());
|
|
23
27
|
}
|
|
24
|
-
// public static GENERATE_VERSION0(timestamp: string, seq: number): string {
|
|
25
|
-
// let orderNumber = `${timestamp}${seq}`;
|
|
26
|
-
// // checkdigit
|
|
27
|
-
// const cd = cdigit.luhn.compute(orderNumber);
|
|
28
|
-
// orderNumber = fpe({ password: cd })
|
|
29
|
-
// .encrypt(orderNumber);
|
|
30
|
-
// orderNumber = `${cd}${orderNumber}`;
|
|
31
|
-
// return orderNumber;
|
|
32
|
-
// }
|
|
33
28
|
/**
|
|
34
29
|
* 注文日時から新しい注文番号を発行する
|
|
35
30
|
* グローバルユニークである前提
|
|
36
31
|
*/
|
|
37
32
|
async issueOrderNumber(params) {
|
|
38
|
-
const { fpeSecret, version
|
|
39
|
-
// versioningForceProjects
|
|
40
|
-
// versioningExceptionProjects
|
|
41
|
-
} = await this.findSetting();
|
|
33
|
+
const { fpeSecret, version } = await this.findSetting();
|
|
42
34
|
const timestamp = (0, moment_timezone_1.default)(params.orderDate)
|
|
43
35
|
.valueOf()
|
|
44
36
|
.toString();
|
|
45
|
-
// const projectPrefix = params.project.alternateName
|
|
46
|
-
// .toUpperCase();
|
|
47
37
|
const projectPrefix = params.project.alternateName
|
|
48
38
|
.toUpperCase().at(0);
|
|
49
|
-
// const dataFeedIdentifier = `${projectPrefix}:${timestamp}`;
|
|
50
39
|
const dataFeedIdentifier = timestamp; // reconsider increment scope(2026-02-21~)
|
|
51
40
|
const dataFeedExpires = (0, moment_timezone_1.default)(params.orderDate)
|
|
52
41
|
.add(1, 'minute') // ミリ秒でカウントしていくので、注文日時後1分で十分
|
|
@@ -57,32 +46,16 @@ class OrderNumberRepo {
|
|
|
57
46
|
expires: dataFeedExpires
|
|
58
47
|
});
|
|
59
48
|
let orderNumber;
|
|
60
|
-
const useVersioning = (validFrom instanceof Date && (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
orderNumber
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
].join(ORDER_NUMBER_SEPARATOR)}`;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
// discontinue version0(2026-02-13~)
|
|
74
|
-
throw new factory_1.factory.errors.NotImplemented('orderNumber with no version discontinued');
|
|
75
|
-
// orderNumber = OrderNumberRepo.GENERATE_VERSION0(timestamp, incrReply);
|
|
76
|
-
// orderNumber = `${projectPrefix}${orderNumber}`;
|
|
77
|
-
// orderNumber = `${[
|
|
78
|
-
// // tslint:disable-next-line:no-magic-numbers
|
|
79
|
-
// orderNumber.slice(0, 4),
|
|
80
|
-
// // tslint:disable-next-line:no-magic-numbers
|
|
81
|
-
// orderNumber.slice(4, 11),
|
|
82
|
-
// // tslint:disable-next-line:no-magic-numbers
|
|
83
|
-
// orderNumber.slice(11)
|
|
84
|
-
// ].join(ORDER_NUMBER_SEPARATOR)}`;
|
|
85
|
-
}
|
|
49
|
+
// const useVersioning: boolean = (validFrom instanceof Date && moment(validFrom)
|
|
50
|
+
// .isSameOrBefore(params.orderDate));
|
|
51
|
+
const transactionFactory = new transactionNumber_1.TransactionNumberFactory({ fpeSecret, version });
|
|
52
|
+
orderNumber = transactionFactory.generate(timestamp, incrReply);
|
|
53
|
+
orderNumber = `${projectPrefix}${orderNumber}`; // 桁数をversion0に合わせるためにエイリアスの1文字目のみを採用
|
|
54
|
+
orderNumber = `${[
|
|
55
|
+
orderNumber.slice(0, 4),
|
|
56
|
+
orderNumber.slice(4, 11),
|
|
57
|
+
orderNumber.slice(11)
|
|
58
|
+
].join(ORDER_NUMBER_SEPARATOR)}`;
|
|
86
59
|
return orderNumber;
|
|
87
60
|
}
|
|
88
61
|
async decrypt(id) {
|
|
@@ -97,41 +70,40 @@ class OrderNumberRepo {
|
|
|
97
70
|
throw new factory_1.factory.errors.NotImplemented('no version not implemented');
|
|
98
71
|
}
|
|
99
72
|
}
|
|
73
|
+
clearSettingCache() {
|
|
74
|
+
OrderNumberRepo.cacheExpiry = 0;
|
|
75
|
+
OrderNumberRepo.cachedSettings = undefined;
|
|
76
|
+
}
|
|
100
77
|
/**
|
|
101
78
|
* 注文番号生成設定を検索する
|
|
102
79
|
*/
|
|
103
80
|
async findSetting() {
|
|
81
|
+
const now = Date.now();
|
|
82
|
+
// キャッシュ参照(2026-06-22~)
|
|
83
|
+
if (OrderNumberRepo.cachedSettings !== undefined && now < OrderNumberRepo.cacheExpiry) {
|
|
84
|
+
return OrderNumberRepo.cachedSettings;
|
|
85
|
+
}
|
|
104
86
|
const filterQuery = { 'project.id': { $eq: '*' } };
|
|
105
|
-
const
|
|
87
|
+
const setting = await this.settingModel.findOne(filterQuery, {
|
|
106
88
|
_id: 0,
|
|
107
89
|
orderNumber: 1
|
|
108
|
-
}
|
|
109
|
-
const setting = await this.settingModel.findOne(filterQuery, projection)
|
|
90
|
+
})
|
|
110
91
|
.lean()
|
|
111
92
|
.exec();
|
|
112
93
|
if (setting === null || setting.orderNumber === undefined) {
|
|
113
|
-
|
|
114
|
-
// versioningForceProjects: []
|
|
115
|
-
// versioningExceptionProjects: []
|
|
116
|
-
};
|
|
94
|
+
throw new factory_1.factory.errors.NotFound('setting.orderNumber');
|
|
117
95
|
}
|
|
118
|
-
const { fpeSecret, version
|
|
96
|
+
const { fpeSecret, version } = setting.orderNumber;
|
|
119
97
|
if (typeof fpeSecret !== 'string' || fpeSecret === '') {
|
|
120
98
|
throw new factory_1.factory.errors.NotFound('setting.orderNumber.secret');
|
|
121
99
|
}
|
|
122
100
|
if (typeof version !== 'string' || version === '') {
|
|
123
101
|
throw new factory_1.factory.errors.NotFound('setting.orderNumber.version');
|
|
124
102
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
return
|
|
129
|
-
fpeSecret, version, validFrom
|
|
130
|
-
// versioningForceProjects: [
|
|
131
|
-
// ...(Array.isArray(versioningForceProjects)) ? versioningForceProjects : []
|
|
132
|
-
// ]
|
|
133
|
-
// versioningExceptionProjects: (Array.isArray(versioningExceptionProjects)) ? versioningExceptionProjects : []
|
|
134
|
-
};
|
|
103
|
+
// キャッシュを更新
|
|
104
|
+
OrderNumberRepo.cachedSettings = { fpeSecret, version };
|
|
105
|
+
OrderNumberRepo.cacheExpiry = now + OrderNumberRepo.CACHE_TTL_MS;
|
|
106
|
+
return OrderNumberRepo.cachedSettings;
|
|
135
107
|
}
|
|
136
108
|
}
|
|
137
109
|
exports.OrderNumberRepo = OrderNumberRepo;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Connection } from 'mongoose';
|
|
1
|
+
import type { Connection, UpdateQuery } from 'mongoose';
|
|
2
2
|
import { factory } from '../factory';
|
|
3
3
|
import { IDocType } from './mongoose/schemas/transaction';
|
|
4
4
|
interface IAggregationByStatus {
|
|
@@ -116,6 +116,10 @@ export declare class TransactionRepo {
|
|
|
116
116
|
filter: any;
|
|
117
117
|
$unset: any;
|
|
118
118
|
}): Promise<import("mongoose").UpdateWriteOpResult>;
|
|
119
|
+
updateById4migration(params: {
|
|
120
|
+
id: string;
|
|
121
|
+
update: UpdateQuery<IDocType>;
|
|
122
|
+
}): Promise<import("mongoose").UpdateWriteOpResult>;
|
|
119
123
|
/**
|
|
120
124
|
* 終了日時を一定期間過ぎたアクションを削除する
|
|
121
125
|
*/
|
|
@@ -297,6 +297,10 @@ class TransactionRepo {
|
|
|
297
297
|
return this.transactionModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
|
|
298
298
|
.exec();
|
|
299
299
|
}
|
|
300
|
+
async updateById4migration(params) {
|
|
301
|
+
return this.transactionModel.updateOne({ _id: { $eq: params.id } }, params.update)
|
|
302
|
+
.exec();
|
|
303
|
+
}
|
|
300
304
|
/**
|
|
301
305
|
* 終了日時を一定期間過ぎたアクションを削除する
|
|
302
306
|
*/
|
|
@@ -10,12 +10,9 @@ export declare function acceptOffer(params: {
|
|
|
10
10
|
project: {
|
|
11
11
|
id: string;
|
|
12
12
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*/
|
|
17
|
-
priceSpecification?: factory.order.ITicketPriceSpecification;
|
|
18
|
-
})[];
|
|
13
|
+
placeOrderId: string;
|
|
14
|
+
acceptedOffers: IMinimizedAcceptedOffer[] | factory.order.ICOAAcceptedOffer[];
|
|
15
|
+
broker?: factory.order.IBroker;
|
|
19
16
|
}): IAcceptOfferOperation<void>;
|
|
20
17
|
export declare function voidAcceptedOffer(params: {
|
|
21
18
|
/**
|
|
@@ -13,7 +13,9 @@ function acceptOffer(params) {
|
|
|
13
13
|
await repos.orderInTransaction.acceptOffer({
|
|
14
14
|
orderNumber: params.orderNumber,
|
|
15
15
|
project: { id: params.project.id, typeOf: factory_1.factory.organizationType.Project },
|
|
16
|
-
|
|
16
|
+
identifier: params.placeOrderId,
|
|
17
|
+
acceptedOffers: params.acceptedOffers,
|
|
18
|
+
...((params.broker !== undefined) && { broker: params.broker })
|
|
17
19
|
});
|
|
18
20
|
};
|
|
19
21
|
}
|
|
@@ -66,7 +66,9 @@ function authorize(params, options) {
|
|
|
66
66
|
await (0, any_1.acceptOffer)({
|
|
67
67
|
orderNumber,
|
|
68
68
|
project: transaction.project,
|
|
69
|
-
|
|
69
|
+
placeOrderId: transaction.id,
|
|
70
|
+
acceptedOffers: minimizedAcceptedOffers,
|
|
71
|
+
...((typeof params.object.broker?.typeOf === 'string') && { broker: params.object.broker })
|
|
70
72
|
})(repos);
|
|
71
73
|
}
|
|
72
74
|
}
|
|
@@ -93,7 +93,7 @@ function deleteReservationsByOrder(order) {
|
|
|
93
93
|
const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
94
94
|
orderNumber: { $eq: order.orderNumber },
|
|
95
95
|
project: { id: { $eq: order.project.id } },
|
|
96
|
-
}
|
|
96
|
+
});
|
|
97
97
|
const reservationIds = acceptedOffers.map((o) => String(o.itemOffered.id));
|
|
98
98
|
if (reservationIds.length > 0) {
|
|
99
99
|
await repos.reservation.deleteByIds({ project: { id: order.project.id }, ids: reservationIds });
|
|
@@ -95,7 +95,9 @@ function createPlacingOrder(params) {
|
|
|
95
95
|
// discontinue(2026-06-11~)
|
|
96
96
|
// const name: string | undefined =
|
|
97
97
|
// (typeof transaction.object.name === 'string') ? transaction.object.name : undefined;
|
|
98
|
-
|
|
98
|
+
// discontinue(2026-06-22~)
|
|
99
|
+
// const broker: factory.order.IBroker | undefined =
|
|
100
|
+
// (typeof transaction.object.broker?.typeOf === 'string') ? transaction.object.broker : undefined;
|
|
99
101
|
const { paymentMethods, price } = createPaymentMethods({ authorizePaymentActions });
|
|
100
102
|
const eventReservationAcceptedOffers = [];
|
|
101
103
|
params.acceptedOffers.forEach((acceptedOffer) => {
|
|
@@ -125,6 +127,6 @@ function createPlacingOrder(params) {
|
|
|
125
127
|
.toDate(),
|
|
126
128
|
orderedItem, // 2024-06-18~
|
|
127
129
|
// ...(typeof name === 'string') ? { name } : undefined, // discontinue(2026-06-11~)
|
|
128
|
-
...(typeof broker?.typeOf === 'string') ? { broker } : undefined //
|
|
130
|
+
// ...(typeof broker?.typeOf === 'string') ? { broker } : undefined // discontinue(2026-06-22~)
|
|
129
131
|
};
|
|
130
132
|
}
|
|
@@ -6,5 +6,4 @@ import { paymentDue2Processing } from './order/onAssetTransactionStatusChanged';
|
|
|
6
6
|
import { processOrder } from './order/onOrderStatusChanged';
|
|
7
7
|
import { onOrderUpdated } from './order/onOrderUpdated';
|
|
8
8
|
import { placeOrder } from './order/placeOrder';
|
|
9
|
-
|
|
10
|
-
export { confirmPayTransaction, onOrderUpdated, paymentDue2Processing, placeOrder, placeOrderWithoutTransaction, processOrder, };
|
|
9
|
+
export { confirmPayTransaction, onOrderUpdated, paymentDue2Processing, placeOrder, processOrder, };
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processOrder = exports.
|
|
3
|
+
exports.processOrder = exports.placeOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.confirmPayTransaction = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 注文サービス
|
|
6
6
|
*/
|
|
7
7
|
const confirmPayTransaction_1 = require("./order/confirmPayTransaction");
|
|
8
8
|
Object.defineProperty(exports, "confirmPayTransaction", { enumerable: true, get: function () { return confirmPayTransaction_1.confirmPayTransaction; } });
|
|
9
|
-
// import { deleteOrder } from './order/deleteOrder';
|
|
10
9
|
const onAssetTransactionStatusChanged_1 = require("./order/onAssetTransactionStatusChanged");
|
|
11
10
|
Object.defineProperty(exports, "paymentDue2Processing", { enumerable: true, get: function () { return onAssetTransactionStatusChanged_1.paymentDue2Processing; } });
|
|
12
11
|
const onOrderStatusChanged_1 = require("./order/onOrderStatusChanged");
|
|
13
12
|
Object.defineProperty(exports, "processOrder", { enumerable: true, get: function () { return onOrderStatusChanged_1.processOrder; } });
|
|
14
13
|
const onOrderUpdated_1 = require("./order/onOrderUpdated");
|
|
15
14
|
Object.defineProperty(exports, "onOrderUpdated", { enumerable: true, get: function () { return onOrderUpdated_1.onOrderUpdated; } });
|
|
16
|
-
// import { payOrder } from './order/payOrder';
|
|
17
15
|
const placeOrder_1 = require("./order/placeOrder");
|
|
18
16
|
Object.defineProperty(exports, "placeOrder", { enumerable: true, get: function () { return placeOrder_1.placeOrder; } });
|
|
19
|
-
const placeOrderWithoutTransaction_1 = require("./order/placeOrderWithoutTransaction");
|
|
20
|
-
Object.defineProperty(exports, "placeOrderWithoutTransaction", { enumerable: true, get: function () { return placeOrderWithoutTransaction_1.placeOrderWithoutTransaction; } });
|
|
@@ -39,7 +39,7 @@ function findByCode(params) {
|
|
|
39
39
|
// typeOf?: { $in?: factory.order.IItemOffered['typeOf'][] };
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
}
|
|
42
|
+
})).shift();
|
|
43
43
|
if (acceptedOffer === undefined) {
|
|
44
44
|
throw new factory_1.factory.errors.NotFound('acceptedOffer');
|
|
45
45
|
}
|
|
@@ -16,7 +16,7 @@ function searchByOrder(params) {
|
|
|
16
16
|
// typeOf: { $in: [reservationType] }
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
}
|
|
19
|
+
});
|
|
20
20
|
const reservationIds = acceptedOffers.map((offer) => {
|
|
21
21
|
if (offer.itemOffered.typeOf === reservationType) {
|
|
22
22
|
return offer.itemOffered.id;
|
|
@@ -139,7 +139,7 @@ function fixOrderAsPurpose(params) {
|
|
|
139
139
|
const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
|
|
140
140
|
orderNumber: { $eq: order.orderNumber },
|
|
141
141
|
project: { id: { $eq: params.project.id } }
|
|
142
|
-
}
|
|
142
|
+
});
|
|
143
143
|
return {
|
|
144
144
|
...order,
|
|
145
145
|
acceptedOffers
|
package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ export declare function createSendEmailMessageActions(params: {
|
|
|
12
12
|
seller: factory.order.ISeller;
|
|
13
13
|
paymentMethods: factory.order.IReferencedInvoice[];
|
|
14
14
|
potentialActions?: factory.transaction.placeOrder.IPotentialActionsParams;
|
|
15
|
-
emailMessage?: factory.creativeWork.message.email.ICreativeWork;
|
|
16
15
|
}, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<{
|
|
17
16
|
emailMessages: factory.action.transfer.send.message.email.IObjectAsEmailMessage[];
|
|
18
17
|
sendEmailMessageActions: factory.transaction.placeOrder.IPotentialSendEmailMessageAction[];
|
package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js
CHANGED
|
@@ -3,34 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createSendEmailMessageActions = createSendEmailMessageActions;
|
|
4
4
|
const emailMessageBuilder_1 = require("../../../../../emailMessageBuilder");
|
|
5
5
|
const factory_1 = require("../../../../../factory");
|
|
6
|
-
async function createSendEmailMessageActions(params,
|
|
7
|
-
// settings: Settings
|
|
8
|
-
setting) {
|
|
6
|
+
async function createSendEmailMessageActions(params, setting) {
|
|
9
7
|
// 注文配送メール送信設定
|
|
10
8
|
const emailMessages = [];
|
|
11
|
-
// const sendEmailMessageActions: factory.action.transfer.send.message.email.IAttributes[] = [];
|
|
12
9
|
const sendEmailMessageActions = [];
|
|
13
|
-
// const sendActionPurpose: factory.action.transfer.send.message.email.IPurpose = {
|
|
14
|
-
// typeOf: params.order.typeOf,
|
|
15
|
-
// orderNumber: params.order.orderNumber,
|
|
16
|
-
// price: params.order.price,
|
|
17
|
-
// priceCurrency: params.order.priceCurrency,
|
|
18
|
-
// orderDate: params.order.orderDate
|
|
19
|
-
// };
|
|
20
10
|
const sendEmailMessageOnOrderSentParams = params.potentialActions?.order?.potentialActions?.sendOrder?.potentialActions?.sendEmailMessage;
|
|
21
11
|
if (Array.isArray(sendEmailMessageOnOrderSentParams)) {
|
|
12
|
+
// pugテンプレートに渡す変数を最小化(2026-06-19~)
|
|
22
13
|
const orderAsCreateEmailParams = {
|
|
23
|
-
...params.order,
|
|
14
|
+
// ...params.order,
|
|
15
|
+
// paymentMethods: params.paymentMethods
|
|
24
16
|
customer: params.customer,
|
|
25
17
|
seller: params.seller,
|
|
26
|
-
|
|
18
|
+
orderNumber: params.order.orderNumber,
|
|
19
|
+
confirmationNumber: params.order.confirmationNumber,
|
|
20
|
+
price: params.order.price
|
|
27
21
|
};
|
|
28
22
|
await Promise.all(sendEmailMessageOnOrderSentParams.map(async (s, index) => {
|
|
29
23
|
const emailMessage = await (0, emailMessageBuilder_1.createSendOrderMessage)({
|
|
30
24
|
order: orderAsCreateEmailParams,
|
|
31
25
|
index,
|
|
32
26
|
...(s.object !== undefined) ? { email: s.object } : undefined,
|
|
33
|
-
...(params.emailMessage !== undefined) ? { emailMessage: params.emailMessage } : undefined
|
|
27
|
+
// ...(params.emailMessage !== undefined) ? { emailMessage: params.emailMessage } : undefined
|
|
34
28
|
}, setting);
|
|
35
29
|
emailMessages.push(emailMessage);
|
|
36
30
|
// 送信アクション最適化に対応(2024-04-29~)
|
|
@@ -40,16 +34,7 @@ setting) {
|
|
|
40
34
|
};
|
|
41
35
|
// optimize(2024-05-07~)
|
|
42
36
|
sendEmailMessageActions.push({
|
|
43
|
-
// project: params.order.project,
|
|
44
|
-
// typeOf: factory.actionType.SendAction,
|
|
45
37
|
object: sendEmailMessageActionObject
|
|
46
|
-
// agent: params.order.project,
|
|
47
|
-
// recipient: {
|
|
48
|
-
// typeOf: params.order.customer.typeOf,
|
|
49
|
-
// id: params.order.customer.id
|
|
50
|
-
// },
|
|
51
|
-
// potentialActions: {},
|
|
52
|
-
// purpose: sendActionPurpose
|
|
53
38
|
});
|
|
54
39
|
}));
|
|
55
40
|
}
|
|
@@ -15,7 +15,6 @@ export declare function createPotentialActions(params: {
|
|
|
15
15
|
seller: factory.order.ISeller;
|
|
16
16
|
paymentMethods: factory.order.IReferencedInvoice[];
|
|
17
17
|
potentialActions?: factory.transaction.placeOrder.IPotentialActionsParams;
|
|
18
|
-
emailMessage?: factory.creativeWork.message.email.ICreativeWork;
|
|
19
18
|
}, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<{
|
|
20
19
|
potentialActions: factory.transaction.placeOrder.IPotentialActions;
|
|
21
20
|
emailMessages: factory.creativeWork.message.email.ICreativeWork[];
|
|
@@ -5,14 +5,9 @@ const sendEmailMessage_1 = require("./potentialActions/sendEmailMessage");
|
|
|
5
5
|
/**
|
|
6
6
|
* 取引のポストアクションを作成する
|
|
7
7
|
*/
|
|
8
|
-
async function createPotentialActions(params,
|
|
9
|
-
// settings: Settings
|
|
10
|
-
setting) {
|
|
8
|
+
async function createPotentialActions(params, setting) {
|
|
11
9
|
// 注文処理開始メール送信設定
|
|
12
10
|
const { emailMessages, sendEmailMessageActions } = await (0, sendEmailMessage_1.createSendEmailMessageActions)(params, setting);
|
|
13
|
-
// const sendOrderActionAttributes: factory.transaction.placeOrder.IPotentialSendOrderAction = {
|
|
14
|
-
// potentialActions: { sendEmailMessage: sendEmailMessageActions }
|
|
15
|
-
// };
|
|
16
11
|
return {
|
|
17
12
|
emailMessages,
|
|
18
13
|
potentialActions: {
|
|
@@ -4,7 +4,6 @@ import type { AuthorizeOfferActionRepo } from '../../../repo/action/authorizeOff
|
|
|
4
4
|
import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
5
5
|
import type { AuthorizationRepo } from '../../../repo/authorization';
|
|
6
6
|
import type { ConfirmationNumberRepo } from '../../../repo/confirmationNumber';
|
|
7
|
-
import type { EmailMessageRepo } from '../../../repo/emailMessage';
|
|
8
7
|
import type { MessageRepo } from '../../../repo/message';
|
|
9
8
|
import type { OrderInTransactionRepo } from '../../../repo/orderInTransaction';
|
|
10
9
|
import type { ProjectRepo } from '../../../repo/project';
|
|
@@ -18,7 +17,6 @@ interface IConfirmOperationRepos {
|
|
|
18
17
|
authorizeOfferAction: AuthorizeOfferActionRepo;
|
|
19
18
|
assetTransaction: AssetTransactionRepo;
|
|
20
19
|
authorization: AuthorizationRepo;
|
|
21
|
-
emailMessage?: EmailMessageRepo;
|
|
22
20
|
message: MessageRepo;
|
|
23
21
|
project: ProjectRepo;
|
|
24
22
|
placeOrder: PlaceOrderRepo;
|
|
@@ -41,7 +39,7 @@ interface IConfirmOptions {
|
|
|
41
39
|
*/
|
|
42
40
|
maxNumCreditCardPaymentMethod: number;
|
|
43
41
|
/**
|
|
44
|
-
* 取引ドキュメントのresult.orderを保管しないオプション(2026-06-15~)
|
|
42
|
+
* 取引ドキュメントのresult.order,result,numAcceptedOffersを保管しないオプション(2026-06-15~)
|
|
45
43
|
*/
|
|
46
44
|
disableResultOrder: boolean;
|
|
47
45
|
}
|
|
@@ -136,17 +136,18 @@ function confirm(params, options) {
|
|
|
136
136
|
acceptedOffers, payTransactions, customer,
|
|
137
137
|
...(typeof code === 'string') ? { code } : undefined
|
|
138
138
|
}, options);
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
139
|
+
// discontinue emailMessageRepo
|
|
140
|
+
// // デフォルトEメールメッセージを検索
|
|
141
|
+
// let emailMessageOnOrderSent: factory.creativeWork.message.email.ICreativeWork | undefined;
|
|
142
|
+
// if (repos.emailMessage !== undefined) {
|
|
143
|
+
// const searchEmailMessagesResult = await repos.emailMessage.search({
|
|
144
|
+
// limit: 1,
|
|
145
|
+
// page: 1,
|
|
146
|
+
// project: { id: { $eq: transaction.project.id } },
|
|
147
|
+
// about: { identifier: { $eq: factory.creativeWork.message.email.AboutIdentifier.OnOrderSent } }
|
|
148
|
+
// });
|
|
149
|
+
// emailMessageOnOrderSent = searchEmailMessagesResult.shift();
|
|
150
|
+
// }
|
|
150
151
|
// ポストアクションを作成
|
|
151
152
|
const setting = await repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['defaultSenderEmail']);
|
|
152
153
|
if (typeof setting?.defaultSenderEmail !== 'string') {
|
|
@@ -160,7 +161,7 @@ function confirm(params, options) {
|
|
|
160
161
|
// order: orderWithAcceptedOffers, // 現時点でcreateEmailMessageでorder.acceptedOffersを使用している(2024-02-06~)
|
|
161
162
|
// transaction: transaction,
|
|
162
163
|
...(params.potentialActions !== undefined) ? { potentialActions: params.potentialActions } : undefined,
|
|
163
|
-
...(emailMessageOnOrderSent !== undefined) ? { emailMessage: emailMessageOnOrderSent } : undefined
|
|
164
|
+
// ...(emailMessageOnOrderSent !== undefined) ? { emailMessage: emailMessageOnOrderSent } : undefined
|
|
164
165
|
},
|
|
165
166
|
// settings
|
|
166
167
|
setting);
|
|
@@ -372,9 +373,11 @@ function createResult(params, options) {
|
|
|
372
373
|
placingOrder,
|
|
373
374
|
result: {
|
|
374
375
|
authorizeActions, // 追加(2024-01-17~)
|
|
375
|
-
numAcceptedOffers: params.acceptedOffers.length, // 追加(2024-01-17~)
|
|
376
376
|
...(typeof params.code === 'string') ? { code: params.code } : undefined,
|
|
377
|
-
...((!options.disableResultOrder) && { order: orderAsResult }) // support disableResultOrder(2026-06-15~)
|
|
377
|
+
...((!options.disableResultOrder) && { order: orderAsResult }), // support disableResultOrder(2026-06-15~)
|
|
378
|
+
...((!options.disableResultOrder) && {
|
|
379
|
+
numAcceptedOffers: params.acceptedOffers.length, // 追加(2024-01-17~)
|
|
380
|
+
}) // support disableResultOrder(2026-06-17~)
|
|
378
381
|
},
|
|
379
382
|
...(typeof eventId === 'string') ? { eventId } : undefined,
|
|
380
383
|
...(Array.isArray(reservationIds)) ? { reservationIds } : undefined
|
|
@@ -13,7 +13,6 @@ type IStartPlaceOrderParams = factory.transaction.placeOrder.IStartParamsWithout
|
|
|
13
13
|
*/
|
|
14
14
|
clientUser: factory.transaction.placeOrder.IClientUserBeforeStart;
|
|
15
15
|
};
|
|
16
|
-
broker?: factory.order.IBroker;
|
|
17
16
|
};
|
|
18
17
|
declare function createStartParams(params: IStartPlaceOrderParams, expiresInSeconds: number, passport: IVerifiedPassport | undefined, seller: Pick<factory.seller.ISeller, 'id' | 'name' | 'typeOf' | 'project' | 'additionalProperty'>, customerType?: string): factory.transaction.placeOrder.IStartParams;
|
|
19
18
|
export { AGENT_IDENTIFIER_NAME_PASSPORT, createStartParams, IStartPlaceOrderParams };
|
|
@@ -5,10 +5,8 @@ exports.createStartParams = createStartParams;
|
|
|
5
5
|
const factory_1 = require("../../../../factory");
|
|
6
6
|
const AGENT_IDENTIFIER_NAME_PASSPORT = 'passport';
|
|
7
7
|
exports.AGENT_IDENTIFIER_NAME_PASSPORT = AGENT_IDENTIFIER_NAME_PASSPORT;
|
|
8
|
-
function createStartParams(params, expiresInSeconds, passport, seller,
|
|
9
|
-
// broker
|
|
10
|
-
customerType) {
|
|
11
|
-
const { broker } = params;
|
|
8
|
+
function createStartParams(params, expiresInSeconds, passport, seller, customerType) {
|
|
9
|
+
// const { broker } = params;
|
|
12
10
|
// let clientUser: Omit<factory.clientUser.IClientUser, 'scope' | 'scopes'> | undefined;
|
|
13
11
|
let instrument;
|
|
14
12
|
if (typeof params.object.clientUser?.client_id === 'string') {
|
|
@@ -21,7 +19,7 @@ customerType) {
|
|
|
21
19
|
// ...(typeof passport?.scope === 'string') ? { passport } : undefined, // discontinue(2026-06-10~)
|
|
22
20
|
// ...(typeof clientUser?.client_id === 'string') ? { clientUser } : undefined, // discontinue(2026-06-10~)
|
|
23
21
|
// ...(typeof params.object?.name === 'string') ? { name: params.object?.name } : undefined, // discontinue(2026-06-11~)
|
|
24
|
-
...(typeof broker?.typeOf === 'string') ? { broker: broker } : undefined,
|
|
22
|
+
// ...(typeof broker?.typeOf === 'string') ? { broker: broker } : undefined, // discontinue(2026-06-22~)
|
|
25
23
|
...(typeof params.object.customer?.typeOf === 'string') ? { customer: params.object.customer } : undefined,
|
|
26
24
|
...(typeof customerType === 'string') ? { customerType } : undefined
|
|
27
25
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 注文取引サービス
|
|
3
3
|
*/
|
|
4
|
-
import { POINT_AWARD_IDENTIFIER_NAME } from '../../factory/order';
|
|
5
4
|
import { confirm } from './placeOrder/confirm';
|
|
6
5
|
import { exportTasksById } from './placeOrder/exportTasksById';
|
|
7
6
|
import { start, IStartPlaceOrderParams } from './placeOrder/start';
|
|
8
7
|
import { updateAgent } from './placeOrder/updateAgent';
|
|
9
|
-
|
|
8
|
+
import { issueOrderNumberIfNotExist } from './placeOrder/issueOrderNumberIfNotExist';
|
|
9
|
+
export { confirm, start, IStartPlaceOrderParams, exportTasksById, updateAgent, issueOrderNumberIfNotExist };
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.issueOrderNumberIfNotExist = exports.updateAgent = exports.exportTasksById = exports.start = exports.confirm = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 注文取引サービス
|
|
6
6
|
*/
|
|
7
|
-
const order_1 = require("../../factory/order");
|
|
8
|
-
Object.defineProperty(exports, "POINT_AWARD_IDENTIFIER_NAME", { enumerable: true, get: function () { return order_1.POINT_AWARD_IDENTIFIER_NAME; } });
|
|
9
7
|
const confirm_1 = require("./placeOrder/confirm");
|
|
10
8
|
Object.defineProperty(exports, "confirm", { enumerable: true, get: function () { return confirm_1.confirm; } });
|
|
11
9
|
const exportTasksById_1 = require("./placeOrder/exportTasksById");
|
|
@@ -14,3 +12,5 @@ const start_1 = require("./placeOrder/start");
|
|
|
14
12
|
Object.defineProperty(exports, "start", { enumerable: true, get: function () { return start_1.start; } });
|
|
15
13
|
const updateAgent_1 = require("./placeOrder/updateAgent");
|
|
16
14
|
Object.defineProperty(exports, "updateAgent", { enumerable: true, get: function () { return updateAgent_1.updateAgent; } });
|
|
15
|
+
const issueOrderNumberIfNotExist_1 = require("./placeOrder/issueOrderNumberIfNotExist");
|
|
16
|
+
Object.defineProperty(exports, "issueOrderNumberIfNotExist", { enumerable: true, get: function () { return issueOrderNumberIfNotExist_1.issueOrderNumberIfNotExist; } });
|