@chevre/domain 21.6.0-alpha.0 → 21.6.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/example/src/chevre/createManyEventsIfNotExist.ts +0 -2
  2. package/example/src/chevre/migrateEventOrganizer.ts +33 -12
  3. package/example/src/chevre/migrateMovieAvailabilityStarts.ts +11 -0
  4. package/example/src/chevre/searchSellers.ts +28 -0
  5. package/example/src/chevre/unsetUnnecessaryFields.ts +18 -6
  6. package/lib/chevre/repo/event.d.ts +15 -0
  7. package/lib/chevre/repo/event.js +12 -0
  8. package/lib/chevre/repo/mongoose/schemas/seller.js +12 -0
  9. package/lib/chevre/repo/offer.d.ts +15 -0
  10. package/lib/chevre/repo/offer.js +21 -0
  11. package/lib/chevre/repo/offerCatalog.d.ts +14 -0
  12. package/lib/chevre/repo/offerCatalog.js +21 -0
  13. package/lib/chevre/repo/product.d.ts +8 -0
  14. package/lib/chevre/repo/product.js +9 -0
  15. package/lib/chevre/repo/seller.js +14 -2
  16. package/lib/chevre/service/assetTransaction/pay/factory.js +33 -29
  17. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +21 -26
  18. package/lib/chevre/service/assetTransaction/pay.js +0 -3
  19. package/lib/chevre/service/event.js +3 -7
  20. package/lib/chevre/service/order/onOrderStatusChanged.js +5 -3
  21. package/lib/chevre/service/order/placeOrder.js +10 -5
  22. package/lib/chevre/service/order/returnOrder.js +5 -1
  23. package/lib/chevre/service/order/sendOrder.js +5 -1
  24. package/lib/chevre/service/payment/any/factory.js +10 -9
  25. package/lib/chevre/service/payment/movieTicket.js +2 -2
  26. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.d.ts +4 -0
  27. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +158 -1
  28. package/lib/chevre/service/task/onResourceUpdated.js +4 -0
  29. package/lib/chevre/service/transaction/placeOrderInProgress/factory.d.ts +1 -1
  30. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +3 -6
  31. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/givePointAward.js +15 -15
  32. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +15 -42
  33. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +15 -15
  34. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.js +5 -3
  35. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +5 -4
  36. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +14 -7
  37. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +10 -2
  38. package/lib/chevre/service/transaction/placeOrderInProgress.js +1 -1
  39. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +5 -3
  40. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -21
  41. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +5 -3
  42. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +5 -4
  43. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +17 -13
  44. package/lib/chevre/service/transaction/returnOrder.js +124 -95
  45. package/package.json +3 -3
@@ -455,14 +455,13 @@ function createScreeningEventFromCOA(params) {
455
455
  .toDate();
456
456
  }
457
457
  const offers = {
458
- // 不要なので廃止(2022-12-19~)
459
- // project: { typeOf: params.project.typeOf, id: params.project.id },
460
458
  typeOf: factory.offerType.Offer,
461
459
  offeredThrough: {
462
460
  typeOf: 'WebAPI',
463
461
  identifier: factory.service.webAPI.Identifier.COA
464
462
  },
465
- priceCurrency: factory.priceCurrency.JPY,
463
+ // 廃止(2023-08-07~)
464
+ // priceCurrency: factory.priceCurrency.JPY,
466
465
  itemOffered: {
467
466
  serviceOutput: {
468
467
  reservedTicket: {
@@ -605,10 +604,7 @@ function createScreeningEventSeriesFromCOA(params) {
605
604
  endDate: endDate,
606
605
  startDate: startDate,
607
606
  coaInfo,
608
- offers: Object.assign({
609
- // 不要なので廃止(2023-06-09~)
610
- // project: { typeOf: params.project.typeOf, id: params.project.id },
611
- typeOf: factory.offerType.Offer, priceCurrency: factory.priceCurrency.JPY }, (Array.isArray(unacceptedPaymentMethod)) ? { unacceptedPaymentMethod: unacceptedPaymentMethod } : undefined),
607
+ offers: Object.assign({ typeOf: factory.offerType.Offer }, (Array.isArray(unacceptedPaymentMethod)) ? { unacceptedPaymentMethod: unacceptedPaymentMethod } : undefined),
612
608
  additionalProperty
613
609
  };
614
610
  }
@@ -27,10 +27,12 @@ function onOrderStatusChanged(params) {
27
27
  const maskedCustomer = (0, order_1.createMaskedCustomer)(params.order, { noProfile: true });
28
28
  const simpleOrder = {
29
29
  typeOf: params.order.typeOf,
30
- seller: params.order.seller,
30
+ seller: {
31
+ id: params.order.seller.id,
32
+ typeOf: params.order.seller.typeOf,
33
+ name: params.order.seller.name
34
+ },
31
35
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
32
- // IOrderへ移行(2022-11-17~)
33
- // confirmationNumber: params.order.confirmationNumber,
34
36
  orderNumber: params.order.orderNumber,
35
37
  price: params.order.price,
36
38
  priceCurrency: params.order.priceCurrency,
@@ -107,12 +107,13 @@ function placeOrderWithoutTransaction(params) {
107
107
  // アクションを作成する(2022-04-11~)
108
108
  const maskedCustomer = (0, order_1.createMaskedCustomer)(order, { noProfile: true });
109
109
  const simpleOrder = {
110
- // project: order.project,
111
110
  typeOf: order.typeOf,
112
- seller: order.seller,
111
+ seller: {
112
+ id: order.seller.id,
113
+ typeOf: order.seller.typeOf,
114
+ name: order.seller.name
115
+ },
113
116
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
114
- // IOrderへ移行(2022-11-17~)
115
- // confirmationNumber: order.confirmationNumber,
116
117
  orderNumber: order.orderNumber,
117
118
  price: order.price,
118
119
  priceCurrency: order.priceCurrency,
@@ -171,7 +172,11 @@ function placeOrder(params) {
171
172
  const maskedCustomer = (0, order_1.createMaskedCustomer)(order, { noProfile: true });
172
173
  const simpleOrder = {
173
174
  typeOf: order.typeOf,
174
- seller: order.seller,
175
+ seller: {
176
+ id: order.seller.id,
177
+ typeOf: order.seller.typeOf,
178
+ name: order.seller.name
179
+ },
175
180
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
176
181
  orderNumber: order.orderNumber,
177
182
  price: order.price,
@@ -49,7 +49,11 @@ function returnOrder(params) {
49
49
  }
50
50
  const simpleOrder = {
51
51
  typeOf: order.typeOf,
52
- seller: order.seller,
52
+ seller: {
53
+ id: order.seller.id,
54
+ typeOf: order.seller.typeOf,
55
+ name: order.seller.name
56
+ },
53
57
  customer: (0, order_1.createMaskedCustomer)(order, { noProfile: true }),
54
58
  orderNumber: order.orderNumber,
55
59
  price: order.price,
@@ -48,7 +48,11 @@ function sendOrder(params) {
48
48
  const maskedCustomer = (0, order_1.createMaskedCustomer)(order, { noProfile: true });
49
49
  const simpleOrder = {
50
50
  typeOf: order.typeOf,
51
- seller: order.seller,
51
+ seller: {
52
+ id: order.seller.id,
53
+ typeOf: order.seller.typeOf,
54
+ name: order.seller.name
55
+ },
52
56
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
53
57
  orderNumber: order.orderNumber,
54
58
  price: order.price,
@@ -80,27 +80,28 @@ function createMovieTicket(params) {
80
80
  };
81
81
  }
82
82
  function createAuthorizeResult(params) {
83
- var _a, _b, _c, _d;
83
+ var _a, _b, _c, _d, _e, _f;
84
84
  const payTransactionObject = params.payTransaction.object;
85
85
  const totalPaymentDue = (_a = payTransactionObject.paymentMethod) === null || _a === void 0 ? void 0 : _a.totalPaymentDue;
86
86
  if (typeof (totalPaymentDue === null || totalPaymentDue === void 0 ? void 0 : totalPaymentDue.typeOf) !== 'string') {
87
87
  throw new factory.errors.ServiceUnavailable('payTransaction.object.paymentMethod.totalPaymentDue undefined');
88
88
  }
89
+ const issuedThrough = Object.assign({ typeOf: payTransactionObject.typeOf, id: (typeof payTransactionObject.id === 'string') ? payTransactionObject.id : '' }, (typeof ((_c = (_b = payTransactionObject.serviceOutput) === null || _b === void 0 ? void 0 : _b.amount) === null || _c === void 0 ? void 0 : _c.currency) === 'string')
90
+ ? { serviceOutput: payTransactionObject.serviceOutput }
91
+ : undefined);
89
92
  return {
90
- accountId: (typeof ((_b = payTransactionObject.paymentMethod) === null || _b === void 0 ? void 0 : _b.accountId) === 'string')
93
+ accountId: (typeof ((_d = payTransactionObject.paymentMethod) === null || _d === void 0 ? void 0 : _d.accountId) === 'string')
91
94
  ? payTransactionObject.paymentMethod.accountId
92
95
  : '',
93
- amount: params.object.amount,
94
- issuedThrough: {
95
- typeOf: payTransactionObject.typeOf,
96
- id: (typeof payTransactionObject.id === 'string') ? payTransactionObject.id : ''
97
- },
96
+ // 廃止(2023-08-07~)
97
+ // amount: params.object.amount,
98
+ issuedThrough,
98
99
  paymentMethod: params.object.paymentMethod,
99
100
  paymentStatus: factory.paymentStatusType.PaymentDue,
100
- paymentMethodId: (typeof ((_c = payTransactionObject.paymentMethod) === null || _c === void 0 ? void 0 : _c.paymentMethodId) === 'string')
101
+ paymentMethodId: (typeof ((_e = payTransactionObject.paymentMethod) === null || _e === void 0 ? void 0 : _e.paymentMethodId) === 'string')
101
102
  ? payTransactionObject.paymentMethod.paymentMethodId
102
103
  : '',
103
- name: (typeof ((_d = payTransactionObject.paymentMethod) === null || _d === void 0 ? void 0 : _d.name) === 'string')
104
+ name: (typeof ((_f = payTransactionObject.paymentMethod) === null || _f === void 0 ? void 0 : _f.name) === 'string')
104
105
  ? payTransactionObject.paymentMethod.name
105
106
  : params.object.paymentMethod,
106
107
  totalPaymentDue: totalPaymentDue,
@@ -113,7 +113,7 @@ exports.checkMovieTicket = checkMovieTicket;
113
113
  */
114
114
  function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBeforePay, useCheckByIdentifierIfNotYet) {
115
115
  return (repos) => __awaiter(this, void 0, void 0, function* () {
116
- var _a, _b;
116
+ var _a;
117
117
  let accountId;
118
118
  let payAction;
119
119
  let accountsReceivablesByServiceType = [];
@@ -138,7 +138,7 @@ function authorize(params, transaction, paymentServiceId, useCheckMovieTicketBef
138
138
  paymentMethod: Object.assign({ additionalProperty: (Array.isArray(additionalProperty)) ? additionalProperty : [], name: paymentMethodName, paymentMethodId: paymentMethodId, totalPaymentDue: {
139
139
  typeOf: 'MonetaryAmount',
140
140
  currency: factory.unitCode.C62,
141
- value: (_b = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.movieTickets) === null || _b === void 0 ? void 0 : _b.length
141
+ value: (Array.isArray(paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.movieTickets)) ? paymentMethod.movieTickets.length : 0
142
142
  }, typeOf: paymentMethodType }, (typeof accountId === 'string') ? { accountId } : undefined),
143
143
  movieTickets: paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.movieTickets
144
144
  };
@@ -5,6 +5,8 @@ import { MongoRepository as CategoryCodeRepo } from '../../../repo/categoryCode'
5
5
  import { MongoRepository as CreativeWorkRepo } from '../../../repo/creativeWork';
6
6
  import { MongoRepository as EventRepo } from '../../../repo/event';
7
7
  import { MongoRepository as MemberRepo } from '../../../repo/member';
8
+ import { MongoRepository as OfferRepo } from '../../../repo/offer';
9
+ import { MongoRepository as OfferCatalogRepo } from '../../../repo/offerCatalog';
8
10
  import { MongoRepository as PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
9
11
  import { MongoRepository as PlaceRepo } from '../../../repo/place';
10
12
  import { MongoRepository as ProductRepo } from '../../../repo/product';
@@ -18,6 +20,8 @@ export declare function onResourceDeleted(params: factory.task.onResourceUpdated
18
20
  event: EventRepo;
19
21
  member: MemberRepo;
20
22
  paymentServiceProvider: PaymentServiceProviderRepo;
23
+ offer: OfferRepo;
24
+ offerCatalog: OfferCatalogRepo;
21
25
  place: PlaceRepo;
22
26
  product: ProductRepo;
23
27
  productOffer: ProductOfferRepo;
@@ -41,8 +41,30 @@ function onResourceDeleted(params) {
41
41
  ids: params.id
42
42
  })(repos);
43
43
  break;
44
+ case factory.offerType.Offer:
45
+ yield deleteResourcesByOffer({
46
+ project: { id: params.project.id },
47
+ ids: params.id
48
+ })(repos);
49
+ break;
50
+ case 'OfferCatalog':
51
+ yield deleteResourcesByOfferCatalog({
52
+ project: { id: params.project.id },
53
+ ids: params.id
54
+ })(repos);
55
+ break;
56
+ case factory.product.ProductType.EventService:
57
+ case factory.product.ProductType.Product:
58
+ case factory.product.ProductType.Transportation:
59
+ yield deleteResourcesByProduct({
60
+ project: { id: params.project.id },
61
+ ids: params.id,
62
+ typeOf: params.typeOf
63
+ })(repos);
64
+ break;
44
65
  default:
45
- // no op
66
+ // no op
67
+ throw new factory.errors.NotImplemented(`${params.typeOf} onDeleted not implemented`);
46
68
  }
47
69
  }
48
70
  });
@@ -228,3 +250,138 @@ function deleteResourcesBySeller(params) {
228
250
  }
229
251
  });
230
252
  }
253
+ function deleteResourcesByOffer(params) {
254
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
255
+ if (params.ids.length !== 1) {
256
+ throw new factory.errors.Argument('id', 'id.length must be 1');
257
+ }
258
+ for (const offerId of params.ids) {
259
+ const deleteActionAttributes = {
260
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
261
+ object: { id: offerId, typeOf: factory.offerType.Offer },
262
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
263
+ typeOf: factory.actionType.DeleteAction
264
+ };
265
+ let deleteResult;
266
+ const action = yield repos.action.start(deleteActionAttributes);
267
+ try {
268
+ // カタログからpullItemListElement
269
+ const updateCatalogResult = yield repos.offerCatalog.pullItemListElement({
270
+ project: { id: params.project.id },
271
+ $pull: { itemListElement: { $elemMatch: { id: { $in: [offerId] } } } }
272
+ });
273
+ deleteResult = { updateCatalogResult };
274
+ }
275
+ catch (error) {
276
+ try {
277
+ const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
278
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error: actionError });
279
+ }
280
+ catch (_) {
281
+ // no op
282
+ }
283
+ throw error;
284
+ }
285
+ yield repos.action.complete({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
286
+ }
287
+ });
288
+ }
289
+ function deleteResourcesByOfferCatalog(params) {
290
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
291
+ if (params.ids.length !== 1) {
292
+ throw new factory.errors.Argument('id', 'id.length must be 1');
293
+ }
294
+ for (const catalogId of params.ids) {
295
+ const deleteActionAttributes = {
296
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
297
+ object: { id: catalogId, typeOf: 'OfferCatalog' },
298
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
299
+ typeOf: factory.actionType.DeleteAction
300
+ };
301
+ let deleteResult;
302
+ const action = yield repos.action.start(deleteActionAttributes);
303
+ try {
304
+ // カタログからプロダクト検索
305
+ const productsWithCatalog = yield repos.product.search({
306
+ project: { id: { $eq: params.project.id } },
307
+ hasOfferCatalog: { id: { $eq: catalogId } }
308
+ }, ['_id'], []);
309
+ let deleteEventResult;
310
+ let updateOfferResult;
311
+ if (productsWithCatalog.length > 0) {
312
+ const deletingProductIds = productsWithCatalog.map((product) => product.id);
313
+ // 興行を設定されたイベント削除
314
+ deleteEventResult = yield repos.event.deleteManyByItemOfferedId({
315
+ project: { id: params.project.id },
316
+ offers: { itemOffered: { id: { $in: deletingProductIds } } }
317
+ });
318
+ // アドオンから除外
319
+ updateOfferResult = yield repos.offer.pullAddOns({
320
+ project: { id: params.project.id },
321
+ addOn: { itemOffered: { id: { $in: deletingProductIds } } }
322
+ });
323
+ }
324
+ // プロダクト削除
325
+ const deleteProductResult = yield repos.product.deleteByHasOfferCatalog({
326
+ project: { id: params.project.id },
327
+ hasOfferCatalog: { id: catalogId }
328
+ });
329
+ deleteResult = { deleteEventResult, deleteProductResult, updateOfferResult };
330
+ }
331
+ catch (error) {
332
+ try {
333
+ const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
334
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error: actionError });
335
+ }
336
+ catch (_) {
337
+ // no op
338
+ }
339
+ throw error;
340
+ }
341
+ yield repos.action.complete({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
342
+ }
343
+ });
344
+ }
345
+ function deleteResourcesByProduct(params) {
346
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
347
+ if (params.ids.length !== 1) {
348
+ throw new factory.errors.Argument('id', 'id.length must be 1');
349
+ }
350
+ for (const productId of params.ids) {
351
+ const deleteActionAttributes = {
352
+ agent: { id: params.project.id, typeOf: factory.organizationType.Project },
353
+ object: { id: productId, typeOf: params.typeOf },
354
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
355
+ typeOf: factory.actionType.DeleteAction
356
+ };
357
+ let deleteResult;
358
+ const action = yield repos.action.start(deleteActionAttributes);
359
+ try {
360
+ let deleteEventResult;
361
+ let updateOfferResult;
362
+ // 興行を設定されたイベント削除
363
+ deleteEventResult = yield repos.event.deleteManyByItemOfferedId({
364
+ project: { id: params.project.id },
365
+ offers: { itemOffered: { id: { $in: [productId] } } }
366
+ });
367
+ // アドオンから除外
368
+ updateOfferResult = yield repos.offer.pullAddOns({
369
+ project: { id: params.project.id },
370
+ addOn: { itemOffered: { id: { $in: [productId] } } }
371
+ });
372
+ deleteResult = { deleteEventResult, updateOfferResult };
373
+ }
374
+ catch (error) {
375
+ try {
376
+ const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
377
+ yield repos.action.giveUp({ typeOf: deleteActionAttributes.typeOf, id: action.id, error: actionError });
378
+ }
379
+ catch (_) {
380
+ // no op
381
+ }
382
+ throw error;
383
+ }
384
+ yield repos.action.complete({ typeOf: deleteActionAttributes.typeOf, id: action.id, result: deleteResult });
385
+ }
386
+ });
387
+ }
@@ -17,6 +17,8 @@ const categoryCode_1 = require("../../repo/categoryCode");
17
17
  const creativeWork_1 = require("../../repo/creativeWork");
18
18
  const event_1 = require("../../repo/event");
19
19
  const member_1 = require("../../repo/member");
20
+ const offer_1 = require("../../repo/offer");
21
+ const offerCatalog_1 = require("../../repo/offerCatalog");
20
22
  const paymentServiceProvider_1 = require("../../repo/paymentServiceProvider");
21
23
  const place_1 = require("../../repo/place");
22
24
  const product_1 = require("../../repo/product");
@@ -37,6 +39,8 @@ function call(data) {
37
39
  creativeWork: new creativeWork_1.MongoRepository(connectionSettings.connection),
38
40
  event: new event_1.MongoRepository(connectionSettings.connection),
39
41
  member: new member_1.MongoRepository(connectionSettings.connection),
42
+ offer: new offer_1.MongoRepository(connectionSettings.connection),
43
+ offerCatalog: new offerCatalog_1.MongoRepository(connectionSettings.connection),
40
44
  paymentServiceProvider: new paymentServiceProvider_1.MongoRepository(connectionSettings.connection),
41
45
  place: new place_1.MongoRepository(connectionSettings.connection),
42
46
  product: new product_1.MongoRepository(connectionSettings.connection),
@@ -1,2 +1,2 @@
1
1
  import * as factory from '../../../factory';
2
- export declare function createStartParams(params: factory.transaction.placeOrder.IStartParamsWithoutDetail, passport: factory.waiter.passport.IPassport | undefined, seller: Pick<factory.seller.ISeller, 'id' | 'name' | 'typeOf' | 'project'>, broker?: factory.order.IBroker): factory.transaction.placeOrder.IStartParams;
2
+ export declare function createStartParams(params: factory.transaction.placeOrder.IStartParamsWithoutDetail, passport: factory.waiter.passport.IPassport | undefined, seller: Pick<factory.seller.ISeller, 'id' | 'name' | 'typeOf' | 'project' | 'additionalProperty'>, broker?: factory.order.IBroker): factory.transaction.placeOrder.IStartParams;
@@ -20,15 +20,12 @@ function createStartParams(params, passport, seller, broker) {
20
20
  seller: {
21
21
  id: seller.id,
22
22
  name: seller.name,
23
- typeOf: seller.typeOf
23
+ typeOf: seller.typeOf,
24
+ // 追加特性を追加(2023-08-08~)
25
+ additionalProperty: (Array.isArray(seller.additionalProperty)) ? seller.additionalProperty : []
24
26
  },
25
27
  object: transactionObject,
26
- // expires: params.expires,
27
28
  expiresInSeconds: params.expiresInSeconds
28
- // 販売者にexpires設定があれば適用
29
- // ...(typeof makesOfferFromClient?.eligibleTransactionDuration?.maxValue === 'number')
30
- // ? { expiresInSeconds: makesOfferFromClient.eligibleTransactionDuration.maxValue }
31
- // : undefined
32
29
  };
33
30
  }
34
31
  exports.createStartParams = createStartParams;
@@ -19,6 +19,20 @@ function createGivePointAwardActions(params) {
19
19
  // インセンティブ付与アクションの指定があればそちらを反映
20
20
  const givePointAwardParams = (_a = params.transaction.object.potentialActions) === null || _a === void 0 ? void 0 : _a.givePointAward;
21
21
  if (Array.isArray(givePointAwardParams)) {
22
+ const givePointAwardPurpose = {
23
+ typeOf: params.order.typeOf,
24
+ seller: {
25
+ id: params.order.seller.id,
26
+ typeOf: params.order.seller.typeOf,
27
+ name: params.order.seller.name
28
+ },
29
+ // mask
30
+ customer: (0, order_1.createMaskedCustomer)(params.order, { noProfile: true }),
31
+ orderNumber: params.order.orderNumber,
32
+ price: params.order.price,
33
+ priceCurrency: params.order.priceCurrency,
34
+ orderDate: params.order.orderDate
35
+ };
22
36
  // メンバーシップごとに、特典を確認してインセンティブ付与
23
37
  givePointAwardParams.forEach((givePointAwardParam) => {
24
38
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -31,8 +45,6 @@ function createGivePointAwardActions(params) {
31
45
  project: params.transaction.project,
32
46
  typeOf: factory.actionType.GiveAction,
33
47
  agent: params.transaction.project,
34
- // order.customerからrecipientを生成する(2022-05-25~)
35
- // recipient: params.transaction.agent,
36
48
  recipient: {
37
49
  typeOf: params.order.customer.typeOf,
38
50
  id: params.order.customer.id,
@@ -42,19 +54,7 @@ function createGivePointAwardActions(params) {
42
54
  accountNumber: accountNumber,
43
55
  issuedThrough: { id: String((_h = (_g = (_f = givePointAwardParam.object) === null || _f === void 0 ? void 0 : _f.toLocation) === null || _g === void 0 ? void 0 : _g.issuedThrough) === null || _h === void 0 ? void 0 : _h.id) }
44
56
  }, description: (typeof description === 'string') ? description : '' }, (typeof pointAwardIdentifier === 'string') ? { identifier: pointAwardIdentifier } : undefined),
45
- purpose: {
46
- // project: params.order.project,
47
- typeOf: params.order.typeOf,
48
- seller: params.order.seller,
49
- // mask
50
- customer: (0, order_1.createMaskedCustomer)(params.order, { noProfile: true }),
51
- // IOrderへ移行(2022-11-17~)
52
- // confirmationNumber: params.order.confirmationNumber,
53
- orderNumber: params.order.orderNumber,
54
- price: params.order.price,
55
- priceCurrency: params.order.priceCurrency,
56
- orderDate: params.order.orderDate
57
- }
57
+ purpose: givePointAwardPurpose
58
58
  });
59
59
  }
60
60
  });
@@ -19,6 +19,20 @@ function createMoneyTransferActions(params) {
19
19
  .filter((a) => a.actionStatus === factory.actionStatusType.CompletedActionStatus)
20
20
  .filter((a) => a.object.typeOf === factory.offerType.Offer)
21
21
  .filter((a) => { var _a; return ((_a = a.object.itemOffered) === null || _a === void 0 ? void 0 : _a.typeOf) === factory.actionType.MoneyTransfer; });
22
+ const moneyTransferPurpose = {
23
+ typeOf: params.order.typeOf,
24
+ seller: {
25
+ id: params.order.seller.id,
26
+ typeOf: params.order.seller.typeOf,
27
+ name: params.order.seller.name
28
+ },
29
+ // mask
30
+ customer: (0, order_1.createMaskedCustomer)(params.order, { noProfile: true }),
31
+ orderNumber: params.order.orderNumber,
32
+ price: params.order.price,
33
+ priceCurrency: params.order.priceCurrency,
34
+ orderDate: params.order.orderDate
35
+ };
22
36
  // const paymentMethod = params.order.paymentMethods[0];
23
37
  authorizeMoneyTransferActions.forEach((a) => {
24
38
  var _a;
@@ -33,49 +47,8 @@ function createMoneyTransferActions(params) {
33
47
  transactionNumber: pendingTransaction.transactionNumber,
34
48
  typeOf: factory.assetTransactionType.MoneyTransfer
35
49
  },
36
- // agent: Projectに統一(2022-05-16~)
37
50
  agent: params.transaction.project,
38
- // agent: params.transaction.agent,
39
- // ↓recipient廃止(2022-05-16~)
40
- // recipient: a.recipient,
41
- // amount: {
42
- // typeOf: 'MonetaryAmount',
43
- // currency: pendingTransaction.object.amount.currency,
44
- // value: pendingTransaction.object.amount.value
45
- // },
46
- // fromLocation: (paymentMethod !== undefined)
47
- // ? {
48
- // accountId: paymentMethod.accountId,
49
- // typeOf: paymentMethod.typeOf,
50
- // name: paymentMethod.name,
51
- // paymentMethodId: paymentMethod.paymentMethodId,
52
- // additionalProperty: paymentMethod.additionalProperty
53
- // }
54
- // : {
55
- // typeOf: params.transaction.agent.typeOf,
56
- // id: params.transaction.agent.id,
57
- // name: <string>params.transaction.agent.name
58
- // },
59
- // toLocation: {
60
- // typeOf: pendingTransaction.object.toLocation.typeOf,
61
- // identifier: pendingTransaction.object.toLocation.identifier
62
- // },
63
- purpose: {
64
- // project: params.order.project,
65
- typeOf: params.order.typeOf,
66
- seller: params.order.seller,
67
- // mask
68
- customer: (0, order_1.createMaskedCustomer)(params.order, { noProfile: true }),
69
- // IOrderへ移行(2022-11-17~)
70
- // confirmationNumber: params.order.confirmationNumber,
71
- orderNumber: params.order.orderNumber,
72
- price: params.order.price,
73
- priceCurrency: params.order.priceCurrency,
74
- orderDate: params.order.orderDate
75
- }
76
- // ...(typeof pendingTransaction.object.description === 'string')
77
- // ? { description: pendingTransaction.object.description }
78
- // : {}
51
+ purpose: moneyTransferPurpose
79
52
  });
80
53
  }
81
54
  });
@@ -23,6 +23,20 @@ function createRegisterServiceActions(params) {
23
23
  && a.object.length > 0
24
24
  && a.object[0].typeOf === factory.offerType.Offer
25
25
  && availableProductTypes_1.availableProductTypes.indexOf(a.object[0].itemOffered.typeOf) >= 0);
26
+ const registerServicePurpose = {
27
+ typeOf: params.order.typeOf,
28
+ seller: {
29
+ id: params.order.seller.id,
30
+ typeOf: params.order.seller.typeOf,
31
+ name: params.order.seller.name
32
+ },
33
+ // mask
34
+ customer: (0, order_1.createMaskedCustomer)(params.order, { noProfile: true }),
35
+ orderNumber: params.order.orderNumber,
36
+ price: params.order.price,
37
+ priceCurrency: params.order.priceCurrency,
38
+ orderDate: params.order.orderDate
39
+ };
26
40
  authorizeProductOfferActions.forEach((a) => {
27
41
  var _a;
28
42
  const actionResult = a.result;
@@ -42,22 +56,8 @@ function createRegisterServiceActions(params) {
42
56
  project: params.transaction.project,
43
57
  typeOf: factory.actionType.ConfirmAction,
44
58
  object: registerServiceObject,
45
- // agent: Projectに統一(2022-05-16~)
46
59
  agent: params.transaction.project,
47
- // agent: params.transaction.agent,
48
- purpose: {
49
- // project: params.order.project,
50
- typeOf: params.order.typeOf,
51
- seller: params.order.seller,
52
- // mask
53
- customer: (0, order_1.createMaskedCustomer)(params.order, { noProfile: true }),
54
- // IOrderへ移行(2022-11-17~)
55
- // confirmationNumber: params.order.confirmationNumber,
56
- orderNumber: params.order.orderNumber,
57
- price: params.order.price,
58
- priceCurrency: params.order.priceCurrency,
59
- orderDate: params.order.orderDate
60
- },
60
+ purpose: registerServicePurpose,
61
61
  potentialActions: Object.assign({}, (orderProgramMembershipTask !== undefined)
62
62
  ? { orderProgramMembership: [orderProgramMembershipTask] }
63
63
  : undefined)
@@ -22,11 +22,13 @@ function createSendEmailMessageActions(params) {
22
22
  const maskedCustomer = (0, order_1.createMaskedCustomer)(params.order, { noProfile: true });
23
23
  const sendActionPurpose = {
24
24
  typeOf: params.order.typeOf,
25
- seller: params.order.seller,
25
+ seller: {
26
+ id: params.order.seller.id,
27
+ typeOf: params.order.seller.typeOf,
28
+ name: params.order.seller.name
29
+ },
26
30
  // mask
27
31
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
28
- // IOrderへ移行(2022-11-17~)
29
- // confirmationNumber: params.order.confirmationNumber,
30
32
  orderNumber: params.order.orderNumber,
31
33
  price: params.order.price,
32
34
  priceCurrency: params.order.priceCurrency,
@@ -30,13 +30,14 @@ function createPotentialActions(params) {
30
30
  const sendEmailMessageActions = yield (0, sendEmailMessage_1.createSendEmailMessageActions)(params);
31
31
  const maskedCustomer = (0, order_1.createMaskedCustomer)(params.order, { noProfile: true });
32
32
  const simpleOrder = {
33
- // project: params.order.project,
34
33
  typeOf: params.order.typeOf,
35
- seller: params.order.seller,
34
+ seller: {
35
+ id: params.order.seller.id,
36
+ typeOf: params.order.seller.typeOf,
37
+ name: params.order.seller.name
38
+ },
36
39
  // mask
37
40
  customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id },
38
- // IOrderへ移行(2022-11-17~)
39
- // confirmationNumber: params.order.confirmationNumber,
40
41
  orderNumber: params.order.orderNumber,
41
42
  price: params.order.price,
42
43
  priceCurrency: params.order.priceCurrency,
@@ -34,11 +34,11 @@ function createSeller(params) {
34
34
  var _a;
35
35
  const seller = params.transaction.seller;
36
36
  return {
37
- // 最適化(2022-11-15~)
38
- // project: { typeOf: params.transaction.project.typeOf, id: params.transaction.project.id },
39
37
  id: seller.id,
40
38
  name: (typeof seller.name === 'string') ? seller.name : String((_a = seller.name) === null || _a === void 0 ? void 0 : _a.ja),
41
- typeOf: seller.typeOf
39
+ typeOf: seller.typeOf,
40
+ // 追加特性を追加(2023-08-08~)
41
+ additionalProperty: (Array.isArray(seller.additionalProperty)) ? seller.additionalProperty : []
42
42
  };
43
43
  }
44
44
  function createCustomer(params) {
@@ -82,11 +82,18 @@ function createPaymentMethods(params) {
82
82
  });
83
83
  });
84
84
  // 決済方法から注文金額の計算
85
+ // price += authorizePaymentActions
86
+ // .filter((a) => {
87
+ // return a.result?.totalPaymentDue?.currency === factory.priceCurrency.JPY;
88
+ // })
89
+ // .reduce((a, b) => a + (<IAuthorizeAnyPaymentResult>b.result).amount, 0);
85
90
  price += authorizePaymentActions
86
- .filter((a) => {
91
+ .reduce((a, b) => {
87
92
  var _a, _b;
88
- return ((_b = (_a = a.result) === null || _a === void 0 ? void 0 : _a.totalPaymentDue) === null || _b === void 0 ? void 0 : _b.currency) === factory.priceCurrency.JPY;
89
- })
90
- .reduce((a, b) => a + b.result.amount, 0);
93
+ const jpyAmount = (((_b = (_a = b.result) === null || _a === void 0 ? void 0 : _a.totalPaymentDue) === null || _b === void 0 ? void 0 : _b.currency) === factory.priceCurrency.JPY)
94
+ ? b.result.totalPaymentDue.value
95
+ : 0;
96
+ return a + jpyAmount;
97
+ }, 0);
91
98
  return { paymentMethods, price };
92
99
  }