@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.
@@ -7,13 +7,15 @@ type ISendableEmailMessage = factory.action.transfer.send.message.email.IObjectA
7
7
  /**
8
8
  * 注文取引確定時の指定テンプレートで利用可能な注文変数
9
9
  */
10
- type IPlacingOrderAsCreateEmailParams = Pick<factory.order.IOrder, 'orderNumber' | 'confirmationNumber' | 'customer' | 'price' | 'seller'>;
11
- type IOrderAsCreateEmailParams = Pick<factory.order.IOrder, 'confirmationNumber' | 'customer' | 'orderDate' | 'orderNumber' | 'orderStatus' | 'orderedItem' | 'paymentMethods' | 'price' | 'priceCurrency' | 'seller' | 'typeOf'>;
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: IPlacingOrderAsCreateEmailParams;
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, IPlacingOrderAsCreateEmailParams };
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
- : (typeof params.order.seller.name === 'string')
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: params.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 = params.order.customer.email;
134
- if (defaultToRecipientEmail === undefined) {
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: params.order.customer.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: params.order.customer.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}:${params.order.orderNumber}:${params.index}`,
164
- name: `${about.identifier}:${params.order.orderNumber}:${params.index}`,
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: params.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 = params.order.customer.email;
188
- if (defaultToRecipientEmail === undefined) {
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: params.order.customer.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: params.order.customer.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}:${params.order.orderNumber}:${params.index}`,
218
- name: `${about.identifier}:${params.order.orderNumber}:${params.index}`,
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: params.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 = params.order.customer.email;
240
- if (defaultToRecipientEmail === undefined) {
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: params.order.customer.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: params.order.customer.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}:${params.order.orderNumber}:${params.paymentMethodId}`,
270
- name: `${about.identifier}:${params.order.orderNumber}:${params.paymentMethodId}`,
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: Pick<factory.order.IOrder, 'confirmationNumber' | 'customer' | 'orderDate' | 'orderNumber' | 'orderStatus' | 'orderedItem' | 'paymentMethods' | 'price' | 'priceCurrency' | 'seller' | 'typeOf'>;
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
@@ -91,5 +91,5 @@
91
91
  "postversion": "git push origin --tags",
92
92
  "prepublishOnly": "npm run clean && npm run build"
93
93
  },
94
- "version": "25.0.0-alpha.5"
94
+ "version": "25.0.0-alpha.6"
95
95
  }