@chevre/domain 21.2.0-alpha.0 → 21.2.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.
- package/example/src/chevre/aggregateEventReservation.ts +1 -1
- package/example/src/chevre/countDelayedTasks.ts +17 -0
- package/example/src/chevre/countDelayedTransactions.ts +60 -0
- package/example/src/chevre/countMoneyTransferTransaction.ts +36 -0
- package/example/src/chevre/lockStockHolder.ts +48 -0
- package/example/src/chevre/migrateStockHolderKeys.ts +89 -0
- package/example/src/chevre/processReserve.ts +2 -2
- package/example/src/chevre/searchEventSeats.ts +42 -0
- package/lib/chevre/repo/account.js +0 -4
- package/lib/chevre/repo/accountTitle.js +0 -4
- package/lib/chevre/repo/accountTransaction.js +0 -4
- package/lib/chevre/repo/accountingReport.js +0 -4
- package/lib/chevre/repo/action.js +0 -4
- package/lib/chevre/repo/additionalProperty.js +0 -4
- package/lib/chevre/repo/aggregation.js +0 -4
- package/lib/chevre/repo/assetTransaction.js +5 -4
- package/lib/chevre/repo/categoryCode.js +0 -4
- package/lib/chevre/repo/code.js +0 -4
- package/lib/chevre/repo/comment.js +0 -4
- package/lib/chevre/repo/confirmationNumber.d.ts +3 -1
- package/lib/chevre/repo/confirmationNumber.js +31 -30
- package/lib/chevre/repo/creativeWork.js +0 -4
- package/lib/chevre/repo/customer.js +0 -4
- package/lib/chevre/repo/emailMessage.js +0 -4
- package/lib/chevre/repo/event.js +0 -4
- package/lib/chevre/repo/member.js +0 -4
- package/lib/chevre/repo/merchantReturnPolicy.js +0 -4
- package/lib/chevre/repo/mongoose/schemas/account.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/account.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/action.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/action.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/comments.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/comments.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/customer.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/customer.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/emailMessages.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/event.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/event.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/member.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/member.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/offer.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/order.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/place.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/priceSpecification.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/product.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/product.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/project.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/role.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/role.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/seller.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/seller.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/task.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/telemetry.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/transaction.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/trip.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/trip.js +1 -0
- package/lib/chevre/repo/offer.js +0 -5
- package/lib/chevre/repo/offerCatalog.js +0 -4
- package/lib/chevre/repo/order.js +0 -4
- package/lib/chevre/repo/orderNumber.d.ts +2 -1
- package/lib/chevre/repo/orderNumber.js +24 -28
- package/lib/chevre/repo/ownershipInfo.js +0 -4
- package/lib/chevre/repo/permit.js +0 -4
- package/lib/chevre/repo/place.d.ts +5 -1
- package/lib/chevre/repo/place.js +1 -10
- package/lib/chevre/repo/priceSpecification.js +0 -4
- package/lib/chevre/repo/product.js +0 -4
- package/lib/chevre/repo/project.js +0 -4
- package/lib/chevre/repo/rateLimit/offer.d.ts +3 -2
- package/lib/chevre/repo/rateLimit/offer.js +14 -14
- package/lib/chevre/repo/reservation.js +0 -4
- package/lib/chevre/repo/role.js +0 -4
- package/lib/chevre/repo/seller.js +0 -4
- package/lib/chevre/repo/serviceOutput.js +0 -4
- package/lib/chevre/repo/serviceOutputIdentifier.d.ts +2 -1
- package/lib/chevre/repo/serviceOutputIdentifier.js +14 -15
- package/lib/chevre/repo/{itemAvailability/screeningEvent.d.ts → stockHolder.d.ts} +8 -14
- package/lib/chevre/repo/stockHolder.js +273 -0
- package/lib/chevre/repo/task.d.ts +3 -0
- package/lib/chevre/repo/task.js +12 -4
- package/lib/chevre/repo/telemetry.js +0 -4
- package/lib/chevre/repo/transaction.js +0 -4
- package/lib/chevre/repo/transactionNumber.d.ts +2 -1
- package/lib/chevre/repo/transactionNumber.js +14 -15
- package/lib/chevre/repo/trip.js +0 -4
- package/lib/chevre/repository.d.ts +3 -5
- package/lib/chevre/repository.js +5 -8
- package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.d.ts +2 -2
- package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +4 -3
- package/lib/chevre/service/assetTransaction/reserve.d.ts +4 -4
- package/lib/chevre/service/assetTransaction/reserve.js +71 -5
- package/lib/chevre/service/offer/event/authorize.d.ts +2 -2
- package/lib/chevre/service/offer/event/cancel.d.ts +2 -2
- package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -2
- package/lib/chevre/service/offer.d.ts +13 -26
- package/lib/chevre/service/offer.js +21 -116
- package/lib/chevre/service/reserve/cancelReservation.d.ts +3 -3
- package/lib/chevre/service/reserve/cancelReservation.js +6 -6
- package/lib/chevre/service/task/aggregateScreeningEvent.js +2 -2
- package/lib/chevre/service/task/cancelPendingReservation.js +3 -3
- package/lib/chevre/service/task/cancelReservation.js +3 -3
- package/lib/chevre/service/task/voidReserveTransaction.js +3 -3
- package/lib/chevre/settings.d.ts +1 -0
- package/lib/chevre/settings.js +5 -2
- package/package.json +2 -2
- package/lib/chevre/repo/itemAvailability/screeningEvent.js +0 -181
|
@@ -119,7 +119,7 @@ function addReservations(params) {
|
|
|
119
119
|
ticketOffers = searchEventTicketOffersResult.ticketOffers;
|
|
120
120
|
availableOffers = searchEventTicketOffersResult.unitPriceOffers;
|
|
121
121
|
}
|
|
122
|
-
const availableSeatOffers = yield searchAvailableSeatOffers({ acceptedOffers, event
|
|
122
|
+
const availableSeatOffers = yield searchAvailableSeatOffers({ acceptedOffers, event })(repos);
|
|
123
123
|
// 仮予約作成
|
|
124
124
|
const { acceptedOffers4transactionObject, objectSubReservations } = yield createAcceptedOffers4transactionObject({
|
|
125
125
|
acceptedOffers,
|
|
@@ -171,14 +171,80 @@ function addReservations(params) {
|
|
|
171
171
|
return transaction;
|
|
172
172
|
});
|
|
173
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* イベントに対する座席オファーを座席コードとセクションコード指定で検索する
|
|
176
|
+
*/
|
|
177
|
+
function searchEventSeatOffers(params) {
|
|
178
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
179
|
+
var _a, _b, _c, _d, _e, _f;
|
|
180
|
+
let offers = [];
|
|
181
|
+
// 座席指定利用可能かどうか
|
|
182
|
+
const eventOffers = params.event.offers;
|
|
183
|
+
const reservedSeatsAvailable = ((_b = (_a = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.itemOffered.serviceOutput) === null || _a === void 0 ? void 0 : _a.reservedTicket) === null || _b === void 0 ? void 0 : _b.ticketedSeat) !== undefined;
|
|
184
|
+
if (reservedSeatsAvailable) {
|
|
185
|
+
// 座席タイプ価格仕様を検索
|
|
186
|
+
const priceSpecs = yield repos.priceSpecification.search({
|
|
187
|
+
project: { id: { $eq: params.event.project.id } },
|
|
188
|
+
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification,
|
|
189
|
+
appliesToCategoryCode: {
|
|
190
|
+
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.SeatingType } }
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
const roomBranchCode = String((_d = (_c = eventOffers.itemOffered) === null || _c === void 0 ? void 0 : _c.availableChannel) === null || _d === void 0 ? void 0 : _d.serviceLocation.branchCode);
|
|
194
|
+
const movieTheaterBranchCode = String((_f = (_e = eventOffers.itemOffered) === null || _e === void 0 ? void 0 : _e.availableChannel) === null || _f === void 0 ? void 0 : _f.serviceLocation.containedInPlace.branchCode);
|
|
195
|
+
const seats = yield repos.place.searchSeats({
|
|
196
|
+
project: { id: { $eq: params.event.project.id } },
|
|
197
|
+
branchCode: { $in: params.branchCode.$in },
|
|
198
|
+
containedInPlace: {
|
|
199
|
+
branchCode: {
|
|
200
|
+
$in: params.containedInPlace.branchCode.$in
|
|
201
|
+
},
|
|
202
|
+
containedInPlace: {
|
|
203
|
+
branchCode: { $eq: roomBranchCode },
|
|
204
|
+
containedInPlace: {
|
|
205
|
+
branchCode: { $eq: movieTheaterBranchCode }
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
$projection: params.$projection
|
|
210
|
+
});
|
|
211
|
+
if (seats.length > 0) {
|
|
212
|
+
const availabilities = yield repos.stockHolder.searchHolders({
|
|
213
|
+
eventId: params.event.id,
|
|
214
|
+
startDate: moment(params.event.startDate)
|
|
215
|
+
.toDate(),
|
|
216
|
+
offers: seats.map((s) => {
|
|
217
|
+
var _a;
|
|
218
|
+
return {
|
|
219
|
+
seatNumber: s.branchCode,
|
|
220
|
+
seatSection: (_a = s.containedInPlace) === null || _a === void 0 ? void 0 : _a.branchCode
|
|
221
|
+
};
|
|
222
|
+
})
|
|
223
|
+
});
|
|
224
|
+
offers = seats.map((seat, index) => {
|
|
225
|
+
return OfferService.addOffers2Seat({
|
|
226
|
+
seat,
|
|
227
|
+
// unavailableOffers: [],
|
|
228
|
+
// availability: availabilities[index].availability,
|
|
229
|
+
availability: (typeof availabilities[index] === 'string')
|
|
230
|
+
? factory.itemAvailability.OutOfStock // ホルダーが存在すればOutOfStock
|
|
231
|
+
: factory.itemAvailability.InStock,
|
|
232
|
+
priceSpecs
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return offers;
|
|
238
|
+
});
|
|
239
|
+
}
|
|
174
240
|
function searchAvailableSeatOffers(params) {
|
|
175
241
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
176
242
|
// 座席オファー検索(必要な分だけ)
|
|
177
243
|
const { acceptedSeatNumbers, acceptedSeatSections } = getAcceptedSeatNumbersAndSeatSections({ acceptedOffers: params.acceptedOffers });
|
|
178
|
-
return
|
|
244
|
+
return searchEventSeatOffers({
|
|
179
245
|
branchCode: { $in: acceptedSeatNumbers },
|
|
180
246
|
containedInPlace: { branchCode: { $in: acceptedSeatSections } },
|
|
181
|
-
event:
|
|
247
|
+
event: params.event,
|
|
182
248
|
// 試しに冗長な情報を非取得にしてみる
|
|
183
249
|
$projection: {
|
|
184
250
|
'containedInPlace.containedInPlace': 0
|
|
@@ -575,7 +641,7 @@ function processLockSeats(params) {
|
|
|
575
641
|
const holder = params.transaction.id;
|
|
576
642
|
const maximumAttendeeCapacity4event = (_a = params.event.location) === null || _a === void 0 ? void 0 : _a.maximumAttendeeCapacity;
|
|
577
643
|
if (typeof maximumAttendeeCapacity4event === 'number') {
|
|
578
|
-
yield repos.
|
|
644
|
+
yield repos.stockHolder.lockIfNotLimitExceeded({
|
|
579
645
|
eventId: params.event.id,
|
|
580
646
|
startDate: moment(params.event.startDate)
|
|
581
647
|
.toDate(),
|
|
@@ -585,7 +651,7 @@ function processLockSeats(params) {
|
|
|
585
651
|
}, maximumAttendeeCapacity4event);
|
|
586
652
|
}
|
|
587
653
|
else {
|
|
588
|
-
yield repos.
|
|
654
|
+
yield repos.stockHolder.lock({
|
|
589
655
|
eventId: params.event.id,
|
|
590
656
|
startDate: moment(params.event.startDate)
|
|
591
657
|
.toDate(),
|
|
@@ -2,7 +2,6 @@ import * as factory from '../../../factory';
|
|
|
2
2
|
import { MongoRepository as ActionRepo } from '../../../repo/action';
|
|
3
3
|
import { MongoRepository as AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
4
4
|
import { MongoRepository as EventRepo } from '../../../repo/event';
|
|
5
|
-
import { RedisRepository as ScreeningEventAvailabilityRepo } from '../../../repo/itemAvailability/screeningEvent';
|
|
6
5
|
import { MongoRepository as OfferRepo } from '../../../repo/offer';
|
|
7
6
|
import { MongoRepository as OfferCatalogRepo } from '../../../repo/offerCatalog';
|
|
8
7
|
import { MongoRepository as PlaceRepo } from '../../../repo/place';
|
|
@@ -11,6 +10,7 @@ import { MongoRepository as ProductRepo } from '../../../repo/product';
|
|
|
11
10
|
import { MongoRepository as ProjectRepo } from '../../../repo/project';
|
|
12
11
|
import { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
|
|
13
12
|
import { MongoRepository as ReservationRepo } from '../../../repo/reservation';
|
|
13
|
+
import { StockHolderRepository as StockHolderRepo } from '../../../repo/stockHolder';
|
|
14
14
|
import { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
15
15
|
import { MongoRepository as TransactionRepo } from '../../../repo/transaction';
|
|
16
16
|
import { RedisRepository as TransactionNumberRepo } from '../../../repo/transactionNumber';
|
|
@@ -19,7 +19,7 @@ interface IAuthorizeRepos {
|
|
|
19
19
|
action: ActionRepo;
|
|
20
20
|
assetTransaction: AssetTransactionRepo;
|
|
21
21
|
event: EventRepo;
|
|
22
|
-
|
|
22
|
+
stockHolder: StockHolderRepo;
|
|
23
23
|
offer: OfferRepo;
|
|
24
24
|
offerCatalog: OfferCatalogRepo;
|
|
25
25
|
offerRateLimit: OfferRateLimitRepo;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as factory from '../../../factory';
|
|
2
2
|
import { MongoRepository as ActionRepo } from '../../../repo/action';
|
|
3
3
|
import { MongoRepository as AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
4
|
-
import { RedisRepository as ScreeningEventAvailabilityRepo } from '../../../repo/itemAvailability/screeningEvent';
|
|
5
4
|
import { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
|
|
6
5
|
import { MongoRepository as ReservationRepo } from '../../../repo/reservation';
|
|
6
|
+
import { StockHolderRepository as StockHolderRepo } from '../../../repo/stockHolder';
|
|
7
7
|
import { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
8
8
|
import { MongoRepository as TransactionRepo } from '../../../repo/transaction';
|
|
9
9
|
interface ICancelRepos {
|
|
10
10
|
action: ActionRepo;
|
|
11
11
|
assetTransaction: AssetTransactionRepo;
|
|
12
|
-
|
|
12
|
+
stockHolder: StockHolderRepo;
|
|
13
13
|
offerRateLimit: OfferRateLimitRepo;
|
|
14
14
|
reservation: ReservationRepo;
|
|
15
15
|
task: TaskRepo;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as factory from '../../../factory';
|
|
2
2
|
import { MongoRepository as ActionRepo } from '../../../repo/action';
|
|
3
3
|
import { MongoRepository as AssetTransactionRepo } from '../../../repo/assetTransaction';
|
|
4
|
-
import { RedisRepository as ScreeningEventAvailabilityRepo } from '../../../repo/itemAvailability/screeningEvent';
|
|
5
4
|
import { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
|
|
6
5
|
import { MongoRepository as ReservationRepo } from '../../../repo/reservation';
|
|
6
|
+
import { StockHolderRepository as StockHolderRepo } from '../../../repo/stockHolder';
|
|
7
7
|
import { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
8
8
|
export import WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
9
9
|
interface IVoidTransactionRepos {
|
|
10
10
|
action: ActionRepo;
|
|
11
11
|
assetTransaction: AssetTransactionRepo;
|
|
12
|
-
|
|
12
|
+
stockHolder: StockHolderRepo;
|
|
13
13
|
offerRateLimit: OfferRateLimitRepo;
|
|
14
14
|
reservation: ReservationRepo;
|
|
15
15
|
task: TaskRepo;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MongoRepository as EventRepo } from '../repo/event';
|
|
2
|
-
import { RedisRepository as EventAvailabilityRepo } from '../repo/itemAvailability/screeningEvent';
|
|
3
2
|
import { MongoRepository as PlaceRepo } from '../repo/place';
|
|
4
3
|
import { MongoRepository as PriceSpecificationRepo } from '../repo/priceSpecification';
|
|
5
4
|
import { MongoRepository as ProjectRepo } from '../repo/project';
|
|
5
|
+
import { StockHolderRepository as StockHolderRepo } from '../repo/stockHolder';
|
|
6
6
|
import { MongoRepository as TaskRepo } from '../repo/task';
|
|
7
7
|
import * as factory from '../factory';
|
|
8
8
|
import * as EventOfferService from './offer/event';
|
|
@@ -11,35 +11,22 @@ import * as MoneyTransferOfferService from './offer/moneyTransfer';
|
|
|
11
11
|
import * as ProductOfferService from './offer/product';
|
|
12
12
|
export { EventOfferService as event, EventServiceByCOAOfferService as eventServiceByCOA, MoneyTransferOfferService as moneyTransfer, ProductOfferService as product };
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* 座席にオファー情報を付加する
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
event: {
|
|
26
|
-
id: string;
|
|
27
|
-
};
|
|
28
|
-
$projection?: {
|
|
29
|
-
[key: string]: number;
|
|
30
|
-
};
|
|
31
|
-
}): (repos: {
|
|
32
|
-
event: EventRepo;
|
|
33
|
-
priceSpecification: PriceSpecificationRepo;
|
|
34
|
-
eventAvailability: EventAvailabilityRepo;
|
|
35
|
-
place: PlaceRepo;
|
|
36
|
-
}) => Promise<factory.place.seat.IPlaceWithOffer[]>;
|
|
16
|
+
export declare function addOffers2Seat(params: {
|
|
17
|
+
seat: factory.place.seat.IPlace;
|
|
18
|
+
availability: factory.itemAvailability;
|
|
19
|
+
/**
|
|
20
|
+
* 座席区分加算料金
|
|
21
|
+
*/
|
|
22
|
+
priceSpecs: factory.priceSpecification.IPriceSpecification<factory.priceSpecificationType.CategoryCodeChargeSpecification>[];
|
|
23
|
+
}): factory.place.seat.IPlaceWithOffer;
|
|
37
24
|
/**
|
|
38
25
|
* イベントに対する座席オファーを検索する
|
|
39
26
|
*/
|
|
40
27
|
export declare function searchEventSeatOffersWithPaging(params: {
|
|
41
|
-
limit
|
|
42
|
-
page
|
|
28
|
+
limit: number;
|
|
29
|
+
page: number;
|
|
43
30
|
branchCode?: {
|
|
44
31
|
$eq?: string;
|
|
45
32
|
};
|
|
@@ -57,7 +44,7 @@ export declare function searchEventSeatOffersWithPaging(params: {
|
|
|
57
44
|
}): (repos: {
|
|
58
45
|
event: EventRepo;
|
|
59
46
|
priceSpecification: PriceSpecificationRepo;
|
|
60
|
-
|
|
47
|
+
stockHolder: StockHolderRepo;
|
|
61
48
|
place: PlaceRepo;
|
|
62
49
|
}) => Promise<factory.place.seat.IPlaceWithOffer[]>;
|
|
63
50
|
interface IChangedEvent {
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createAggregateScreeningEventIfNotExist = exports.onEventChanged = exports.searchEventSeatOffersWithPaging = exports.
|
|
12
|
+
exports.createAggregateScreeningEventIfNotExist = exports.onEventChanged = exports.searchEventSeatOffersWithPaging = exports.addOffers2Seat = exports.product = exports.moneyTransfer = exports.eventServiceByCOA = exports.event = void 0;
|
|
13
13
|
const moment = require("moment");
|
|
14
14
|
const factory = require("../factory");
|
|
15
15
|
const EventOfferService = require("./offer/event");
|
|
@@ -24,121 +24,33 @@ exports.product = ProductOfferService;
|
|
|
24
24
|
* 座席にオファー情報を付加する
|
|
25
25
|
*/
|
|
26
26
|
function addOffers2Seat(params) {
|
|
27
|
-
const seatNumber = params.seat.branchCode;
|
|
28
|
-
const unavailableOffer = params.unavailableOffers.find((o) => o.seatSection === params.seatSection && o.seatNumber === seatNumber);
|
|
29
|
-
const priceComponent = [];
|
|
30
27
|
// 座席タイプが指定されていれば、適用される価格仕様を構成要素に追加
|
|
31
28
|
const seatingTypes = (Array.isArray(params.seat.seatingType))
|
|
32
29
|
? params.seat.seatingType
|
|
33
|
-
: (typeof params.seat.seatingType === 'string' && params.seat.seatingType.length > 0) ? [params.seat.seatingType]
|
|
34
|
-
|
|
35
|
-
priceComponent.push(...params.priceSpecs.filter((s) => {
|
|
30
|
+
: (typeof params.seat.seatingType === 'string' && params.seat.seatingType.length > 0) ? [params.seat.seatingType] : [];
|
|
31
|
+
const priceComponent = params.priceSpecs.filter((s) => {
|
|
36
32
|
// 適用カテゴリーコードに座席タイプが含まれる価格仕様を検索
|
|
37
33
|
return (Array.isArray(s.appliesToCategoryCode))
|
|
38
34
|
&& s.appliesToCategoryCode.some((categoryCode) => {
|
|
39
|
-
return seatingTypes.includes(categoryCode.codeValue)
|
|
40
|
-
|
|
41
|
-
&& categoryCode.inCodeSet.identifier === factory.categoryCode.CategorySetIdentifier.SeatingType;
|
|
35
|
+
return seatingTypes.includes(categoryCode.codeValue);
|
|
36
|
+
// && categoryCode.inCodeSet.identifier === factory.categoryCode.CategorySetIdentifier.SeatingType;
|
|
42
37
|
});
|
|
43
|
-
})
|
|
44
|
-
// 最適化(2022-11-15~)
|
|
38
|
+
});
|
|
45
39
|
const priceSpecification = {
|
|
46
40
|
typeOf: factory.priceSpecificationType.CompoundPriceSpecification,
|
|
47
|
-
|
|
48
|
-
// valueAddedTaxIncluded: true,
|
|
49
|
-
priceComponent: priceComponent
|
|
41
|
+
priceComponent
|
|
50
42
|
};
|
|
51
|
-
let availability =
|
|
52
|
-
|
|
53
|
-
: factory.itemAvailability.InStock;
|
|
54
|
-
if (params.availability !== undefined) {
|
|
43
|
+
let availability = factory.itemAvailability.InStock;
|
|
44
|
+
if (typeof params.availability === 'string') {
|
|
55
45
|
availability = params.availability;
|
|
56
46
|
}
|
|
57
47
|
return Object.assign(Object.assign({}, params.seat), { offers: [{
|
|
58
|
-
// 最適化(2022-11-15~)
|
|
59
|
-
// project: params.project,
|
|
60
48
|
typeOf: factory.offerType.Offer,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
priceSpecification: priceSpecification
|
|
49
|
+
availability,
|
|
50
|
+
priceSpecification
|
|
64
51
|
}] });
|
|
65
52
|
}
|
|
66
|
-
|
|
67
|
-
* イベントに対する座席オファーを座席コードとセクションコード指定で検索する
|
|
68
|
-
*/
|
|
69
|
-
function searchEventSeatOffers(params) {
|
|
70
|
-
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
72
|
-
let offers = [];
|
|
73
|
-
// イベント取得属性最適化(2023-01-23~)
|
|
74
|
-
// const event = await repos.event.findById<factory.eventType.ScreeningEvent | factory.eventType.Event>({
|
|
75
|
-
// id: params.event.id
|
|
76
|
-
// });
|
|
77
|
-
const event = yield repos.event.findMinimizedIndividualEventById({
|
|
78
|
-
id: params.event.id
|
|
79
|
-
});
|
|
80
|
-
// 座席指定利用可能かどうか
|
|
81
|
-
const eventOffers = event.offers;
|
|
82
|
-
const reservedSeatsAvailable = ((_b = (_a = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.itemOffered.serviceOutput) === null || _a === void 0 ? void 0 : _a.reservedTicket) === null || _b === void 0 ? void 0 : _b.ticketedSeat) !== undefined;
|
|
83
|
-
if (reservedSeatsAvailable) {
|
|
84
|
-
// 座席タイプ価格仕様を検索
|
|
85
|
-
const priceSpecs = yield repos.priceSpecification.search({
|
|
86
|
-
project: { id: { $eq: event.project.id } },
|
|
87
|
-
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification,
|
|
88
|
-
appliesToCategoryCode: {
|
|
89
|
-
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.SeatingType } }
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
// const roomBranchCode = event.location.branchCode;
|
|
93
|
-
// const movieTheaterBranchCode = event.superEvent.location.branchCode;
|
|
94
|
-
const roomBranchCode = String((_d = (_c = eventOffers.itemOffered) === null || _c === void 0 ? void 0 : _c.availableChannel) === null || _d === void 0 ? void 0 : _d.serviceLocation.branchCode);
|
|
95
|
-
const movieTheaterBranchCode = String((_f = (_e = eventOffers.itemOffered) === null || _e === void 0 ? void 0 : _e.availableChannel) === null || _f === void 0 ? void 0 : _f.serviceLocation.containedInPlace.branchCode);
|
|
96
|
-
const seats = yield repos.place.searchSeats({
|
|
97
|
-
project: { id: { $eq: event.project.id } },
|
|
98
|
-
branchCode: { $in: (_g = params.branchCode) === null || _g === void 0 ? void 0 : _g.$in },
|
|
99
|
-
containedInPlace: {
|
|
100
|
-
branchCode: {
|
|
101
|
-
$in: (_j = (_h = params.containedInPlace) === null || _h === void 0 ? void 0 : _h.branchCode) === null || _j === void 0 ? void 0 : _j.$in
|
|
102
|
-
},
|
|
103
|
-
containedInPlace: {
|
|
104
|
-
branchCode: { $eq: roomBranchCode },
|
|
105
|
-
containedInPlace: {
|
|
106
|
-
branchCode: { $eq: movieTheaterBranchCode }
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
$projection: params.$projection
|
|
111
|
-
});
|
|
112
|
-
if (seats.length > 0) {
|
|
113
|
-
const availabilities = yield repos.eventAvailability.searchAvailability({
|
|
114
|
-
eventId: params.event.id,
|
|
115
|
-
startDate: moment(event.startDate)
|
|
116
|
-
.toDate(),
|
|
117
|
-
offers: seats.map((s) => {
|
|
118
|
-
var _a;
|
|
119
|
-
return {
|
|
120
|
-
seatNumber: s.branchCode,
|
|
121
|
-
seatSection: (_a = s.containedInPlace) === null || _a === void 0 ? void 0 : _a.branchCode
|
|
122
|
-
};
|
|
123
|
-
})
|
|
124
|
-
});
|
|
125
|
-
offers = seats.map((seat, index) => {
|
|
126
|
-
var _a;
|
|
127
|
-
return addOffers2Seat({
|
|
128
|
-
project: event.project,
|
|
129
|
-
seat: seat,
|
|
130
|
-
seatSection: (_a = seat.containedInPlace) === null || _a === void 0 ? void 0 : _a.branchCode,
|
|
131
|
-
unavailableOffers: [],
|
|
132
|
-
availability: availabilities[index].availability,
|
|
133
|
-
priceSpecs: priceSpecs
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return offers;
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
exports.searchEventSeatOffers = searchEventSeatOffers;
|
|
53
|
+
exports.addOffers2Seat = addOffers2Seat;
|
|
142
54
|
/**
|
|
143
55
|
* イベントに対する座席オファーを検索する
|
|
144
56
|
*/
|
|
@@ -147,12 +59,7 @@ function searchEventSeatOffersWithPaging(params) {
|
|
|
147
59
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
148
60
|
let offers = [];
|
|
149
61
|
// イベント取得属性最適化(2023-01-23~)
|
|
150
|
-
|
|
151
|
-
// id: params.event.id
|
|
152
|
-
// });
|
|
153
|
-
const event = yield repos.event.findMinimizedIndividualEventById({
|
|
154
|
-
id: params.event.id
|
|
155
|
-
});
|
|
62
|
+
const event = yield repos.event.findMinimizedIndividualEventById({ id: params.event.id });
|
|
156
63
|
// 座席指定利用可能かどうか
|
|
157
64
|
const eventOffers = event.offers;
|
|
158
65
|
const reservedSeatsAvailable = ((_b = (_a = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.itemOffered.serviceOutput) === null || _a === void 0 ? void 0 : _a.reservedTicket) === null || _b === void 0 ? void 0 : _b.ticketedSeat) !== undefined;
|
|
@@ -165,8 +72,6 @@ function searchEventSeatOffersWithPaging(params) {
|
|
|
165
72
|
inCodeSet: { identifier: { $eq: factory.categoryCode.CategorySetIdentifier.SeatingType } }
|
|
166
73
|
}
|
|
167
74
|
});
|
|
168
|
-
// const roomBranchCode = event.location.branchCode;
|
|
169
|
-
// const movieTheaterBranchCode = event.superEvent.location.branchCode;
|
|
170
75
|
const roomBranchCode = String((_d = (_c = eventOffers.itemOffered) === null || _c === void 0 ? void 0 : _c.availableChannel) === null || _d === void 0 ? void 0 : _d.serviceLocation.branchCode);
|
|
171
76
|
const movieTheaterBranchCode = String((_f = (_e = eventOffers.itemOffered) === null || _e === void 0 ? void 0 : _e.availableChannel) === null || _f === void 0 ? void 0 : _f.serviceLocation.containedInPlace.branchCode);
|
|
172
77
|
const seats = yield repos.place.searchSeats(Object.assign(Object.assign({}, params), { project: { id: { $eq: event.project.id } }, containedInPlace: {
|
|
@@ -183,7 +88,7 @@ function searchEventSeatOffersWithPaging(params) {
|
|
|
183
88
|
}
|
|
184
89
|
} }));
|
|
185
90
|
if (seats.length > 0) {
|
|
186
|
-
const availabilities = yield repos.
|
|
91
|
+
const availabilities = yield repos.stockHolder.searchHolders({
|
|
187
92
|
eventId: params.event.id,
|
|
188
93
|
startDate: moment(event.startDate)
|
|
189
94
|
.toDate(),
|
|
@@ -196,14 +101,14 @@ function searchEventSeatOffersWithPaging(params) {
|
|
|
196
101
|
})
|
|
197
102
|
});
|
|
198
103
|
offers = seats.map((seat, index) => {
|
|
199
|
-
var _a;
|
|
200
104
|
return addOffers2Seat({
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
105
|
+
seat,
|
|
106
|
+
// unavailableOffers: [],
|
|
107
|
+
// availability: availabilities[index].availability,
|
|
108
|
+
availability: (typeof availabilities[index] === 'string')
|
|
109
|
+
? factory.itemAvailability.OutOfStock // ホルダーが存在すればOutOfStock
|
|
110
|
+
: factory.itemAvailability.InStock,
|
|
111
|
+
priceSpecs
|
|
207
112
|
});
|
|
208
113
|
});
|
|
209
114
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as factory from '../../factory';
|
|
2
2
|
import { MongoRepository as ActionRepo } from '../../repo/action';
|
|
3
3
|
import { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
|
|
4
|
-
import { RedisRepository as ScreeningEventAvailabilityRepo } from '../../repo/itemAvailability/screeningEvent';
|
|
5
4
|
import { RedisRepository as OfferRateLimitRepo } from '../../repo/rateLimit/offer';
|
|
6
5
|
import { MongoRepository as ReservationRepo } from '../../repo/reservation';
|
|
6
|
+
import { StockHolderRepository as StockHolderRepo } from '../../repo/stockHolder';
|
|
7
7
|
import { MongoRepository as TaskRepo } from '../../repo/task';
|
|
8
8
|
type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
|
|
9
9
|
/**
|
|
@@ -12,7 +12,7 @@ type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservat
|
|
|
12
12
|
declare function cancelPendingReservation(actionAttributesList: factory.action.cancel.reservation.IAttributes[]): (repos: {
|
|
13
13
|
action: ActionRepo;
|
|
14
14
|
assetTransaction: AssetTransactionRepo;
|
|
15
|
-
|
|
15
|
+
stockHolder: StockHolderRepo;
|
|
16
16
|
offerRateLimit: OfferRateLimitRepo;
|
|
17
17
|
reservation: ReservationRepo;
|
|
18
18
|
task: TaskRepo;
|
|
@@ -22,7 +22,7 @@ declare function cancelPendingReservation(actionAttributesList: factory.action.c
|
|
|
22
22
|
*/
|
|
23
23
|
declare function cancelReservation(actionAttributesList: factory.action.cancel.reservation.IAttributes[]): (repos: {
|
|
24
24
|
action: ActionRepo;
|
|
25
|
-
|
|
25
|
+
stockHolder: StockHolderRepo;
|
|
26
26
|
offerRateLimit: OfferRateLimitRepo;
|
|
27
27
|
reservation: ReservationRepo;
|
|
28
28
|
task: TaskRepo;
|
|
@@ -344,9 +344,9 @@ function processUnlockSeat(params) {
|
|
|
344
344
|
seatSection: ''
|
|
345
345
|
}
|
|
346
346
|
};
|
|
347
|
-
let holder = yield repos.
|
|
347
|
+
let holder = yield repos.stockHolder.getHolder(lockKey);
|
|
348
348
|
if (holder === params.expectedHolder) {
|
|
349
|
-
yield repos.
|
|
349
|
+
yield repos.stockHolder.unlock(lockKey);
|
|
350
350
|
}
|
|
351
351
|
// 予約取引がまだ座席を保持していれば座席ロック解除
|
|
352
352
|
const ticketedSeat = reservation.reservedTicket.ticketedSeat;
|
|
@@ -359,9 +359,9 @@ function processUnlockSeat(params) {
|
|
|
359
359
|
seatSection: ticketedSeat.seatSection
|
|
360
360
|
}
|
|
361
361
|
};
|
|
362
|
-
holder = yield repos.
|
|
362
|
+
holder = yield repos.stockHolder.getHolder(lockKey);
|
|
363
363
|
if (holder === params.expectedHolder) {
|
|
364
|
-
yield repos.
|
|
364
|
+
yield repos.stockHolder.unlock(lockKey);
|
|
365
365
|
}
|
|
366
366
|
}
|
|
367
367
|
// subReservationがあれば、そちらも解除(順不同)
|
|
@@ -380,9 +380,9 @@ function processUnlockSeat(params) {
|
|
|
380
380
|
seatSection: seatSection4sub
|
|
381
381
|
}
|
|
382
382
|
};
|
|
383
|
-
const holder4sub = yield repos.
|
|
383
|
+
const holder4sub = yield repos.stockHolder.getHolder(lockKey4sub);
|
|
384
384
|
if (holder4sub === params.expectedHolder) {
|
|
385
|
-
yield repos.
|
|
385
|
+
yield repos.stockHolder.unlock(lockKey4sub);
|
|
386
386
|
}
|
|
387
387
|
}
|
|
388
388
|
})));
|
|
@@ -12,7 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.call = void 0;
|
|
13
13
|
const factory = require("../../factory");
|
|
14
14
|
const event_1 = require("../../repo/event");
|
|
15
|
-
const screeningEvent_1 = require("../../repo/itemAvailability/screeningEvent");
|
|
16
15
|
const offer_1 = require("../../repo/offer");
|
|
17
16
|
const offerCatalog_1 = require("../../repo/offerCatalog");
|
|
18
17
|
const place_1 = require("../../repo/place");
|
|
@@ -20,6 +19,7 @@ const product_1 = require("../../repo/product");
|
|
|
20
19
|
const project_1 = require("../../repo/project");
|
|
21
20
|
const offer_2 = require("../../repo/rateLimit/offer");
|
|
22
21
|
const reservation_1 = require("../../repo/reservation");
|
|
22
|
+
const stockHolder_1 = require("../../repo/stockHolder");
|
|
23
23
|
const task_1 = require("../../repo/task");
|
|
24
24
|
const AggregationService = require("../aggregation");
|
|
25
25
|
/**
|
|
@@ -32,7 +32,7 @@ function call(data) {
|
|
|
32
32
|
}
|
|
33
33
|
yield AggregationService.event.aggregateScreeningEvent(data)({
|
|
34
34
|
event: new event_1.MongoRepository(settings.connection),
|
|
35
|
-
|
|
35
|
+
stockHolder: new stockHolder_1.StockHolderRepository(settings.redisClient),
|
|
36
36
|
offer: new offer_1.MongoRepository(settings.connection),
|
|
37
37
|
offerCatalog: new offerCatalog_1.MongoRepository(settings.connection),
|
|
38
38
|
offerRateLimit: new offer_2.RedisRepository(settings.redisClient),
|
|
@@ -13,9 +13,9 @@ exports.call = void 0;
|
|
|
13
13
|
const factory = require("../../factory");
|
|
14
14
|
const action_1 = require("../../repo/action");
|
|
15
15
|
const assetTransaction_1 = require("../../repo/assetTransaction");
|
|
16
|
-
const screeningEvent_1 = require("../../repo/itemAvailability/screeningEvent");
|
|
17
16
|
const offer_1 = require("../../repo/rateLimit/offer");
|
|
18
17
|
const reservation_1 = require("../../repo/reservation");
|
|
18
|
+
const stockHolder_1 = require("../../repo/stockHolder");
|
|
19
19
|
const task_1 = require("../../repo/task");
|
|
20
20
|
const ReserveService = require("../reserve");
|
|
21
21
|
/**
|
|
@@ -30,12 +30,12 @@ function call(data) {
|
|
|
30
30
|
const assetTransactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
|
|
31
31
|
const taskRepo = new task_1.MongoRepository(settings.connection);
|
|
32
32
|
const reservationRepo = new reservation_1.MongoRepository(settings.connection);
|
|
33
|
-
const
|
|
33
|
+
const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient);
|
|
34
34
|
const offerRateLimitRepo = new offer_1.RedisRepository(settings.redisClient);
|
|
35
35
|
yield ReserveService.cancelPendingReservation(data.actionAttributes)({
|
|
36
36
|
action: actionRepo,
|
|
37
37
|
assetTransaction: assetTransactionRepo,
|
|
38
|
-
|
|
38
|
+
stockHolder: stockHolderRepo,
|
|
39
39
|
offerRateLimit: offerRateLimitRepo,
|
|
40
40
|
reservation: reservationRepo,
|
|
41
41
|
task: taskRepo
|
|
@@ -13,9 +13,9 @@ exports.call = void 0;
|
|
|
13
13
|
const factory = require("../../factory");
|
|
14
14
|
const action_1 = require("../../repo/action");
|
|
15
15
|
const assetTransaction_1 = require("../../repo/assetTransaction");
|
|
16
|
-
const screeningEvent_1 = require("../../repo/itemAvailability/screeningEvent");
|
|
17
16
|
const offer_1 = require("../../repo/rateLimit/offer");
|
|
18
17
|
const reservation_1 = require("../../repo/reservation");
|
|
18
|
+
const stockHolder_1 = require("../../repo/stockHolder");
|
|
19
19
|
const task_1 = require("../../repo/task");
|
|
20
20
|
const ReserveService = require("../reserve");
|
|
21
21
|
/**
|
|
@@ -30,7 +30,7 @@ function call(data) {
|
|
|
30
30
|
const reservationRepo = new reservation_1.MongoRepository(settings.connection);
|
|
31
31
|
const taskRepo = new task_1.MongoRepository(settings.connection);
|
|
32
32
|
const transactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
|
|
33
|
-
const
|
|
33
|
+
const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient);
|
|
34
34
|
const offerRateLimitRepo = new offer_1.RedisRepository(settings.redisClient);
|
|
35
35
|
yield ReserveService.cancelReservation(data.actionAttributes)({
|
|
36
36
|
action: actionRepo,
|
|
@@ -38,7 +38,7 @@ function call(data) {
|
|
|
38
38
|
task: taskRepo,
|
|
39
39
|
assetTransaction: transactionRepo,
|
|
40
40
|
offerRateLimit: offerRateLimitRepo,
|
|
41
|
-
|
|
41
|
+
stockHolder: stockHolderRepo
|
|
42
42
|
});
|
|
43
43
|
});
|
|
44
44
|
}
|
|
@@ -13,9 +13,9 @@ exports.call = void 0;
|
|
|
13
13
|
const factory = require("../../factory");
|
|
14
14
|
const action_1 = require("../../repo/action");
|
|
15
15
|
const assetTransaction_1 = require("../../repo/assetTransaction");
|
|
16
|
-
const screeningEvent_1 = require("../../repo/itemAvailability/screeningEvent");
|
|
17
16
|
const offer_1 = require("../../repo/rateLimit/offer");
|
|
18
17
|
const reservation_1 = require("../../repo/reservation");
|
|
18
|
+
const stockHolder_1 = require("../../repo/stockHolder");
|
|
19
19
|
const task_1 = require("../../repo/task");
|
|
20
20
|
const EventOfferService = require("../offer/event");
|
|
21
21
|
/**
|
|
@@ -28,14 +28,14 @@ function call(data) {
|
|
|
28
28
|
}
|
|
29
29
|
const actionRepo = new action_1.MongoRepository(settings.connection);
|
|
30
30
|
const assetTransactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
|
|
31
|
-
const
|
|
31
|
+
const stockHolderRepo = new stockHolder_1.StockHolderRepository(settings.redisClient);
|
|
32
32
|
const offerRateLimitRepo = new offer_1.RedisRepository(settings.redisClient);
|
|
33
33
|
const reservationRepo = new reservation_1.MongoRepository(settings.connection);
|
|
34
34
|
const taskRepo = new task_1.MongoRepository(settings.connection);
|
|
35
35
|
yield EventOfferService.voidTransaction(data)({
|
|
36
36
|
action: actionRepo,
|
|
37
37
|
assetTransaction: assetTransactionRepo,
|
|
38
|
-
|
|
38
|
+
stockHolder: stockHolderRepo,
|
|
39
39
|
offerRateLimit: offerRateLimitRepo,
|
|
40
40
|
reservation: reservationRepo,
|
|
41
41
|
task: taskRepo
|
package/lib/chevre/settings.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export declare const DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD: string;
|
|
|
30
30
|
export declare const USE_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
|
|
31
31
|
export declare const USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
|
|
32
32
|
export declare const USE_NEW_EVENT_AVAILABILITY_KEY_FROM: moment.Moment;
|
|
33
|
+
export declare const USE_NEW_CONFIRMATION_NUMBER_KEY_FROM: moment.Moment;
|
|
33
34
|
/**
|
|
34
35
|
* グローバル設定
|
|
35
36
|
*/
|
package/lib/chevre/settings.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.settings = exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.ABORTED_TASKS_WITHOUT_REPORT = void 0;
|
|
3
|
+
exports.settings = exports.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM = exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.ABORTED_TASKS_WITHOUT_REPORT = void 0;
|
|
4
4
|
const moment = require("moment");
|
|
5
5
|
const factory = require("./factory");
|
|
6
6
|
const transactionWebhookUrls = (typeof process.env.INFORM_TRANSACTION_URL === 'string')
|
|
@@ -48,7 +48,10 @@ exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_ASSET_TRANSACTIO
|
|
|
48
48
|
exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING === '1';
|
|
49
49
|
exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = (typeof process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM === 'string')
|
|
50
50
|
? moment(process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM)
|
|
51
|
-
: moment('2023-
|
|
51
|
+
: moment('2023-08-31T15:00:00Z');
|
|
52
|
+
exports.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM = (typeof process.env.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM === 'string')
|
|
53
|
+
? moment(process.env.USE_NEW_CONFIRMATION_NUMBER_KEY_FROM)
|
|
54
|
+
: moment('2023-04-30T15:00:00Z');
|
|
52
55
|
/**
|
|
53
56
|
* グローバル設定
|
|
54
57
|
*/
|