@chevre/domain 21.2.0-alpha.93 → 21.2.0-alpha.94

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.
@@ -6,7 +6,7 @@ import * as mongoose from 'mongoose';
6
6
  // const project = { id: String(process.env.PROJECT_ID) };
7
7
 
8
8
  async function main() {
9
- await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: true });
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
10
 
11
11
  const actionRepo = new chevre.repository.Action(mongoose.connection);
12
12
  const actions = await actionRepo.search(
@@ -5,6 +5,7 @@ export { IAcceptedAddOn };
5
5
  export declare function createStartParams(params: factory.assetTransaction.reserve.IStartParamsWithoutDetail & {
6
6
  reservationNumber: string;
7
7
  disablePendingReservations: boolean;
8
+ useHoldStockByTransactionNumber: boolean;
8
9
  }): factory.assetTransaction.IStartParams<factory.assetTransactionType.Reserve>;
9
10
  /**
10
11
  * ポイント特典を作成する
@@ -13,7 +13,7 @@ function createStartParams(params) {
13
13
  const reservationNumber = params.reservationNumber;
14
14
  const reservationPackage = Object.assign({
15
15
  // project: params.project,
16
- reservationNumber: reservationNumber, reservationStatus: factory.reservationStatusType.ReservationPending, disablePendingReservations: params.disablePendingReservations, typeOf: factory.reservationType.ReservationPackage }, (typeof ((_a = params.object.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.object.broker } : undefined);
16
+ reservationNumber: reservationNumber, reservationStatus: factory.reservationStatusType.ReservationPending, disablePendingReservations: params.disablePendingReservations, useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber, typeOf: factory.reservationType.ReservationPackage }, (typeof ((_a = params.object.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.object.broker } : undefined);
17
17
  return {
18
18
  project: { id: params.project.id, typeOf: factory.organizationType.Project },
19
19
  typeOf: factory.assetTransactionType.Reserve,
@@ -97,6 +97,7 @@ type IStartParams = factory.assetTransaction.reserve.IStartParamsWithoutDetail &
97
97
  */
98
98
  export declare function start(params: IStartParams & {
99
99
  disablePendingReservations: boolean;
100
+ useHoldStockByTransactionNumber: boolean;
100
101
  }): IStartOperation<{
101
102
  transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>;
102
103
  objectSubReservations: IObjectSubReservation[];
@@ -178,7 +178,11 @@ function addReservations(params) {
178
178
  yield processLockSeats({
179
179
  event: event,
180
180
  reservations: objectSubReservations,
181
- transaction: transaction
181
+ transaction: {
182
+ id: transaction.id,
183
+ transactionNumber: transaction.transactionNumber,
184
+ object: { useHoldStockByTransactionNumber: transaction.object.useHoldStockByTransactionNumber === true }
185
+ }
182
186
  })(repos);
183
187
  if (transaction.object.disablePendingReservations !== true) {
184
188
  // 予約作成(insertManyで実装)
@@ -614,7 +618,7 @@ function processLockOfferRateLimit(params) {
614
618
  */
615
619
  function processLockSeats(params) {
616
620
  return (repos) => __awaiter(this, void 0, void 0, function* () {
617
- var _a;
621
+ var _a, _b;
618
622
  const offers = [];
619
623
  params.reservations.forEach((r) => {
620
624
  var _a, _b;
@@ -656,8 +660,12 @@ function processLockSeats(params) {
656
660
  const expires = moment(params.event.endDate)
657
661
  .add(1, 'month')
658
662
  .toDate();
659
- const holder = params.transaction.id;
660
- const maximumAttendeeCapacity4event = (_a = params.event.location) === null || _a === void 0 ? void 0 : _a.maximumAttendeeCapacity;
663
+ // holder:取引番号に対応(2023-06-05~)
664
+ let holder = params.transaction.id;
665
+ if (((_a = params.transaction.object) === null || _a === void 0 ? void 0 : _a.useHoldStockByTransactionNumber) === true) {
666
+ holder = params.transaction.transactionNumber;
667
+ }
668
+ const maximumAttendeeCapacity4event = (_b = params.event.location) === null || _b === void 0 ? void 0 : _b.maximumAttendeeCapacity;
661
669
  if (typeof maximumAttendeeCapacity4event === 'number') {
662
670
  yield repos.stockHolder.lockIfNotLimitExceeded({
663
671
  eventId: params.event.id,
@@ -58,5 +58,6 @@ declare function authorize(params: {
58
58
  id: string;
59
59
  };
60
60
  disablePendingReservations: boolean;
61
+ useHoldStockByTransactionNumber: boolean;
61
62
  }): IAuthorizeOperation<IAuthorizeOfferAction>;
62
63
  export { authorize };
@@ -67,7 +67,8 @@ function authorize(params) {
67
67
  unitPriceOffers,
68
68
  validateEvent: params.validateEvent === true,
69
69
  validateEventOfferPeriod: params.validateEventOfferPeriod === true,
70
- disablePendingReservations: params.disablePendingReservations
70
+ disablePendingReservations: params.disablePendingReservations,
71
+ useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber
71
72
  })(repos);
72
73
  // requestBody = processStartReserveResult.requestBody;
73
74
  // responseBody = processStartReserveResult.responseBody;
@@ -163,7 +164,7 @@ function processStartReserve4chevre(params) {
163
164
  // requestBody = startParams;
164
165
  const startParamObject = yield validateObjectWithoutDetail(startParams)(repos);
165
166
  // 予約取引開始
166
- const startReserveTransactionResult = yield ReserveTransactionService.start(Object.assign(Object.assign({}, startParams), { object: startParamObject, preSearchedEvent: event, preSearchedTicketOffers: params.ticketOffers, preSearchedUnitPriceOffers: params.unitPriceOffers, availableAtOrFrom: { id: params.availableAtOrFrom.id }, validateEvent: params.validateEvent, validateEventOfferPeriod: params.validateEventOfferPeriod, validateAppliesToMovieTicket: true, disablePendingReservations: params.disablePendingReservations }))(repos);
167
+ const startReserveTransactionResult = yield ReserveTransactionService.start(Object.assign(Object.assign({}, startParams), { object: startParamObject, preSearchedEvent: event, preSearchedTicketOffers: params.ticketOffers, preSearchedUnitPriceOffers: params.unitPriceOffers, availableAtOrFrom: { id: params.availableAtOrFrom.id }, validateEvent: params.validateEvent, validateEventOfferPeriod: params.validateEventOfferPeriod, validateAppliesToMovieTicket: true, disablePendingReservations: params.disablePendingReservations, useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber }))(repos);
167
168
  responseBody = startReserveTransactionResult.transaction;
168
169
  // 予約取引からオファー情報を生成する
169
170
  acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
@@ -28,7 +28,6 @@ function cancelPendingReservation(actionAttributesList) {
28
28
  if (actionAttributesList.length > 0) {
29
29
  // tslint:disable-next-line:max-func-body-length
30
30
  yield Promise.all(actionAttributesList.map((actionAttributes) => __awaiter(this, void 0, void 0, function* () {
31
- // let canceledReservation: factory.reservation.eventReservation.IReservation | undefined;
32
31
  const reserveTransactionId = actionAttributes.purpose.id;
33
32
  // アクション開始
34
33
  const action = yield repos.action.start(actionAttributes);
@@ -53,10 +52,6 @@ function cancelPendingReservation(actionAttributesList) {
53
52
  const subReservation = reserveTransaction.object.subReservation;
54
53
  if (Array.isArray(subReservation) && subReservation.length > 0) {
55
54
  yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
56
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
57
- // ...cancelingSubReservation,
58
- // reservationFor
59
- // };
60
55
  yield processUnlockSeat({
61
56
  reservation: {
62
57
  id: cancelingSubReservation.id,
@@ -69,7 +64,10 @@ function cancelPendingReservation(actionAttributesList) {
69
64
  : reservationFor.departureTime
70
65
  }
71
66
  },
72
- expectedHolder: reserveTransactionId
67
+ // holder:取引番号に対応(2023-06-05~)
68
+ expectedHolder: (reserveTransaction.object.useHoldStockByTransactionNumber === true)
69
+ ? reserveTransaction.transactionNumber
70
+ : reserveTransactionId
73
71
  })(repos);
74
72
  yield processUnlockOfferRateLimit({
75
73
  reservation: {
@@ -90,33 +88,6 @@ function cancelPendingReservation(actionAttributesList) {
90
88
  else {
91
89
  // 廃止(2022-12-27~)
92
90
  throw new factory.errors.NotImplemented(`object.typeOf '${actionObject.typeOf}' not implemented`);
93
- // const cancelingSubReservation = reserveTransaction.object.subReservation?.find((r) => {
94
- // return r.id === actionObject.id;
95
- // });
96
- // // 取消対象予約が取引に存在すれば、適宜unlock
97
- // if (cancelingSubReservation !== undefined) {
98
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
99
- // ...cancelingSubReservation,
100
- // reservationFor
101
- // };
102
- // await processUnlockSeat({
103
- // reservation: cancelingReservation,
104
- // expectedHolder: reserveTransactionId
105
- // })(repos);
106
- // await processUnlockOfferRateLimit({ reservation: cancelingReservation, reservationFor })(repos);
107
- // // 予約が存在すればキャンセル状態に変更する
108
- // const reservationCount = await repos.reservation.count({
109
- // typeOf: cancelingSubReservation.typeOf,
110
- // ids: [cancelingSubReservation.id]
111
- // });
112
- // if (reservationCount > 0) {
113
- // await repos.reservation.cancel<factory.reservationType.EventReservation>({
114
- // id: cancelingSubReservation.id,
115
- // previousReservationStatus: actionObject.reservationStatus,
116
- // modifiedTime: now
117
- // });
118
- // }
119
- // }
120
91
  }
121
92
  }
122
93
  }
@@ -194,10 +165,6 @@ function cancelReservation(actionAttributesList) {
194
165
  const subReservation = reserveTransaction.object.subReservation;
195
166
  if (Array.isArray(subReservation) && subReservation.length > 0) {
196
167
  yield Promise.all(subReservation.map((cancelingSubReservation) => __awaiter(this, void 0, void 0, function* () {
197
- // const cancelingReservation: factory.reservation.eventReservation.IReservation = {
198
- // ...cancelingSubReservation,
199
- // reservationFor
200
- // };
201
168
  yield processUnlockSeat({
202
169
  reservation: {
203
170
  id: cancelingSubReservation.id,
@@ -210,7 +177,10 @@ function cancelReservation(actionAttributesList) {
210
177
  : reservationFor.departureTime
211
178
  }
212
179
  },
213
- expectedHolder: reserveTransaction.id
180
+ // holder:取引番号に対応(2023-06-05~)
181
+ expectedHolder: (reserveTransaction.object.useHoldStockByTransactionNumber === true)
182
+ ? reserveTransaction.transactionNumber
183
+ : reserveTransaction.id
214
184
  })(repos);
215
185
  yield processUnlockOfferRateLimit({
216
186
  reservation: {
@@ -240,10 +210,10 @@ function cancelReservation(actionAttributesList) {
240
210
  object: { reservations: { id: { $in: [reservation.id] } } }
241
211
  });
242
212
  const reserveTransaction = reserveTransactions.shift();
243
- let expectedHolder;
244
- if (reserveTransaction !== undefined) {
245
- expectedHolder = reserveTransaction.id;
246
- }
213
+ // holder:取引番号に対応(2023-06-05~)
214
+ const expectedHolder = ((reserveTransaction === null || reserveTransaction === void 0 ? void 0 : reserveTransaction.object.useHoldStockByTransactionNumber) === true)
215
+ ? reserveTransaction.transactionNumber
216
+ : reserveTransaction === null || reserveTransaction === void 0 ? void 0 : reserveTransaction.id;
247
217
  if (typeof expectedHolder === 'string') {
248
218
  yield processUnlockSeat({
249
219
  reservation: {
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  }
10
10
  ],
11
11
  "dependencies": {
12
- "@chevre/factory": "4.313.0-alpha.23",
12
+ "@chevre/factory": "4.313.0-alpha.24",
13
13
  "@cinerino/sdk": "3.157.0-alpha.6",
14
14
  "@motionpicture/coa-service": "9.2.0",
15
15
  "@motionpicture/gmo-service": "5.2.0",
@@ -117,5 +117,5 @@
117
117
  "postversion": "git push origin --tags",
118
118
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
119
119
  },
120
- "version": "21.2.0-alpha.93"
120
+ "version": "21.2.0-alpha.94"
121
121
  }