@chevre/domain 25.0.0-alpha.5 → 25.0.0-alpha.6
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 +6 -4
- package/lib/chevre/emailMessageBuilder.js +48 -79
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +2 -37
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.d.ts +2 -1
- package/package.json +1 -1
|
@@ -7,13 +7,15 @@ type ISendableEmailMessage = factory.action.transfer.send.message.email.IObjectA
|
|
|
7
7
|
/**
|
|
8
8
|
* 注文取引確定時の指定テンプレートで利用可能な注文変数
|
|
9
9
|
*/
|
|
10
|
-
type
|
|
11
|
-
|
|
10
|
+
type IOrderAsCreateEmailParams = Pick<factory.order.IOrder, 'orderNumber' | 'confirmationNumber' | 'price'> & {
|
|
11
|
+
customer: Pick<factory.order.ICustomer, 'givenName' | 'familyName' | 'email' | 'typeOf'>;
|
|
12
|
+
seller: Pick<factory.order.ISeller, 'name' | 'typeOf'>;
|
|
13
|
+
};
|
|
12
14
|
/**
|
|
13
15
|
* 注文配送メッセージを作成する
|
|
14
16
|
*/
|
|
15
17
|
declare function createSendOrderMessage(params: {
|
|
16
|
-
order:
|
|
18
|
+
order: IOrderAsCreateEmailParams;
|
|
17
19
|
email?: factory.creativeWork.message.email.ICustomization;
|
|
18
20
|
emailMessage?: never;
|
|
19
21
|
index: number;
|
|
@@ -35,4 +37,4 @@ declare function createRefundMessage(params: {
|
|
|
35
37
|
email?: factory.creativeWork.message.email.ICustomization;
|
|
36
38
|
paymentMethodId: string;
|
|
37
39
|
}, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<ISendableEmailMessage>;
|
|
38
|
-
export { createSendOrderMessage, createReturnOrderMessage, createRefundMessage, IOrderAsCreateEmailParams
|
|
40
|
+
export { createSendOrderMessage, createReturnOrderMessage, createRefundMessage, IOrderAsCreateEmailParams };
|
|
@@ -12,7 +12,6 @@ const factory_1 = require("./factory");
|
|
|
12
12
|
async function createEmailMessageText(params) {
|
|
13
13
|
const emailTemplate = params.email?.template;
|
|
14
14
|
const emailText = params.email?.text;
|
|
15
|
-
// const emailMessageTextByDB = params.emailMessage?.text;
|
|
16
15
|
let emailMessageText;
|
|
17
16
|
if (typeof emailText === 'string') {
|
|
18
17
|
emailMessageText = emailText;
|
|
@@ -27,21 +26,6 @@ async function createEmailMessageText(params) {
|
|
|
27
26
|
resolve(message);
|
|
28
27
|
});
|
|
29
28
|
});
|
|
30
|
-
// } else if (typeof emailMessageTextByDB === 'string') {
|
|
31
|
-
// // デフォルトEメールメッセージを適用する
|
|
32
|
-
// emailMessageText = await new Promise<string>((resolve, reject) => {
|
|
33
|
-
// render(
|
|
34
|
-
// emailMessageTextByDB,
|
|
35
|
-
// { order: params.order },
|
|
36
|
-
// (err, message) => {
|
|
37
|
-
// if (err instanceof Error) {
|
|
38
|
-
// reject(new factory.errors.Argument('emailMessage.text', err.message));
|
|
39
|
-
// return;
|
|
40
|
-
// }
|
|
41
|
-
// resolve(message);
|
|
42
|
-
// }
|
|
43
|
-
// );
|
|
44
|
-
// });
|
|
45
29
|
}
|
|
46
30
|
else {
|
|
47
31
|
emailMessageText = `orderNumber: ${params.order.orderNumber}`;
|
|
@@ -49,8 +33,6 @@ async function createEmailMessageText(params) {
|
|
|
49
33
|
return emailMessageText;
|
|
50
34
|
}
|
|
51
35
|
async function createEmailMessageAbout(params) {
|
|
52
|
-
// const abouyIdentifierByDB = params.emailMessage?.about.identifier;
|
|
53
|
-
// const abouyNameByDB = params.emailMessage?.about.name;
|
|
54
36
|
let about;
|
|
55
37
|
if (typeof params.email?.about === 'string') {
|
|
56
38
|
// aboutをStringで指定された場合
|
|
@@ -68,26 +50,6 @@ async function createEmailMessageAbout(params) {
|
|
|
68
50
|
identifier: params.email.about.identifier,
|
|
69
51
|
name: params.email.about.name
|
|
70
52
|
};
|
|
71
|
-
// } else if (typeof abouyIdentifierByDB === 'string' && typeof abouyNameByDB === 'string') {
|
|
72
|
-
// // デフォルトEメールメッセージを適用する
|
|
73
|
-
// const aboutName = await new Promise<string>((resolve, reject) => {
|
|
74
|
-
// render(
|
|
75
|
-
// abouyNameByDB,
|
|
76
|
-
// { order: params.order },
|
|
77
|
-
// (err, message) => {
|
|
78
|
-
// if (err instanceof Error) {
|
|
79
|
-
// reject(new factory.errors.Argument('emailMessage.about.name', err.message));
|
|
80
|
-
// return;
|
|
81
|
-
// }
|
|
82
|
-
// resolve(message);
|
|
83
|
-
// }
|
|
84
|
-
// );
|
|
85
|
-
// });
|
|
86
|
-
// about = {
|
|
87
|
-
// typeOf: 'Thing',
|
|
88
|
-
// identifier: abouyIdentifierByDB,
|
|
89
|
-
// name: aboutName
|
|
90
|
-
// };
|
|
91
53
|
}
|
|
92
54
|
else {
|
|
93
55
|
// aboutの指定がない場合
|
|
@@ -103,44 +65,59 @@ function createEmailMessageSender(params, setting) {
|
|
|
103
65
|
if (typeof setting.defaultSenderEmail !== 'string') {
|
|
104
66
|
throw new factory_1.factory.errors.NotFound('setting.defaultSenderEmail');
|
|
105
67
|
}
|
|
68
|
+
const defaultSellerName = (typeof params.order.seller.name === 'string') ? params.order.seller.name : params.order.seller.typeOf;
|
|
106
69
|
return {
|
|
107
70
|
typeOf: params.order.seller.typeOf,
|
|
108
71
|
name: (typeof params.email?.sender?.name === 'string')
|
|
109
72
|
? params.email.sender.name
|
|
110
|
-
:
|
|
111
|
-
? params.order.seller.name
|
|
112
|
-
: String(params.order.seller.id),
|
|
113
|
-
// email: settings.defaultSenderEmail
|
|
73
|
+
: defaultSellerName,
|
|
114
74
|
email: setting.defaultSenderEmail
|
|
115
75
|
};
|
|
116
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* pug templateに渡す変数を確実に最小化する
|
|
79
|
+
*/
|
|
80
|
+
function minimizeOrderAsCreateEmailParams(order) {
|
|
81
|
+
const { confirmationNumber, orderNumber, price, customer, seller } = order;
|
|
82
|
+
const defaultToRecipientEmail = customer.email;
|
|
83
|
+
if (typeof defaultToRecipientEmail !== 'string' || defaultToRecipientEmail === '') {
|
|
84
|
+
throw new factory_1.factory.errors.Argument('order', 'order.customer.email undefined');
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
customer: {
|
|
88
|
+
email: defaultToRecipientEmail,
|
|
89
|
+
typeOf: customer.typeOf,
|
|
90
|
+
...((typeof customer.givenName === 'string') && { givenName: customer.givenName }),
|
|
91
|
+
...((typeof customer.familyName === 'string') && { familyName: customer.familyName })
|
|
92
|
+
},
|
|
93
|
+
seller: { name: seller.name, typeOf: seller.typeOf },
|
|
94
|
+
orderNumber,
|
|
95
|
+
confirmationNumber,
|
|
96
|
+
price
|
|
97
|
+
};
|
|
98
|
+
}
|
|
117
99
|
/**
|
|
118
100
|
* 注文配送メッセージを作成する
|
|
119
101
|
*/
|
|
120
102
|
async function createSendOrderMessage(params, setting) {
|
|
103
|
+
const minimizedOrder = minimizeOrderAsCreateEmailParams(params.order);
|
|
121
104
|
const emailMessageText = await createEmailMessageText({
|
|
122
|
-
order:
|
|
105
|
+
order: minimizedOrder,
|
|
123
106
|
email: params.email,
|
|
124
|
-
// emailMessage: params.emailMessage
|
|
125
107
|
});
|
|
126
108
|
const about = await createEmailMessageAbout({
|
|
127
|
-
// order: params.order,
|
|
128
109
|
email: params.email,
|
|
129
|
-
// emailMessage: params.emailMessage,
|
|
130
110
|
aboutIdentifier: factory_1.factory.creativeWork.message.email.AboutIdentifier.OnOrderSent,
|
|
131
111
|
defaultName: 'Order Delivered'
|
|
132
112
|
});
|
|
133
|
-
const defaultToRecipientEmail =
|
|
134
|
-
|
|
135
|
-
throw new factory_1.factory.errors.Argument('order', 'order.customer.email undefined');
|
|
136
|
-
}
|
|
137
|
-
const defaultRecipientName = `${params.order.customer.familyName} ${params.order.customer.givenName}`;
|
|
113
|
+
const defaultToRecipientEmail = minimizedOrder.customer.email;
|
|
114
|
+
const defaultRecipientName = `${minimizedOrder.customer.familyName} ${minimizedOrder.customer.givenName}`;
|
|
138
115
|
const sender = createEmailMessageSender(params, setting);
|
|
139
116
|
const toRecipientCustomization = params.email?.toRecipient;
|
|
140
117
|
const toRecipient = (Array.isArray(toRecipientCustomization))
|
|
141
118
|
? toRecipientCustomization.map((customizedRecipient) => {
|
|
142
119
|
return {
|
|
143
|
-
typeOf:
|
|
120
|
+
typeOf: minimizedOrder.customer.typeOf,
|
|
144
121
|
name: (typeof customizedRecipient.name === 'string')
|
|
145
122
|
? customizedRecipient.name
|
|
146
123
|
: defaultRecipientName,
|
|
@@ -150,7 +127,7 @@ async function createSendOrderMessage(params, setting) {
|
|
|
150
127
|
};
|
|
151
128
|
})
|
|
152
129
|
: [{
|
|
153
|
-
typeOf:
|
|
130
|
+
typeOf: minimizedOrder.customer.typeOf,
|
|
154
131
|
name: (typeof toRecipientCustomization?.name === 'string')
|
|
155
132
|
? toRecipientCustomization.name
|
|
156
133
|
: defaultRecipientName,
|
|
@@ -160,8 +137,8 @@ async function createSendOrderMessage(params, setting) {
|
|
|
160
137
|
}];
|
|
161
138
|
return {
|
|
162
139
|
typeOf: factory_1.factory.creativeWorkType.EmailMessage,
|
|
163
|
-
identifier: `${about.identifier}:${
|
|
164
|
-
name: `${about.identifier}:${
|
|
140
|
+
identifier: `${about.identifier}:${minimizedOrder.orderNumber}:${params.index}`,
|
|
141
|
+
name: `${about.identifier}:${minimizedOrder.orderNumber}:${params.index}`,
|
|
165
142
|
sender: sender,
|
|
166
143
|
toRecipient: toRecipient,
|
|
167
144
|
about: about,
|
|
@@ -172,29 +149,24 @@ async function createSendOrderMessage(params, setting) {
|
|
|
172
149
|
* 注文返品メッセージを作成する
|
|
173
150
|
*/
|
|
174
151
|
async function createReturnOrderMessage(params, setting) {
|
|
152
|
+
const minimizedOrder = minimizeOrderAsCreateEmailParams(params.order);
|
|
175
153
|
const emailMessageText = await createEmailMessageText({
|
|
176
|
-
order:
|
|
154
|
+
order: minimizedOrder,
|
|
177
155
|
email: params.email,
|
|
178
|
-
// emailMessage: params.emailMessage
|
|
179
156
|
});
|
|
180
157
|
const about = await createEmailMessageAbout({
|
|
181
|
-
// order: params.order,
|
|
182
158
|
email: params.email,
|
|
183
|
-
// emailMessage: params.emailMessage,
|
|
184
159
|
aboutIdentifier: factory_1.factory.creativeWork.message.email.AboutIdentifier.OnOrderReturned,
|
|
185
160
|
defaultName: 'Order Returned'
|
|
186
161
|
});
|
|
187
|
-
const defaultToRecipientEmail =
|
|
188
|
-
|
|
189
|
-
throw new factory_1.factory.errors.Argument('order', 'order.customer.email undefined');
|
|
190
|
-
}
|
|
191
|
-
const defaultRecipientName = `${params.order.customer.familyName} ${params.order.customer.givenName}`;
|
|
162
|
+
const defaultToRecipientEmail = minimizedOrder.customer.email;
|
|
163
|
+
const defaultRecipientName = `${minimizedOrder.customer.familyName} ${minimizedOrder.customer.givenName}`;
|
|
192
164
|
const sender = createEmailMessageSender(params, setting);
|
|
193
165
|
const toRecipientCustomization = params.email?.toRecipient;
|
|
194
166
|
const toRecipient = (Array.isArray(toRecipientCustomization))
|
|
195
167
|
? toRecipientCustomization.map((customizedRecipient) => {
|
|
196
168
|
return {
|
|
197
|
-
typeOf:
|
|
169
|
+
typeOf: minimizedOrder.customer.typeOf,
|
|
198
170
|
name: (typeof customizedRecipient.name === 'string')
|
|
199
171
|
? customizedRecipient.name
|
|
200
172
|
: defaultRecipientName,
|
|
@@ -204,7 +176,7 @@ async function createReturnOrderMessage(params, setting) {
|
|
|
204
176
|
};
|
|
205
177
|
})
|
|
206
178
|
: [{
|
|
207
|
-
typeOf:
|
|
179
|
+
typeOf: minimizedOrder.customer.typeOf,
|
|
208
180
|
name: (typeof toRecipientCustomization?.name === 'string')
|
|
209
181
|
? toRecipientCustomization.name
|
|
210
182
|
: defaultRecipientName,
|
|
@@ -214,8 +186,8 @@ async function createReturnOrderMessage(params, setting) {
|
|
|
214
186
|
}];
|
|
215
187
|
return {
|
|
216
188
|
typeOf: factory_1.factory.creativeWorkType.EmailMessage,
|
|
217
|
-
identifier: `${about.identifier}:${
|
|
218
|
-
name: `${about.identifier}:${
|
|
189
|
+
identifier: `${about.identifier}:${minimizedOrder.orderNumber}:${params.index}`,
|
|
190
|
+
name: `${about.identifier}:${minimizedOrder.orderNumber}:${params.index}`,
|
|
219
191
|
sender: sender,
|
|
220
192
|
toRecipient: toRecipient,
|
|
221
193
|
about: about,
|
|
@@ -226,27 +198,24 @@ async function createReturnOrderMessage(params, setting) {
|
|
|
226
198
|
* 返金メッセージを作成する
|
|
227
199
|
*/
|
|
228
200
|
async function createRefundMessage(params, setting) {
|
|
201
|
+
const minimizedOrder = minimizeOrderAsCreateEmailParams(params.order);
|
|
229
202
|
const emailMessageText = await createEmailMessageText({
|
|
230
|
-
order:
|
|
203
|
+
order: minimizedOrder,
|
|
231
204
|
email: params.email
|
|
232
205
|
});
|
|
233
206
|
const about = await createEmailMessageAbout({
|
|
234
|
-
// order: params.order,
|
|
235
207
|
email: params.email,
|
|
236
208
|
aboutIdentifier: factory_1.factory.creativeWork.message.email.AboutIdentifier.OnOrderRefunded,
|
|
237
209
|
defaultName: 'Refunded'
|
|
238
210
|
});
|
|
239
|
-
const defaultToRecipientEmail =
|
|
240
|
-
|
|
241
|
-
throw new factory_1.factory.errors.Argument('order', 'order.customer.email undefined');
|
|
242
|
-
}
|
|
243
|
-
const defaultRecipientName = `${params.order.customer.familyName} ${params.order.customer.givenName}`;
|
|
211
|
+
const defaultToRecipientEmail = minimizedOrder.customer.email;
|
|
212
|
+
const defaultRecipientName = `${minimizedOrder.customer.familyName} ${minimizedOrder.customer.givenName}`;
|
|
244
213
|
const sender = createEmailMessageSender(params, setting);
|
|
245
214
|
const toRecipientCustomization = params.email?.toRecipient;
|
|
246
215
|
const toRecipient = (Array.isArray(toRecipientCustomization))
|
|
247
216
|
? toRecipientCustomization.map((customizedRecipient) => {
|
|
248
217
|
return {
|
|
249
|
-
typeOf:
|
|
218
|
+
typeOf: minimizedOrder.customer.typeOf,
|
|
250
219
|
name: (typeof customizedRecipient.name === 'string')
|
|
251
220
|
? customizedRecipient.name
|
|
252
221
|
: defaultRecipientName,
|
|
@@ -256,7 +225,7 @@ async function createRefundMessage(params, setting) {
|
|
|
256
225
|
};
|
|
257
226
|
})
|
|
258
227
|
: [{
|
|
259
|
-
typeOf:
|
|
228
|
+
typeOf: minimizedOrder.customer.typeOf,
|
|
260
229
|
name: (typeof toRecipientCustomization?.name === 'string')
|
|
261
230
|
? toRecipientCustomization.name
|
|
262
231
|
: defaultRecipientName,
|
|
@@ -266,8 +235,8 @@ async function createRefundMessage(params, setting) {
|
|
|
266
235
|
}];
|
|
267
236
|
return {
|
|
268
237
|
typeOf: factory_1.factory.creativeWorkType.EmailMessage,
|
|
269
|
-
identifier: `${about.identifier}:${
|
|
270
|
-
name: `${about.identifier}:${
|
|
238
|
+
identifier: `${about.identifier}:${minimizedOrder.orderNumber}:${params.paymentMethodId}`,
|
|
239
|
+
name: `${about.identifier}:${minimizedOrder.orderNumber}:${params.paymentMethodId}`,
|
|
271
240
|
sender: sender,
|
|
272
241
|
toRecipient: toRecipient,
|
|
273
242
|
about: about,
|
|
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createReturnPaymentMethodActions = createReturnPaymentMethodActions;
|
|
4
4
|
const emailMessageBuilder_1 = require("../../../../emailMessageBuilder");
|
|
5
5
|
const factory_1 = require("../../../../factory");
|
|
6
|
-
async function createReturnInvoicePotentialActions(params,
|
|
7
|
-
// settings: Settings
|
|
8
|
-
setting) {
|
|
6
|
+
async function createReturnInvoicePotentialActions(params, setting) {
|
|
9
7
|
const order = params.order;
|
|
10
8
|
const emailMessagesOnReturnEachPaymentMethodId = [];
|
|
11
9
|
const sendEmailMessageOnRefund = [];
|
|
@@ -32,21 +30,10 @@ setting) {
|
|
|
32
30
|
}, setting);
|
|
33
31
|
emailMessagesOnReturnEachPaymentMethodId.push(emailMessage);
|
|
34
32
|
sendEmailMessageOnRefund.push({
|
|
35
|
-
// project: order.project, // discontinue(2024-06-26~)
|
|
36
|
-
// typeOf: factory.actionType.SendAction, // discontinue(2024-06-26~)
|
|
37
|
-
// standardize object(2024-06-27~)
|
|
38
|
-
// object: emailMessage
|
|
39
33
|
object: {
|
|
40
34
|
identifier: emailMessage.identifier,
|
|
41
35
|
typeOf: factory_1.factory.creativeWorkType.EmailMessage
|
|
42
36
|
}
|
|
43
|
-
// agent: order.project, // discontinue(2024-06-26~)
|
|
44
|
-
// recipient: { // discontinue(2024-06-26~)
|
|
45
|
-
// typeOf: order.customer.typeOf,
|
|
46
|
-
// id: order.customer.id
|
|
47
|
-
// },
|
|
48
|
-
// potentialActions: {}, // discontinue(2024-06-25~)
|
|
49
|
-
// purpose: sendActionPurpose // discontinue(2024-06-26~)
|
|
50
37
|
});
|
|
51
38
|
}
|
|
52
39
|
return {
|
|
@@ -56,18 +43,9 @@ setting) {
|
|
|
56
43
|
}
|
|
57
44
|
};
|
|
58
45
|
}
|
|
59
|
-
async function createReturnPaymentMethodActions(params,
|
|
60
|
-
// settings: Settings
|
|
61
|
-
setting) {
|
|
46
|
+
async function createReturnPaymentMethodActions(params, setting) {
|
|
62
47
|
const emailMessagesOnReturnInvoice = [];
|
|
63
48
|
const potentialReturnInvoiceActions = [];
|
|
64
|
-
// const returnPaymentMethodPurpose: factory.order.ISimpleOrder = {
|
|
65
|
-
// typeOf: order.typeOf,
|
|
66
|
-
// orderNumber: order.orderNumber,
|
|
67
|
-
// price: order.price,
|
|
68
|
-
// priceCurrency: order.priceCurrency,
|
|
69
|
-
// orderDate: order.orderDate
|
|
70
|
-
// };
|
|
71
49
|
// MovieTicket決済以外について返品ポリシーのreturnFeesを適用する(2022-08-10~)
|
|
72
50
|
const returnFees = params.transaction.object.returnPolicy.returnFees;
|
|
73
51
|
// ReturnFeesCustomerResponsibilityであれば返金はなし、それ以外は返金する
|
|
@@ -95,19 +73,6 @@ setting) {
|
|
|
95
73
|
};
|
|
96
74
|
// optimize(2024-06-19~)
|
|
97
75
|
return { object, potentialActions: potentialActionsOnRefund };
|
|
98
|
-
// return {
|
|
99
|
-
// project: order.project,
|
|
100
|
-
// typeOf: factory.actionType.ReturnAction,
|
|
101
|
-
// object,
|
|
102
|
-
// agent: order.project,
|
|
103
|
-
// recipient: {
|
|
104
|
-
// typeOf: order.customer.typeOf,
|
|
105
|
-
// id: order.customer.id,
|
|
106
|
-
// name: String(order.customer.name)
|
|
107
|
-
// },
|
|
108
|
-
// purpose: returnPaymentMethodPurpose,
|
|
109
|
-
// potentialActions: potentialActionsOnRefund
|
|
110
|
-
// };
|
|
111
76
|
})));
|
|
112
77
|
}
|
|
113
78
|
// 決済カード決済について
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { IOrderAsCreateEmailParams } from '../../../../emailMessageBuilder';
|
|
1
2
|
import { factory } from '../../../../factory';
|
|
2
3
|
import type { ISetting } from '../../../../repo/setting';
|
|
3
4
|
type IPotentialSendEmailMessageAction = factory.action.transfer.returnAction.order.IPotentialSendEmailMessageAction;
|
|
4
5
|
export declare function createSendEmailMessaegActionsOnReturn(params: {
|
|
5
|
-
order:
|
|
6
|
+
order: IOrderAsCreateEmailParams;
|
|
6
7
|
returnOrderActionParams?: factory.transaction.returnOrder.IReturnOrderActionParams;
|
|
7
8
|
}, setting: Pick<ISetting, 'defaultSenderEmail'>): Promise<{
|
|
8
9
|
emailMessagesOnReturn: factory.action.transfer.send.message.email.IObjectAsEmailMessage[];
|
package/package.json
CHANGED