@chevre/domain 21.27.0-alpha.1 → 21.27.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 (44) hide show
  1. package/example/src/chevre/transaction/processPlaceOrder.ts +2 -4
  2. package/example/src/chevre/validateCheckMovieTicketActions.ts +70 -0
  3. package/lib/chevre/credentials.d.ts +7 -0
  4. package/lib/chevre/credentials.js +10 -6
  5. package/lib/chevre/repo/action.d.ts +8 -0
  6. package/lib/chevre/repo/action.js +22 -4
  7. package/lib/chevre/repo/mongoose/schemas/action.js +3 -2
  8. package/lib/chevre/repo/transaction.js +8 -1
  9. package/lib/chevre/service/assetTransaction/pay/potentialActions.d.ts +1 -11
  10. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +1 -11
  11. package/lib/chevre/service/assetTransaction/pay.d.ts +1 -4
  12. package/lib/chevre/service/assetTransaction/pay.js +18 -29
  13. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +1 -1
  14. package/lib/chevre/service/assetTransaction/reserve/factory.js +9 -8
  15. package/lib/chevre/service/assetTransaction/reserve.js +2 -1
  16. package/lib/chevre/service/event.js +2 -18
  17. package/lib/chevre/service/notification.js +0 -102
  18. package/lib/chevre/service/order/confirmPayTransaction.d.ts +1 -3
  19. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +0 -4
  20. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +2 -9
  21. package/lib/chevre/service/payment/any/onRefund.d.ts +1 -3
  22. package/lib/chevre/service/payment/any/onRefund.js +69 -62
  23. package/lib/chevre/service/payment/any.d.ts +0 -1
  24. package/lib/chevre/service/payment/any.js +1 -1
  25. package/lib/chevre/service/payment/creditCard.d.ts +0 -1
  26. package/lib/chevre/service/payment/creditCard.js +11 -29
  27. package/lib/chevre/service/payment/faceToFace.js +2 -1
  28. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.js +1 -9
  29. package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
  30. package/lib/chevre/service/payment/movieTicket.js +31 -28
  31. package/lib/chevre/service/reserve/factory.d.ts +10 -8
  32. package/lib/chevre/service/reserve/factory.js +15 -10
  33. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +28 -28
  34. package/lib/chevre/service/reserve.d.ts +1 -2
  35. package/lib/chevre/service/reserve.js +1 -4
  36. package/lib/chevre/service/task/confirmPayTransaction.js +1 -2
  37. package/lib/chevre/service/task/returnPayTransaction.js +9 -5
  38. package/lib/chevre/service/transaction/placeOrderInProgress/start.d.ts +1 -3
  39. package/lib/chevre/service/transaction/placeOrderInProgress/start.js +1 -2
  40. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateStartRequest.js +8 -11
  41. package/lib/chevre/service/transaction/returnOrder/preStart.js +0 -18
  42. package/lib/chevre/settings.d.ts +1 -4
  43. package/lib/chevre/settings.js +4 -5
  44. package/package.json +3 -3
@@ -37,8 +37,7 @@ async function main() {
37
37
  object: {
38
38
  clientUser: <any>{ client_id: CLIENT_ID }
39
39
  },
40
- seller: { id: '59d20831e53ebc2b4e774466' },
41
- validateEligibleCustomerType: false
40
+ seller: { id: '59d20831e53ebc2b4e774466' }
42
41
  })({
43
42
  member: await chevre.repository.Member.createInstance(mongoose.connection),
44
43
  projectMakesOffer: await chevre.repository.ProjectMakesOffer.createInstance(mongoose.connection),
@@ -117,8 +116,7 @@ async function main() {
117
116
  options: {
118
117
  useCancelPayTransactionOnFailed: false,
119
118
  useCheckMovieTicketBeforePay: false,
120
- useCheckByIdentifierIfNotYet: false,
121
- useSearchTrade4accountId: false
119
+ useCheckByIdentifierIfNotYet: false
122
120
  }
123
121
  })({
124
122
  accountingReport: await chevre.repository.AccountingReport.createInstance(mongoose.connection),
@@ -0,0 +1,70 @@
1
+ // tslint:disable:no-console
2
+ import * as moment from 'moment';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { chevre } from '../../../lib/index';
6
+
7
+ // tslint:disable-next-line:max-func-body-length
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
+
11
+ const actionRepo = await chevre.repository.Action.createInstance(mongoose.connection);
12
+
13
+ const cursor = actionRepo.getCursor(
14
+ {
15
+ typeOf: { $eq: chevre.factory.actionType.CheckAction },
16
+ 'object.typeOf': { $eq: chevre.factory.service.paymentService.PaymentServiceType.MovieTicket },
17
+ // 'project.id': { $eq: project.id },
18
+ startDate: {
19
+ $gte: moment()
20
+ // tslint:disable-next-line:no-magic-numbers
21
+ .add(-90, 'days')
22
+ .toDate()
23
+ // $lte: moment('2023-08-01T21:20:43.133Z')
24
+ // .toDate()
25
+ }
26
+ },
27
+ {
28
+ startDate: 1,
29
+ object: 1,
30
+ project: 1,
31
+ instrument: 1,
32
+ purpose: 1
33
+ }
34
+ );
35
+ console.log('actions found');
36
+
37
+ let i = 0;
38
+ let updateCount = 0;
39
+ const actions: Pick<
40
+ chevre.factory.action.check.paymentMethod.movieTicket.IAction,
41
+ 'startDate' | 'object' | 'project' | 'instrument' | 'id' | 'purpose'
42
+ >[] = [];
43
+ await cursor.eachAsync(async (doc) => {
44
+ i += 1;
45
+ const action: Pick<
46
+ chevre.factory.action.check.paymentMethod.movieTicket.IAction,
47
+ 'startDate' | 'object' | 'project' | 'instrument' | 'id' | 'purpose'
48
+ > = doc.toObject();
49
+
50
+ const alreadyMigrated = typeof action.purpose?.id === 'string'
51
+ && action.purpose?.id.length > 0;
52
+
53
+ if (alreadyMigrated) {
54
+ console.log('already exist.', action.project.id, action.id, action.purpose?.typeOf, action.purpose?.id, action.startDate, i);
55
+ } else {
56
+ console.log('updating...', action.project.id, action.id, action.purpose?.typeOf, action.purpose?.id, action.startDate, i);
57
+ updateCount += 1;
58
+ actions.push(action);
59
+ console.log('updated.', action.project.id, action.id, action.purpose?.typeOf, action.purpose?.id, action.startDate, i);
60
+ }
61
+ });
62
+
63
+ console.log('invalidAction:', actions);
64
+ console.log(i, 'actions checked');
65
+ console.log(updateCount, 'actions updated');
66
+ }
67
+
68
+ main()
69
+ .then()
70
+ .catch(console.error);
@@ -33,7 +33,14 @@ export declare const credentials: {
33
33
  accessTokenAlert: string;
34
34
  };
35
35
  movieticketReserve: {
36
+ /**
37
+ * 着券時タイムアウト
38
+ */
36
39
  timeout: number;
40
+ /**
41
+ * 認証時タイムアウト
42
+ */
43
+ timeoutCheck: number;
37
44
  };
38
45
  sendGrid: {
39
46
  apiKey: string | undefined;
@@ -29,7 +29,7 @@ exports.credentials = {
29
29
  },
30
30
  gmo: {
31
31
  // tslint:disable-next-line:no-magic-numbers
32
- timeout: (typeof process.env.GMO_TIMEOUT === 'string') ? Number(process.env.GMO_TIMEOUT) : 10000,
32
+ timeout: (typeof process.env.GMO_TIMEOUT === 'string') ? Number(process.env.GMO_TIMEOUT) : 5000,
33
33
  useFetch: process.env.GMO_USE_FETCH === '1'
34
34
  },
35
35
  lineNotify: {
@@ -38,16 +38,20 @@ exports.credentials = {
38
38
  accessTokenAlert: process.env.LINE_NOTIFY_ACCESS_TOKEN_ALERT
39
39
  },
40
40
  movieticketReserve: {
41
+ /**
42
+ * 着券時タイムアウト
43
+ */
41
44
  // tslint:disable-next-line:no-magic-numbers
42
- timeout: (typeof process.env.MVTK_TIMEOUT === 'string') ? Number(process.env.MVTK_TIMEOUT) : 10000
45
+ timeout: (typeof process.env.MVTK_TIMEOUT === 'string') ? Number(process.env.MVTK_TIMEOUT) : 5000,
46
+ /**
47
+ * 認証時タイムアウト
48
+ */
49
+ // tslint:disable-next-line:no-magic-numbers
50
+ timeoutCheck: (typeof process.env.MVTK_TIMEOUT_CHECK === 'string') ? Number(process.env.MVTK_TIMEOUT_CHECK) : 5000
43
51
  },
44
52
  sendGrid: {
45
53
  apiKey: process.env.SENDGRID_API_KEY
46
54
  },
47
- // discontinue(2023-12-12~)
48
- // hub: {
49
- // clientId: <string>process.env.HUB_CLIENT_ID
50
- // },
51
55
  jwt: {
52
56
  secret: process.env.TOKEN_SECRET,
53
57
  issuer: process.env.RESOURCE_SERVER_IDENTIFIER
@@ -83,6 +83,14 @@ export declare class MongoRepository {
83
83
  typeOf: factory.actionType;
84
84
  id: string;
85
85
  }): Promise<void>;
86
+ /**
87
+ * アクション失敗
88
+ */
89
+ giveUpWithObject(params: {
90
+ typeOf: factory.actionType;
91
+ id: string;
92
+ error: Error;
93
+ }): Promise<IAction<factory.actionType>>;
86
94
  /**
87
95
  * アクション失敗
88
96
  */
@@ -535,16 +535,34 @@ class MongoRepository {
535
535
  }
536
536
  });
537
537
  }
538
+ /**
539
+ * アクション失敗
540
+ */
541
+ giveUpWithObject(params) {
542
+ return __awaiter(this, void 0, void 0, function* () {
543
+ const actionError = Object.assign(Object.assign({}, params.error), { message: params.error.message, name: params.error.name });
544
+ const doc = yield this.actionModel.findOneAndUpdate({
545
+ typeOf: params.typeOf,
546
+ _id: params.id
547
+ }, {
548
+ actionStatus: factory.actionStatusType.FailedActionStatus,
549
+ error: actionError,
550
+ endDate: new Date()
551
+ }, { new: true })
552
+ .select({ __v: 0, createdAt: 0, updatedAt: 0 })
553
+ .exec();
554
+ if (doc === null) {
555
+ throw new factory.errors.NotFound(this.actionModel.modelName);
556
+ }
557
+ return doc.toObject();
558
+ });
559
+ }
538
560
  /**
539
561
  * アクション失敗
540
562
  */
541
563
  giveUp(params) {
542
564
  return __awaiter(this, void 0, void 0, function* () {
543
565
  const actionError = Object.assign(Object.assign({}, params.error), { message: params.error.message, name: params.error.name });
544
- // const actionError: Object = params.error;
545
- // if (params.error instanceof Error) {
546
- // actionError = { ...params.error, message: params.error.message, name: params.error.name };
547
- // }
548
566
  const doc = yield this.actionModel.findOneAndUpdate({
549
567
  typeOf: params.typeOf,
550
568
  _id: params.id
@@ -24,8 +24,9 @@ const schemaDefinition = {
24
24
  fromLocation: mongoose_1.SchemaTypes.Mixed,
25
25
  toLocation: mongoose_1.SchemaTypes.Mixed,
26
26
  instrument: mongoose_1.SchemaTypes.Mixed,
27
- // add location(2022-11-11~)
28
- location: mongoose_1.SchemaTypes.Mixed
27
+ location: mongoose_1.SchemaTypes.Mixed,
28
+ replacer: mongoose_1.SchemaTypes.Mixed,
29
+ targetCollection: mongoose_1.SchemaTypes.Mixed // add targetCollection(2024-03-19~)
29
30
  };
30
31
  const schemaOptions = {
31
32
  autoIndex: settings_1.MONGO_AUTO_INDEX,
@@ -242,10 +242,17 @@ class MongoRepository {
242
242
  else {
243
243
  expires = params.expires;
244
244
  }
245
- return this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate, endDate: undefined, expires, tasksExportAction: {
245
+ const transaction = yield this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate, endDate: undefined, expires, tasksExportAction: {
246
246
  actionStatus: factory.actionStatusType.PotentialActionStatus
247
247
  }, tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported }))
248
248
  .then((doc) => doc.toObject());
249
+ // 取引開始時にも取引イベントエミッター連携(2024-03-21~)
250
+ transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
251
+ id: transaction.id,
252
+ typeOf: transaction.typeOf,
253
+ status: factory.transactionStatusType.InProgress
254
+ });
255
+ return transaction;
249
256
  });
250
257
  }
251
258
  /**
@@ -7,14 +7,4 @@ declare function createPayActions(params: {
7
7
  acceptedOffersMovieTicketUsed: IAcceptedOfferMovieTicketUsed[];
8
8
  };
9
9
  }): factory.action.trade.pay.IAttributes[];
10
- /**
11
- * 取引のポストアクションを作成する
12
- */
13
- declare function createPotentialActions(params: {
14
- transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Pay>;
15
- potentialActions?: factory.assetTransaction.pay.IPotentialActionsParams;
16
- order: Pick<factory.order.IOrder, 'typeOf' | 'confirmationNumber' | 'orderNumber'> & {
17
- acceptedOffersMovieTicketUsed: IAcceptedOfferMovieTicketUsed[];
18
- };
19
- }): factory.assetTransaction.IPotentialActions<factory.assetTransactionType.Pay>;
20
- export { createPayActions, createPotentialActions, IAcceptedOfferMovieTicketUsed };
10
+ export { createPayActions, IAcceptedOfferMovieTicketUsed };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createPotentialActions = exports.createPayActions = void 0;
3
+ exports.createPayActions = void 0;
4
4
  const factory = require("../../../factory");
5
5
  const createPayObjectServiceOutput_1 = require("./potentialActions/createPayObjectServiceOutput");
6
6
  function createPayActions(params) {
@@ -151,13 +151,3 @@ function createInformPaymentActions(params) {
151
151
  }
152
152
  return informPaymentActions;
153
153
  }
154
- /**
155
- * 取引のポストアクションを作成する
156
- */
157
- function createPotentialActions(params) {
158
- const payActionAttributesList = createPayActions(params);
159
- return {
160
- pay: payActionAttributesList
161
- };
162
- }
163
- exports.createPotentialActions = createPotentialActions;
@@ -94,16 +94,13 @@ export import IPaymentAgencyTransaction = CreditCardPayment.IPaymentAgencyTransa
94
94
  export declare function start(params: factory.assetTransaction.pay.IStartParamsWithoutDetail, options: {
95
95
  useCheckMovieTicketBeforePay: boolean;
96
96
  useCheckByIdentifierIfNotYet: boolean;
97
- searchTrade4accountId: boolean;
98
97
  pendingPaymentAgencyTransaction?: CreditCardPayment.IPaymentAgencyTransaction;
99
98
  }): IStartOperation<factory.assetTransaction.pay.ITransaction>;
100
99
  /**
101
100
  * 取引確定
102
101
  */
103
102
  export declare function confirm(params: factory.assetTransaction.pay.IConfirmParams & {
104
- options: {
105
- minimizePotentialActions: boolean;
106
- };
103
+ options: {};
107
104
  }): IConfirmOperation<void>;
108
105
  export declare function fixOrderAsPurpose(params: {
109
106
  potentialActions: {
@@ -18,7 +18,6 @@ const MovieTicketPayment = require("../payment/movieTicket");
18
18
  const PaymentCardPayment = require("../payment/paymentCard");
19
19
  const validation_1 = require("./pay/account/validation");
20
20
  const factory_1 = require("./pay/factory");
21
- const potentialActions_1 = require("./pay/potentialActions");
22
21
  const debug = createDebug('chevre-domain:service:assetTransaction');
23
22
  /**
24
23
  * 外部決済ロケーション発行
@@ -42,7 +41,7 @@ function publishPaymentUrl(params) {
42
41
  let result;
43
42
  switch (paymentServiceType) {
44
43
  case factory.service.paymentService.PaymentServiceType.CreditCard:
45
- const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, { searchTrade4accountId: false, processPublishPaymentUrl: true })(repos);
44
+ const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, { processPublishPaymentUrl: true })(repos);
46
45
  let paymentUrl;
47
46
  // 3DS拡張(2024-01-02~)
48
47
  const retUrl = (_c = params.object.paymentMethod.creditCard) === null || _c === void 0 ? void 0 : _c.retUrl;
@@ -148,7 +147,7 @@ function start(params, options) {
148
147
  break;
149
148
  case factory.service.paymentService.PaymentServiceType.CreditCard:
150
149
  transaction =
151
- yield processAuthorizeCreditCard(params, transaction, String(paymentService === null || paymentService === void 0 ? void 0 : paymentService.id), Object.assign({ searchTrade4accountId: options.searchTrade4accountId }, (options.pendingPaymentAgencyTransaction !== undefined)
150
+ yield processAuthorizeCreditCard(params, transaction, String(paymentService === null || paymentService === void 0 ? void 0 : paymentService.id), Object.assign({}, (options.pendingPaymentAgencyTransaction !== undefined)
152
151
  ? { pendingPaymentAgencyTransaction: options.pendingPaymentAgencyTransaction }
153
152
  : undefined))(repos);
154
153
  break;
@@ -306,7 +305,7 @@ function processAuthorizeAccount(params, transaction, paymentServiceId) {
306
305
  }
307
306
  function processAuthorizeCreditCard(params, transaction, paymentServiceId, options) {
308
307
  return (repos) => __awaiter(this, void 0, void 0, function* () {
309
- const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, Object.assign({ processPublishPaymentUrl: false, searchTrade4accountId: options.searchTrade4accountId }, (options.pendingPaymentAgencyTransaction !== undefined)
308
+ const authorizeResult = yield CreditCardPayment.authorize(params, paymentServiceId, Object.assign({ processPublishPaymentUrl: false }, (options.pendingPaymentAgencyTransaction !== undefined)
310
309
  ? { pendingPaymentAgencyTransaction: options.pendingPaymentAgencyTransaction }
311
310
  : undefined))(repos);
312
311
  return saveAuthorizeResult({
@@ -375,32 +374,22 @@ function confirm(params) {
375
374
  throw new factory.errors.ArgumentNull('potentialActions.pay.purpose');
376
375
  }
377
376
  let potentialActions;
378
- if (params.options.minimizePotentialActions) {
379
- // 注文検証
380
- const existingOrders = yield repos.order.search({
381
- limit: 1,
382
- page: 1,
383
- project: { id: { $eq: transaction.project.id } },
384
- confirmationNumbers: [confirmationNumber],
385
- orderNumbers: [orderNumber]
386
- }, { orderNumber: 1 });
387
- if (existingOrders.length === 0) {
388
- throw new factory.errors.NotFound(factory.order.OrderType.Order);
389
- }
390
- const payActionData4order = {
391
- object: { paymentMethod: { paymentMethodId: transaction.transactionNumber } },
392
- purpose: { confirmationNumber, orderNumber, typeOf: factory.order.OrderType.Order }
393
- };
394
- potentialActions = { pay: [payActionData4order] };
395
- }
396
- else {
397
- const order = yield fixOrderAsPurpose({ potentialActions: { pay: { purpose: { confirmationNumber, orderNumber } } } }, transaction)(repos);
398
- potentialActions = (0, potentialActions_1.createPotentialActions)({
399
- transaction: transaction,
400
- potentialActions: params.potentialActions,
401
- order
402
- });
377
+ // 注文検証
378
+ const existingOrders = yield repos.order.search({
379
+ limit: 1,
380
+ page: 1,
381
+ project: { id: { $eq: transaction.project.id } },
382
+ confirmationNumbers: [confirmationNumber],
383
+ orderNumbers: [orderNumber]
384
+ }, { orderNumber: 1 });
385
+ if (existingOrders.length === 0) {
386
+ throw new factory.errors.NotFound(factory.order.OrderType.Order);
403
387
  }
388
+ const payActionData4order = {
389
+ object: { paymentMethod: { paymentMethodId: transaction.transactionNumber } },
390
+ purpose: { confirmationNumber, orderNumber, typeOf: factory.order.OrderType.Order }
391
+ };
392
+ potentialActions = { pay: [payActionData4order] };
404
393
  yield repos.assetTransaction.confirm(Object.assign({ typeOf: factory.assetTransactionType.Pay, id: transaction.id, result: {}, potentialActions: potentialActions }, (typeof overwritingPaymentMethodIdentifier === 'string')
405
394
  ? { object: { paymentMethod: { identifier: overwritingPaymentMethodIdentifier } } }
406
395
  : undefined));
@@ -52,7 +52,7 @@ export declare function createAdditionalTicketText(params: {
52
52
  reservedTicket: factory.reservation.ITicket;
53
53
  }): string | undefined;
54
54
  export type IUnitPriceSpecification = factory.priceSpecification.IPriceSpecification<factory.priceSpecificationType.UnitPriceSpecification>;
55
- export declare function createReservationFor(params: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent> | IMinimizedIndividualEvent<factory.eventType.Event>): factory.assetTransaction.reserve.IReservationFor;
55
+ export declare function createReservationFor(params: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent> | IMinimizedIndividualEvent<factory.eventType.Event>, useOptimizeReservation: boolean): factory.assetTransaction.reserve.IReservationFor;
56
56
  export declare function createIssuedThrough(params: {
57
57
  reservationFor: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent> | IMinimizedIndividualEvent<factory.eventType.Event>;
58
58
  }): {
@@ -332,10 +332,10 @@ function createAdditionalTicketText(params) {
332
332
  return (_b = (_a = params.acceptedOffer.itemOffered) === null || _a === void 0 ? void 0 : _a.serviceOutput) === null || _b === void 0 ? void 0 : _b.additionalTicketText;
333
333
  }
334
334
  exports.createAdditionalTicketText = createAdditionalTicketText;
335
- function createReservationFor(params) {
335
+ function createReservationFor(params, useOptimizeReservation) {
336
336
  var _a, _b;
337
337
  if (params.typeOf === factory.eventType.ScreeningEvent) {
338
- return Object.assign({ endDate: params.endDate, id: params.id, location: params.location, name: params.name, startDate: params.startDate, superEvent: optimizeReservationSuperEvent(params), typeOf: params.typeOf }, (params.doorTime instanceof Date)
338
+ return Object.assign({ endDate: params.endDate, id: params.id, location: params.location, name: params.name, startDate: params.startDate, superEvent: optimizeReservationSuperEvent(params, useOptimizeReservation), typeOf: params.typeOf }, (params.doorTime instanceof Date)
339
339
  ? { doorTime: params.doorTime }
340
340
  : undefined);
341
341
  }
@@ -348,13 +348,13 @@ function createReservationFor(params) {
348
348
  }
349
349
  }
350
350
  exports.createReservationFor = createReservationFor;
351
- function optimizeReservationSuperEvent(params) {
351
+ function optimizeReservationSuperEvent(params, useOptimizeReservation) {
352
352
  const superEvent = params.superEvent;
353
353
  return Object.assign(Object.assign({ id: superEvent.id,
354
354
  // kanaName: superEvent.kanaName, // 廃止(2024-01-26~)
355
355
  location: superEvent.location, name: superEvent.name, soundFormat: superEvent.soundFormat, typeOf: superEvent.typeOf, videoFormat: superEvent.videoFormat, workPerformed: superEvent.workPerformed }, (superEvent.headline !== undefined)
356
356
  ? { headline: superEvent.headline }
357
- : undefined), (settings_1.USE_OPTIMIZE_RESERVATION)
357
+ : undefined), (useOptimizeReservation)
358
358
  ? {}
359
359
  : {
360
360
  additionalProperty: (Array.isArray(superEvent.additionalProperty))
@@ -477,6 +477,7 @@ function createPotentialActions(params) {
477
477
  if (reservationFor === undefined) {
478
478
  throw new factory.errors.NotFound('transaction.object.reservationFor');
479
479
  }
480
+ const useOptimizeReservation = !settings_1.USE_OPTIMIZE_RESERVATION_EXCEPTIONS.includes(transaction.project.id);
480
481
  // 予約アクション属性作成
481
482
  const pendingReservations = (Array.isArray(transaction.object.subReservation)) ? transaction.object.subReservation : [];
482
483
  let reserveActionAttributes = [];
@@ -486,7 +487,7 @@ function createPotentialActions(params) {
486
487
  // ReservationPackageに対応(2022-12-22~)
487
488
  // purpose:Orderの指定があれば、underName,issuedByを調整(2022-05-23~)
488
489
  if (typeof ((_a = params.order) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') {
489
- const ordre2reservationUnderNameResult = ordre2reservationUnderName({ order: params.order });
490
+ const ordre2reservationUnderNameResult = ordre2reservationUnderName({ order: params.order, useOptimizeReservation });
490
491
  underName = ordre2reservationUnderNameResult.underName;
491
492
  }
492
493
  const moneyTransferActions = [];
@@ -543,7 +544,7 @@ exports.createPotentialActions = createPotentialActions;
543
544
  function createReservationUnderNameIdentifier(params) {
544
545
  // 必要最低限の識別子のみ継承する(2024-03-16~)
545
546
  let identifiersFromCustomer = (Array.isArray(params.order.customer.identifier)) ? params.order.customer.identifier : [];
546
- if (settings_1.USE_OPTIMIZE_RESERVATION) {
547
+ if (params.useOptimizeReservation) {
547
548
  identifiersFromCustomer = identifiersFromCustomer.filter(({ name }) => name === 'clientId');
548
549
  }
549
550
  return [
@@ -552,14 +553,14 @@ function createReservationUnderNameIdentifier(params) {
552
553
  ];
553
554
  }
554
555
  function createReservationUnderName(params) {
555
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ identifier: createReservationUnderNameIdentifier({ order: params.order }), name: String(params.order.customer.name), typeOf: params.order.customer.typeOf }, (typeof params.order.customer.address === 'string') ? { address: params.order.customer.address } : undefined), (typeof params.order.customer.age === 'string') ? { age: params.order.customer.age } : undefined), (typeof params.order.customer.email === 'string') ? { email: params.order.customer.email } : undefined), (typeof params.order.customer.familyName === 'string') ? { familyName: params.order.customer.familyName } : undefined), (typeof params.order.customer.gender === 'string') ? { gender: params.order.customer.gender } : undefined), (typeof params.order.customer.givenName === 'string') ? { givenName: params.order.customer.givenName } : undefined), (typeof params.order.customer.id === 'string') ? { id: params.order.customer.id } : undefined), (typeof params.order.customer.telephone === 'string') ? { telephone: params.order.customer.telephone } : undefined), (typeof params.order.customer.url === 'string') ? { url: params.order.customer.url } : undefined);
556
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ identifier: createReservationUnderNameIdentifier({ order: params.order, useOptimizeReservation: params.useOptimizeReservation }), name: String(params.order.customer.name), typeOf: params.order.customer.typeOf }, (typeof params.order.customer.address === 'string') ? { address: params.order.customer.address } : undefined), (typeof params.order.customer.age === 'string') ? { age: params.order.customer.age } : undefined), (typeof params.order.customer.email === 'string') ? { email: params.order.customer.email } : undefined), (typeof params.order.customer.familyName === 'string') ? { familyName: params.order.customer.familyName } : undefined), (typeof params.order.customer.gender === 'string') ? { gender: params.order.customer.gender } : undefined), (typeof params.order.customer.givenName === 'string') ? { givenName: params.order.customer.givenName } : undefined), (typeof params.order.customer.id === 'string') ? { id: params.order.customer.id } : undefined), (typeof params.order.customer.telephone === 'string') ? { telephone: params.order.customer.telephone } : undefined), (typeof params.order.customer.url === 'string') ? { url: params.order.customer.url } : undefined);
556
557
  }
557
558
  /**
558
559
  * 注文者情報を予約者情報へ変換する
559
560
  */
560
561
  function ordre2reservationUnderName(params) {
561
562
  return {
562
- underName: createReservationUnderName({ order: params.order })
563
+ underName: createReservationUnderName({ order: params.order, useOptimizeReservation: params.useOptimizeReservation })
563
564
  };
564
565
  }
565
566
  function createMoneyTransferActions(params) {
@@ -141,7 +141,8 @@ function addReservations(params) {
141
141
  validateAppliesToMovieTicket: params.validateAppliesToMovieTicket
142
142
  })(repos);
143
143
  // 予約イベント最適化
144
- const reservationFor = (0, factory_1.createReservationFor)(event);
144
+ const useOptimizeReservation = !settings_1.USE_OPTIMIZE_RESERVATION_EXCEPTIONS.includes(transaction.project.id);
145
+ const reservationFor = (0, factory_1.createReservationFor)(event, useOptimizeReservation);
145
146
  const { issuedThrough } = (0, factory_1.createIssuedThrough)({ reservationFor: event });
146
147
  // 取引に予約追加
147
148
  let lockedOfferRateLimitKeys = [];
@@ -304,16 +304,6 @@ function saveScreeningEvents(params) {
304
304
  for (const screeningEvent of screeningEvents) {
305
305
  try {
306
306
  const attributes = screeningEvent;
307
- // repository側で制御しているため不要(2022-08-26~)
308
- // const attributes = {
309
- // ...screeningEvent,
310
- // ...{
311
- // // 残席数は作成時のみ
312
- // $setOnInsert: { remainingAttendeeCapacity: screeningEvent.remainingAttendeeCapacity }
313
- // }
314
- // };
315
- // repository側で制御しているためdeleteは不要(2022-08-26~)
316
- // delete attributes.remainingAttendeeCapacity;
317
307
  saveParams.push({
318
308
  id: screeningEvent.id,
319
309
  attributes: attributes,
@@ -321,10 +311,7 @@ function saveScreeningEvents(params) {
321
311
  });
322
312
  }
323
313
  catch (error) {
324
- // tslint:disable-next-line:no-single-line-block-comment
325
- /* istanbul ignore next */
326
- // tslint:disable-next-line:no-console
327
- console.error(error);
314
+ // no op
328
315
  }
329
316
  }
330
317
  yield repos.event.saveMany(saveParams);
@@ -425,10 +412,7 @@ function cancelDeletedEvents(params) {
425
412
  });
426
413
  }
427
414
  catch (error) {
428
- // tslint:disable-next-line:no-single-line-block-comment
429
- /* istanbul ignore next */
430
- // tslint:disable-next-line:no-console
431
- console.error(error);
415
+ // no op
432
416
  }
433
417
  }
434
418
  debug(`${cancelledIds.length} events cancelled.`);