@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.
- 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 +1 -0
- package/lib/chevre/service/assetTransaction/reserve.js +12 -4
- package/lib/chevre/service/offer/event/authorize.d.ts +1 -0
- package/lib/chevre/service/offer/event/authorize.js +3 -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,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:
|
|
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
|
-
|
|
660
|
-
|
|
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,
|
|
@@ -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
|
-
|
|
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.94"
|
|
121
121
|
}
|