@chevre/domain 21.2.0-alpha.93 → 21.2.0-alpha.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example/src/chevre/searchActions.ts +1 -1
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +1 -0
- package/lib/chevre/service/assetTransaction/reserve/factory.js +1 -1
- package/lib/chevre/service/assetTransaction/reserve.d.ts +2 -0
- package/lib/chevre/service/assetTransaction/reserve.js +18 -6
- package/lib/chevre/service/offer/event/authorize.d.ts +2 -0
- package/lib/chevre/service/offer/event/authorize.js +4 -2
- package/lib/chevre/service/reserve/cancelReservation.js +12 -42
- package/package.json +2 -2
|
@@ -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:
|
|
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,8 @@ type IStartParams = factory.assetTransaction.reserve.IStartParamsWithoutDetail &
|
|
|
97
97
|
*/
|
|
98
98
|
export declare function start(params: IStartParams & {
|
|
99
99
|
disablePendingReservations: boolean;
|
|
100
|
+
useHoldStockByTransactionNumber: boolean;
|
|
101
|
+
stockHoldUntilDaysAfterEventEnd: number;
|
|
100
102
|
}): IStartOperation<{
|
|
101
103
|
transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>;
|
|
102
104
|
objectSubReservations: IObjectSubReservation[];
|
|
@@ -73,7 +73,8 @@ function start(params) {
|
|
|
73
73
|
preSearchedTicketOffers: params.preSearchedTicketOffers,
|
|
74
74
|
preSearchedUnitPriceOffers: params.preSearchedUnitPriceOffers,
|
|
75
75
|
availableAtOrFrom: { id: (_e = params.availableAtOrFrom) === null || _e === void 0 ? void 0 : _e.id },
|
|
76
|
-
validateAppliesToMovieTicket: params.validateAppliesToMovieTicket
|
|
76
|
+
validateAppliesToMovieTicket: params.validateAppliesToMovieTicket,
|
|
77
|
+
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd
|
|
77
78
|
})(repos);
|
|
78
79
|
transaction = addReservationsResult.transaction;
|
|
79
80
|
objectSubReservations = addReservationsResult.objectSubReservations;
|
|
@@ -178,7 +179,12 @@ function addReservations(params) {
|
|
|
178
179
|
yield processLockSeats({
|
|
179
180
|
event: event,
|
|
180
181
|
reservations: objectSubReservations,
|
|
181
|
-
transaction:
|
|
182
|
+
transaction: {
|
|
183
|
+
id: transaction.id,
|
|
184
|
+
transactionNumber: transaction.transactionNumber,
|
|
185
|
+
object: { useHoldStockByTransactionNumber: transaction.object.useHoldStockByTransactionNumber === true }
|
|
186
|
+
},
|
|
187
|
+
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd
|
|
182
188
|
})(repos);
|
|
183
189
|
if (transaction.object.disablePendingReservations !== true) {
|
|
184
190
|
// 予約作成(insertManyで実装)
|
|
@@ -614,7 +620,7 @@ function processLockOfferRateLimit(params) {
|
|
|
614
620
|
*/
|
|
615
621
|
function processLockSeats(params) {
|
|
616
622
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
617
|
-
var _a;
|
|
623
|
+
var _a, _b;
|
|
618
624
|
const offers = [];
|
|
619
625
|
params.reservations.forEach((r) => {
|
|
620
626
|
var _a, _b;
|
|
@@ -654,10 +660,16 @@ function processLockSeats(params) {
|
|
|
654
660
|
}
|
|
655
661
|
});
|
|
656
662
|
const expires = moment(params.event.endDate)
|
|
657
|
-
|
|
663
|
+
// 設定化(2023-06-05~)
|
|
664
|
+
// .add(1, 'month')
|
|
665
|
+
.add(params.stockHoldUntilDaysAfterEventEnd, 'days')
|
|
658
666
|
.toDate();
|
|
659
|
-
|
|
660
|
-
|
|
667
|
+
// holder:取引番号に対応(2023-06-05~)
|
|
668
|
+
let holder = params.transaction.id;
|
|
669
|
+
if (((_a = params.transaction.object) === null || _a === void 0 ? void 0 : _a.useHoldStockByTransactionNumber) === true) {
|
|
670
|
+
holder = params.transaction.transactionNumber;
|
|
671
|
+
}
|
|
672
|
+
const maximumAttendeeCapacity4event = (_b = params.event.location) === null || _b === void 0 ? void 0 : _b.maximumAttendeeCapacity;
|
|
661
673
|
if (typeof maximumAttendeeCapacity4event === 'number') {
|
|
662
674
|
yield repos.stockHolder.lockIfNotLimitExceeded({
|
|
663
675
|
eventId: params.event.id,
|
|
@@ -67,7 +67,9 @@ 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,
|
|
72
|
+
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd
|
|
71
73
|
})(repos);
|
|
72
74
|
// requestBody = processStartReserveResult.requestBody;
|
|
73
75
|
// responseBody = processStartReserveResult.responseBody;
|
|
@@ -163,7 +165,7 @@ function processStartReserve4chevre(params) {
|
|
|
163
165
|
// requestBody = startParams;
|
|
164
166
|
const startParamObject = yield validateObjectWithoutDetail(startParams)(repos);
|
|
165
167
|
// 予約取引開始
|
|
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);
|
|
168
|
+
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, stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd }))(repos);
|
|
167
169
|
responseBody = startReserveTransactionResult.transaction;
|
|
168
170
|
// 予約取引からオファー情報を生成する
|
|
169
171
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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.
|
|
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.
|
|
120
|
+
"version": "21.2.0-alpha.95"
|
|
121
121
|
}
|