@chevre/domain 21.37.0-alpha.6 → 21.37.0-alpha.8
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/lib/chevre/repo/assetTransaction.d.ts +1 -0
- package/lib/chevre/repo/assetTransaction.js +20 -1
- package/lib/chevre/service/assetTransaction/cancelReservation.d.ts +1 -1
- package/lib/chevre/service/assetTransaction/refund.d.ts +1 -1
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +3 -18
- package/lib/chevre/service/assetTransaction/reserve/factory.js +4 -78
- package/lib/chevre/service/assetTransaction/reserve.d.ts +0 -4
- package/lib/chevre/service/assetTransaction/reserve.js +60 -65
- package/lib/chevre/service/offer/event/authorize.d.ts +0 -3
- package/lib/chevre/service/offer/event/authorize.js +4 -4
- package/lib/chevre/service/offer/event/processStartReserve4chevre.d.ts +0 -3
- package/lib/chevre/service/offer/event/processStartReserve4chevre.js +3 -1
- package/lib/chevre/service/reserve/cancelReservation.js +1 -1
- package/lib/chevre/service/reserve/confirmReservation.js +1 -1
- package/lib/chevre/service/reserve/factory.d.ts +15 -0
- package/lib/chevre/service/reserve/factory.js +74 -1
- package/package.json +3 -3
|
@@ -57,6 +57,7 @@ export declare class MongoRepository {
|
|
|
57
57
|
* 取引を開始する
|
|
58
58
|
*/
|
|
59
59
|
start<T extends factory.assetTransactionType>(params: factory.assetTransaction.IStartParams<T>): Promise<factory.assetTransaction.ITransaction<T>>;
|
|
60
|
+
startWithMinimalResponse<T extends factory.assetTransactionType>(params: factory.assetTransaction.IStartParams<T>): Promise<Pick<factory.assetTransaction.ITransaction<factory.assetTransactionType>, 'id'>>;
|
|
60
61
|
findById<T extends factory.assetTransactionType>(params: {
|
|
61
62
|
typeOf: T;
|
|
62
63
|
id: string;
|
|
@@ -299,7 +299,9 @@ class MongoRepository {
|
|
|
299
299
|
/**
|
|
300
300
|
* 取引を開始する
|
|
301
301
|
*/
|
|
302
|
-
start(params
|
|
302
|
+
start(params
|
|
303
|
+
// ): Promise<Pick<factory.assetTransaction.ITransaction<T>, 'id'>> {
|
|
304
|
+
) {
|
|
303
305
|
return __awaiter(this, void 0, void 0, function* () {
|
|
304
306
|
return this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate: new Date(), endDate: undefined, tasksExportAction: {
|
|
305
307
|
actionStatus: factory.actionStatusType.PotentialActionStatus
|
|
@@ -307,6 +309,23 @@ class MongoRepository {
|
|
|
307
309
|
.then((doc) => doc.toObject());
|
|
308
310
|
});
|
|
309
311
|
}
|
|
312
|
+
startWithMinimalResponse(params) {
|
|
313
|
+
var _a, _b;
|
|
314
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
315
|
+
const { typeOf } = params;
|
|
316
|
+
const creatingTransaction = Object.assign(Object.assign({}, params), { typeOf, status: factory.transactionStatusType.InProgress, startDate: new Date(),
|
|
317
|
+
// endDate: undefined,
|
|
318
|
+
tasksExportAction: {
|
|
319
|
+
actionStatus: factory.actionStatusType.PotentialActionStatus
|
|
320
|
+
} });
|
|
321
|
+
const result = yield this.transactionModel.insertMany(creatingTransaction, { ordered: false, rawResult: true });
|
|
322
|
+
const id = (_b = (_a = result.insertedIds) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.toHexString();
|
|
323
|
+
if (typeof id !== 'string') {
|
|
324
|
+
throw new factory.errors.Internal('assetTransaction not saved');
|
|
325
|
+
}
|
|
326
|
+
return { id };
|
|
327
|
+
});
|
|
328
|
+
}
|
|
310
329
|
findById(params, inclusion) {
|
|
311
330
|
return __awaiter(this, void 0, void 0, function* () {
|
|
312
331
|
let projection = {};
|
|
@@ -22,7 +22,7 @@ export declare function start(params: factory.assetTransaction.cancelReservation
|
|
|
22
22
|
seller: {
|
|
23
23
|
id?: string;
|
|
24
24
|
};
|
|
25
|
-
}): IStartOperation<factory.assetTransaction.cancelReservation.ITransaction
|
|
25
|
+
}): IStartOperation<Pick<factory.assetTransaction.cancelReservation.ITransaction, 'id'>>;
|
|
26
26
|
/**
|
|
27
27
|
* 取引確定
|
|
28
28
|
*/
|
|
@@ -24,7 +24,7 @@ export type IExportTasksOperation<T> = (repos: {
|
|
|
24
24
|
/**
|
|
25
25
|
* 取引開始
|
|
26
26
|
*/
|
|
27
|
-
export declare function start(params: factory.assetTransaction.refund.IStartParamsWithoutDetail): IStartOperation<factory.assetTransaction.refund.ITransaction
|
|
27
|
+
export declare function start(params: factory.assetTransaction.refund.IStartParamsWithoutDetail): IStartOperation<Pick<factory.assetTransaction.refund.ITransaction, 'id'>>;
|
|
28
28
|
/**
|
|
29
29
|
* 取引確定
|
|
30
30
|
*/
|
|
@@ -15,7 +15,6 @@ export declare function createStartParams(params: factory.assetTransaction.reser
|
|
|
15
15
|
id: string;
|
|
16
16
|
};
|
|
17
17
|
reservationNumber: string;
|
|
18
|
-
useHoldStockByTransactionNumber: boolean;
|
|
19
18
|
event: IMinimizedIndividualEvent<factory.eventType.Event | factory.eventType.ScreeningEvent>;
|
|
20
19
|
}): factory.assetTransaction.IStartParams<factory.assetTransactionType.Reserve> & {
|
|
21
20
|
object: IObject;
|
|
@@ -29,7 +28,9 @@ export declare function createPointAward(params: {
|
|
|
29
28
|
reservation: {
|
|
30
29
|
id: string;
|
|
31
30
|
};
|
|
32
|
-
|
|
31
|
+
project: {
|
|
32
|
+
id: string;
|
|
33
|
+
};
|
|
33
34
|
}): factory.action.transfer.moneyTransfer.IPointAward | undefined;
|
|
34
35
|
export declare function createReservedTicket(params: {
|
|
35
36
|
id: string;
|
|
@@ -43,7 +44,6 @@ export declare function createReservedTicket(params: {
|
|
|
43
44
|
screeningRoomSections?: factory.place.screeningRoomSection.IPlace[];
|
|
44
45
|
availableSeatOffers: factory.place.seat.IPlaceWithOffer[];
|
|
45
46
|
ticketOffer: factory.product.ITicketOffer;
|
|
46
|
-
transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>;
|
|
47
47
|
}): factory.reservation.ITicket;
|
|
48
48
|
export declare function validateAppliesToMovieTicket(params: {
|
|
49
49
|
availableOffer: factory.unitPriceOffer.IUnitPriceOffer;
|
|
@@ -94,18 +94,3 @@ export declare function createPotentialActions(params: {
|
|
|
94
94
|
potentialActions: factory.assetTransaction.reserve.IPotentialActions;
|
|
95
95
|
underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
|
|
96
96
|
};
|
|
97
|
-
export declare function createMoneyTransferActions(params: {
|
|
98
|
-
acceptedOffer?: factory.assetTransaction.reserve.IAcceptedOffer4object;
|
|
99
|
-
reservation: Pick<factory.assetTransaction.reserve.IObjectSubReservation, 'reservedTicket'>;
|
|
100
|
-
transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>;
|
|
101
|
-
underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
|
|
102
|
-
}): import("@chevre/factory/lib/action/transfer/moneyTransfer").IAttributes[];
|
|
103
|
-
export interface IPotentialCancelAction extends factory.action.cancel.reservation.IAttributes {
|
|
104
|
-
purpose: {
|
|
105
|
-
id: string;
|
|
106
|
-
typeOf: factory.assetTransactionType.Reserve;
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
export declare function createCancelPendingReservationAction(params: {
|
|
110
|
-
transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>;
|
|
111
|
-
}): IPotentialCancelAction | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.createPotentialActions = exports.createReservation = exports.createIssuedThrough = exports.createReservationFor = exports.createAdditionalTicketText = exports.createAdditionalProperty = exports.validateAppliesToMovieTicket = exports.createReservedTicket = exports.createPointAward = exports.createStartParams = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 予約取引ファクトリー
|
|
6
6
|
*/
|
|
@@ -21,9 +21,7 @@ function createStartParams(params) {
|
|
|
21
21
|
const { issuedThrough } = createIssuedThrough({ reservationFor: params.event });
|
|
22
22
|
const reservationPackage = Object.assign({ issuedThrough,
|
|
23
23
|
provider,
|
|
24
|
-
reservationFor, reservationNumber: reservationNumber, reservationStatus: factory.reservationStatusType.ReservationPending,
|
|
25
|
-
// trueで固定(2023-07-19~)
|
|
26
|
-
disablePendingReservations: true, 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);
|
|
24
|
+
reservationFor, reservationNumber: reservationNumber, reservationStatus: factory.reservationStatusType.ReservationPending, disablePendingReservations: true, useHoldStockByTransactionNumber: true, typeOf: factory.reservationType.ReservationPackage }, (typeof ((_a = params.object.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.object.broker } : undefined);
|
|
27
25
|
return {
|
|
28
26
|
project: { id: params.project.id, typeOf: factory.organizationType.Project },
|
|
29
27
|
typeOf: factory.assetTransactionType.Reserve,
|
|
@@ -53,8 +51,8 @@ function createPointAward(params) {
|
|
|
53
51
|
&& typeof pointAwardToLocationIssuedThroughId === 'string') {
|
|
54
52
|
// ここで識別子を作成する(入金のユニークネスが保証される)
|
|
55
53
|
const purposeIdentifier = (0, accountTransactionIdentifier_1.createPointAwardPurposeIdentifier4reservation)({
|
|
56
|
-
assetTransaction: { typeOf:
|
|
57
|
-
project: { id: params.
|
|
54
|
+
assetTransaction: { typeOf: factory.assetTransactionType.Reserve },
|
|
55
|
+
project: { id: params.project.id },
|
|
58
56
|
reservation: { id: params.reservation.id },
|
|
59
57
|
toLocation: { identifier: pointAwardToLocationIdentifier }
|
|
60
58
|
});
|
|
@@ -584,75 +582,3 @@ function ordre2reservationUnderName(params) {
|
|
|
584
582
|
underName: createReservationUnderName({ order: params.order })
|
|
585
583
|
};
|
|
586
584
|
}
|
|
587
|
-
function createMoneyTransferActions(params) {
|
|
588
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
589
|
-
const pointAward = (_b = (_a = params.acceptedOffer) === null || _a === void 0 ? void 0 : _a.itemOffered) === null || _b === void 0 ? void 0 : _b.pointAward;
|
|
590
|
-
const moneyTransfer = [];
|
|
591
|
-
// ポイント特典があれば適用
|
|
592
|
-
const pointAwardToLocationIdentifier = (_c = pointAward === null || pointAward === void 0 ? void 0 : pointAward.toLocation) === null || _c === void 0 ? void 0 : _c.identifier;
|
|
593
|
-
const pointAwardToLocationTypeOf = (_d = pointAward === null || pointAward === void 0 ? void 0 : pointAward.toLocation) === null || _d === void 0 ? void 0 : _d.typeOf;
|
|
594
|
-
if (typeof ((_e = pointAward === null || pointAward === void 0 ? void 0 : pointAward.amount) === null || _e === void 0 ? void 0 : _e.value) === 'number'
|
|
595
|
-
&& typeof pointAwardToLocationIdentifier === 'string'
|
|
596
|
-
&& typeof pointAwardToLocationTypeOf === 'string') {
|
|
597
|
-
const fromLocation = {
|
|
598
|
-
typeOf: (typeof ((_f = params.reservation.reservedTicket.issuedBy) === null || _f === void 0 ? void 0 : _f.typeOf) === 'string')
|
|
599
|
-
? params.reservation.reservedTicket.issuedBy.typeOf
|
|
600
|
-
: params.transaction.typeOf,
|
|
601
|
-
name: (typeof ((_g = params.reservation.reservedTicket.issuedBy) === null || _g === void 0 ? void 0 : _g.name) === 'string')
|
|
602
|
-
? params.reservation.reservedTicket.issuedBy.name
|
|
603
|
-
: params.transaction.id
|
|
604
|
-
};
|
|
605
|
-
const toLocation = {
|
|
606
|
-
identifier: pointAwardToLocationIdentifier,
|
|
607
|
-
typeOf: factory.permit.PermitType.Permit,
|
|
608
|
-
issuedThrough: { id: String((_j = (_h = pointAward.toLocation) === null || _h === void 0 ? void 0 : _h.issuedThrough) === null || _j === void 0 ? void 0 : _j.id) }
|
|
609
|
-
};
|
|
610
|
-
const recipient = {
|
|
611
|
-
typeOf: (typeof ((_k = params.underName) === null || _k === void 0 ? void 0 : _k.typeOf) === 'string')
|
|
612
|
-
? (_l = params.underName) === null || _l === void 0 ? void 0 : _l.typeOf
|
|
613
|
-
: factory.personType.Person,
|
|
614
|
-
id: (typeof ((_m = params.underName) === null || _m === void 0 ? void 0 : _m.id) === 'string')
|
|
615
|
-
? (_o = params.underName) === null || _o === void 0 ? void 0 : _o.id
|
|
616
|
-
: '',
|
|
617
|
-
name: String((_p = params.underName) === null || _p === void 0 ? void 0 : _p.name)
|
|
618
|
-
};
|
|
619
|
-
moneyTransfer.push(Object.assign(Object.assign({ project: params.transaction.project, typeOf: factory.actionType.MoneyTransfer, agent: params.transaction.project, recipient, object: {
|
|
620
|
-
typeOf: factory.account.transactionType.Deposit
|
|
621
|
-
}, purpose: Object.assign({ typeOf: params.transaction.typeOf, id: params.transaction.id }, (typeof ((_q = pointAward.purpose) === null || _q === void 0 ? void 0 : _q.identifier) === 'string') ? { identifier: pointAward.purpose.identifier } : undefined), amount: {
|
|
622
|
-
typeOf: 'MonetaryAmount',
|
|
623
|
-
value: (_r = pointAward.amount) === null || _r === void 0 ? void 0 : _r.value,
|
|
624
|
-
currency: (_s = pointAward.amount) === null || _s === void 0 ? void 0 : _s.currency
|
|
625
|
-
}, fromLocation: fromLocation, toLocation: toLocation }, (typeof pointAward.description === 'string') ? { description: pointAward.description } : undefined), (pointAward.recipient !== undefined) ? { recipient: pointAward.recipient } : undefined));
|
|
626
|
-
}
|
|
627
|
-
return moneyTransfer;
|
|
628
|
-
}
|
|
629
|
-
exports.createMoneyTransferActions = createMoneyTransferActions;
|
|
630
|
-
function createCancelPendingReservationAction(params) {
|
|
631
|
-
const transaction = params.transaction;
|
|
632
|
-
const pendingReservations = (Array.isArray(transaction.object.subReservation)) ? transaction.object.subReservation : [];
|
|
633
|
-
let cancelActionAttributes;
|
|
634
|
-
if (pendingReservations.length > 0) {
|
|
635
|
-
const reservationFor = transaction.object.reservationFor;
|
|
636
|
-
if (reservationFor === undefined) {
|
|
637
|
-
throw new factory.errors.NotFound('transaction.object.reservationFor');
|
|
638
|
-
}
|
|
639
|
-
// ReservationPackageに対応(2022-12-23~)
|
|
640
|
-
const reservationPackage = {
|
|
641
|
-
typeOf: factory.reservationType.ReservationPackage,
|
|
642
|
-
reservationNumber: transaction.transactionNumber,
|
|
643
|
-
reservationFor: { typeOf: reservationFor.typeOf, id: String(reservationFor.id) },
|
|
644
|
-
reservationStatus: (typeof params.transaction.object.reservationStatus === 'string')
|
|
645
|
-
? params.transaction.object.reservationStatus
|
|
646
|
-
: factory.reservationStatusType.ReservationPending
|
|
647
|
-
};
|
|
648
|
-
cancelActionAttributes = {
|
|
649
|
-
project: transaction.project,
|
|
650
|
-
typeOf: factory.actionType.CancelAction,
|
|
651
|
-
purpose: { typeOf: transaction.typeOf, id: transaction.id },
|
|
652
|
-
agent: transaction.project,
|
|
653
|
-
object: reservationPackage
|
|
654
|
-
};
|
|
655
|
-
}
|
|
656
|
-
return cancelActionAttributes;
|
|
657
|
-
}
|
|
658
|
-
exports.createCancelPendingReservationAction = createCancelPendingReservationAction;
|
|
@@ -28,7 +28,6 @@ export interface IStartOperationRepos {
|
|
|
28
28
|
productOffer: ProductOfferRepo;
|
|
29
29
|
priceSpecification: PriceSpecificationRepo;
|
|
30
30
|
project: ProjectRepo;
|
|
31
|
-
reservation: ReservationRepo;
|
|
32
31
|
seat: SeatRepo;
|
|
33
32
|
task: TaskRepo;
|
|
34
33
|
assetTransaction: AssetTransactionRepo;
|
|
@@ -45,12 +44,10 @@ export interface IAddReservationsOperationRepos {
|
|
|
45
44
|
product: ProductRepo;
|
|
46
45
|
productOffer: ProductOfferRepo;
|
|
47
46
|
priceSpecification: PriceSpecificationRepo;
|
|
48
|
-
reservation: ReservationRepo;
|
|
49
47
|
seat: SeatRepo;
|
|
50
48
|
task: TaskRepo;
|
|
51
49
|
assetTransaction: AssetTransactionRepo;
|
|
52
50
|
}
|
|
53
|
-
export type IAddReservationsOperation<T> = (repos: IAddReservationsOperationRepos) => Promise<T>;
|
|
54
51
|
export type ICancelOperation<T> = (repos: {
|
|
55
52
|
action: ActionRepo;
|
|
56
53
|
stockHolder: StockHolderRepo;
|
|
@@ -105,7 +102,6 @@ type IStartParams = factory.assetTransaction.reserve.IStartParamsWithoutDetail &
|
|
|
105
102
|
* 取引開始
|
|
106
103
|
*/
|
|
107
104
|
export declare function start(params: IStartParams & {
|
|
108
|
-
useHoldStockByTransactionNumber: boolean;
|
|
109
105
|
stockHoldUntilDaysAfterEventEnd: number;
|
|
110
106
|
}): IStartOperation<{
|
|
111
107
|
transaction: Pick<factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>, 'id'>;
|
|
@@ -31,10 +31,9 @@ function start(params) {
|
|
|
31
31
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
32
32
|
var _a, _b, _c, _d;
|
|
33
33
|
const now = new Date();
|
|
34
|
-
// 自動発行廃止(2022-05-17~)
|
|
35
34
|
const reservationNumber = params.transactionNumber;
|
|
36
35
|
if (typeof reservationNumber !== 'string' || reservationNumber.length === 0) {
|
|
37
|
-
throw new factory.errors.ArgumentNull('transactionNumber');
|
|
36
|
+
throw new factory.errors.ArgumentNull('transactionNumber'); // 自動発行廃止(2022-05-17~)
|
|
38
37
|
}
|
|
39
38
|
// eventをfix
|
|
40
39
|
const reservationForId = (_a = params.object.reservationFor) === null || _a === void 0 ? void 0 : _a.id;
|
|
@@ -59,18 +58,10 @@ function start(params) {
|
|
|
59
58
|
});
|
|
60
59
|
const startParams = (0, factory_1.createStartParams)(Object.assign(Object.assign({}, params), { provider: { id: event.organizer.id }, reservationNumber,
|
|
61
60
|
event }));
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
transaction
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
throw error;
|
|
69
|
-
}
|
|
70
|
-
let objectSubReservations = [];
|
|
71
|
-
const addReservationsResult = yield addReservations({
|
|
72
|
-
// id: transaction.id,
|
|
73
|
-
transaction,
|
|
61
|
+
// objectに必要な情報をそろえる
|
|
62
|
+
const { acceptedOffers4transactionObject, objectSubReservations } = yield createObjectAttributes({
|
|
63
|
+
reservationFor: startParams.object.reservationFor,
|
|
64
|
+
transaction: { transactionNumber: reservationNumber },
|
|
74
65
|
now,
|
|
75
66
|
object: params.object,
|
|
76
67
|
event,
|
|
@@ -80,10 +71,22 @@ function start(params) {
|
|
|
80
71
|
validateAppliesToMovieTicket: params.validateAppliesToMovieTicket,
|
|
81
72
|
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd
|
|
82
73
|
})(repos);
|
|
74
|
+
// reimplement using startWithMinimalResponse(2024-07-02~)
|
|
75
|
+
// const transaction = await repos.assetTransaction.start<factory.assetTransactionType.Reserve>(startParams);
|
|
76
|
+
const { id } = yield repos.assetTransaction.startWithMinimalResponse(startParams);
|
|
77
|
+
// let objectSubReservations: IObjectSubReservation[] = [];
|
|
78
|
+
// const addReservationsResult = await addReservations({
|
|
79
|
+
yield addReservations({
|
|
80
|
+
reservationFor: startParams.object.reservationFor,
|
|
81
|
+
transaction: { id, transactionNumber: reservationNumber },
|
|
82
|
+
event,
|
|
83
|
+
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd,
|
|
84
|
+
acceptedOffers4transactionObject, objectSubReservations
|
|
85
|
+
})(repos);
|
|
83
86
|
// transaction = addReservationsResult.transaction;
|
|
84
|
-
objectSubReservations = addReservationsResult.objectSubReservations;
|
|
87
|
+
// objectSubReservations = addReservationsResult.objectSubReservations;
|
|
85
88
|
return {
|
|
86
|
-
transaction: { id
|
|
89
|
+
transaction: { id },
|
|
87
90
|
objectSubReservations,
|
|
88
91
|
// issuedThrough: addReservationsResult.issuedThrough
|
|
89
92
|
issuedThrough: startParams.object.issuedThrough
|
|
@@ -91,19 +94,12 @@ function start(params) {
|
|
|
91
94
|
});
|
|
92
95
|
}
|
|
93
96
|
exports.start = start;
|
|
94
|
-
|
|
95
|
-
* 予約追加
|
|
96
|
-
*/
|
|
97
|
-
function addReservations(params) {
|
|
98
|
-
// tslint:disable-next-line:max-func-body-length
|
|
97
|
+
function createObjectAttributes(params) {
|
|
99
98
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
100
99
|
var _a;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const now = params.now;
|
|
104
|
-
const transaction = params.transaction;
|
|
100
|
+
const { event, now } = params;
|
|
101
|
+
const reservationNumber = params.transaction.transactionNumber;
|
|
105
102
|
const acceptedOffers = (Array.isArray(params.object.acceptedOffer)) ? params.object.acceptedOffer : [];
|
|
106
|
-
const event = params.event;
|
|
107
103
|
if (event.typeOf !== factory.eventType.ScreeningEvent && event.typeOf !== factory.eventType.Event) {
|
|
108
104
|
throw new factory.errors.Argument('object.reservationFor.id', `invalid event type ${event.typeOf}`);
|
|
109
105
|
}
|
|
@@ -137,33 +133,34 @@ function addReservations(params) {
|
|
|
137
133
|
availableOffers = searchEventTicketOffersResult.unitPriceOffers;
|
|
138
134
|
}
|
|
139
135
|
const availableSeatOffers = yield searchAvailableSeatOffers({ acceptedOffers, event })(repos);
|
|
140
|
-
|
|
141
|
-
const { acceptedOffers4transactionObject, objectSubReservations } = yield createAcceptedOffers4transactionObject({
|
|
136
|
+
return createAcceptedOffers4transactionObject({
|
|
142
137
|
acceptedOffers, ticketOffers, availableOffers, now,
|
|
143
|
-
event, availableSeatOffers,
|
|
138
|
+
event, availableSeatOffers, reservationNumber,
|
|
144
139
|
availableAtOrFrom: params.availableAtOrFrom,
|
|
145
140
|
validateAppliesToMovieTicket: params.validateAppliesToMovieTicket
|
|
146
141
|
})(repos);
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* 予約追加
|
|
146
|
+
*/
|
|
147
|
+
function addReservations(params) {
|
|
148
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
const reservationNumber = params.transaction.transactionNumber;
|
|
150
|
+
const { event, reservationFor, acceptedOffers4transactionObject, objectSubReservations } = params;
|
|
154
151
|
// 取引に予約追加
|
|
155
152
|
let lockedOfferRateLimitKeys = [];
|
|
156
153
|
try {
|
|
157
154
|
lockedOfferRateLimitKeys = yield processLockOfferRateLimit({
|
|
158
155
|
reservations: objectSubReservations,
|
|
159
156
|
reservationFor,
|
|
160
|
-
reservationNumber
|
|
157
|
+
reservationNumber
|
|
161
158
|
})(repos);
|
|
162
159
|
// 上書きの必要なし(2024-07-01~)
|
|
163
160
|
// transaction = await repos.assetTransaction.addReservations({
|
|
164
161
|
yield repos.assetTransaction.addReservations({
|
|
165
162
|
typeOf: factory.assetTransactionType.Reserve,
|
|
166
|
-
id: transaction.id,
|
|
163
|
+
id: params.transaction.id,
|
|
167
164
|
object: {
|
|
168
165
|
acceptedOffer: acceptedOffers4transactionObject,
|
|
169
166
|
// issuedThroughを追加(2023-06-05~)
|
|
@@ -178,7 +175,7 @@ function addReservations(params) {
|
|
|
178
175
|
yield Promise.all(objectSubReservations.map((reservation) => __awaiter(this, void 0, void 0, function* () {
|
|
179
176
|
yield (0, cancelReservation_1.processUnlockOfferRateLimit)({
|
|
180
177
|
reservation: {
|
|
181
|
-
reservationNumber
|
|
178
|
+
reservationNumber,
|
|
182
179
|
reservedTicket: reservation.reservedTicket
|
|
183
180
|
},
|
|
184
181
|
reservationFor
|
|
@@ -193,15 +190,15 @@ function addReservations(params) {
|
|
|
193
190
|
event: event,
|
|
194
191
|
reservations: objectSubReservations,
|
|
195
192
|
transaction: {
|
|
196
|
-
id: transaction.id,
|
|
197
|
-
transactionNumber: transaction.transactionNumber
|
|
198
|
-
object: { useHoldStockByTransactionNumber: transaction.object.useHoldStockByTransactionNumber === true }
|
|
193
|
+
id: params.transaction.id,
|
|
194
|
+
transactionNumber: params.transaction.transactionNumber
|
|
195
|
+
// object: { useHoldStockByTransactionNumber: transaction.object.useHoldStockByTransactionNumber === true }
|
|
199
196
|
},
|
|
200
197
|
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd
|
|
201
198
|
})(repos);
|
|
202
199
|
// ストックホルダー処理(stockHolderで残席数を集計しているので必要)
|
|
203
|
-
yield onReservationsCreated({ event, transaction: { transactionNumber:
|
|
204
|
-
return { objectSubReservations };
|
|
200
|
+
yield onReservationsCreated({ event, transaction: { transactionNumber: reservationNumber } })(repos);
|
|
201
|
+
// return { objectSubReservations };
|
|
205
202
|
});
|
|
206
203
|
}
|
|
207
204
|
/**
|
|
@@ -313,7 +310,8 @@ function validateEvent(params) {
|
|
|
313
310
|
function createAcceptedOffers4transactionObject(params) {
|
|
314
311
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
315
312
|
// 予約番号
|
|
316
|
-
const reservationNumber = params.transaction.object.reservationNumber;
|
|
313
|
+
// const reservationNumber = params.transaction.object.reservationNumber;
|
|
314
|
+
const reservationNumber = params.reservationNumber;
|
|
317
315
|
if (typeof reservationNumber !== 'string') {
|
|
318
316
|
throw new factory.errors.Internal('Reservation number undefined');
|
|
319
317
|
}
|
|
@@ -328,12 +326,12 @@ function createAcceptedOffers4transactionObject(params) {
|
|
|
328
326
|
}
|
|
329
327
|
const reservationId = `${reservationNumber}-${reservationIndex}`;
|
|
330
328
|
// 入金先検証
|
|
331
|
-
yield validatePointAward({ project: { id: params.
|
|
329
|
+
yield validatePointAward({ project: { id: params.event.project.id }, acceptedOffer })(repos);
|
|
332
330
|
const pointAward = (0, factory_1.createPointAward)({
|
|
331
|
+
project: { id: params.event.project.id },
|
|
333
332
|
acceptedOffer: acceptedOffer,
|
|
334
333
|
offer: ticketOffer,
|
|
335
|
-
reservation: { id: reservationId }
|
|
336
|
-
assetTransaction: params.transaction
|
|
334
|
+
reservation: { id: reservationId }
|
|
337
335
|
});
|
|
338
336
|
// acceptedOffers4transactionObjectには必要な情報のみ保管する
|
|
339
337
|
acceptedOffers4transactionObject.push({
|
|
@@ -349,7 +347,8 @@ function createReservations4transactionObject(params) {
|
|
|
349
347
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
350
348
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
351
349
|
// 予約番号
|
|
352
|
-
const reservationNumber = params.transaction.object.reservationNumber;
|
|
350
|
+
// const reservationNumber = params.transaction.object.reservationNumber;
|
|
351
|
+
const reservationNumber = params.reservationNumber;
|
|
353
352
|
if (typeof reservationNumber !== 'string') {
|
|
354
353
|
throw new factory.errors.Internal('Reservation number undefined');
|
|
355
354
|
}
|
|
@@ -377,7 +376,7 @@ function createReservations4transactionObject(params) {
|
|
|
377
376
|
});
|
|
378
377
|
const programMembershipUsed = yield validateProgramMembershipUsed({
|
|
379
378
|
acceptedOffer,
|
|
380
|
-
project: params.
|
|
379
|
+
project: { id: params.event.project.id }
|
|
381
380
|
})(repos);
|
|
382
381
|
// チケット作成
|
|
383
382
|
const reservedTicket = (0, factory_1.createReservedTicket)({
|
|
@@ -388,8 +387,7 @@ function createReservations4transactionObject(params) {
|
|
|
388
387
|
reservationFor: { id: params.event.id },
|
|
389
388
|
reservedSeatsOnly,
|
|
390
389
|
availableSeatOffers: params.availableSeatOffers,
|
|
391
|
-
ticketOffer: ticketOffer
|
|
392
|
-
transaction: params.transaction
|
|
390
|
+
ticketOffer: ticketOffer
|
|
393
391
|
});
|
|
394
392
|
const additionalTicketText = (0, factory_1.createAdditionalTicketText)({ acceptedOffer, reservedTicket });
|
|
395
393
|
const additionalProperty = (0, factory_1.createAdditionalProperty)({ acceptedOffer });
|
|
@@ -422,7 +420,7 @@ function createReservations4transactionObject(params) {
|
|
|
422
420
|
// アドオンオファー検索(2023-03-02~)
|
|
423
421
|
availableAddOns = yield searchAvailableAddOns({
|
|
424
422
|
ids: acceptedAddOnsParams.map((acceptedAddOn) => String(acceptedAddOn.id)),
|
|
425
|
-
project: { id: params.
|
|
423
|
+
project: { id: params.event.project.id },
|
|
426
424
|
ticketOffer,
|
|
427
425
|
availableAtOrFrom: params.availableAtOrFrom
|
|
428
426
|
})(repos);
|
|
@@ -474,12 +472,8 @@ function createReservations4transactionObject(params) {
|
|
|
474
472
|
}
|
|
475
473
|
const subReservation = (_j = (_h = acceptedOffer.itemOffered) === null || _h === void 0 ? void 0 : _h.serviceOutput) === null || _j === void 0 ? void 0 : _j.subReservation;
|
|
476
474
|
reservations.push((0, factory_1.createReservation)({
|
|
477
|
-
project: params.
|
|
475
|
+
project: { id: params.event.project.id, typeOf: factory.organizationType.Project },
|
|
478
476
|
id: reservationId,
|
|
479
|
-
// reserveDate: params.now,
|
|
480
|
-
// agent: params.transaction.agent,
|
|
481
|
-
// broker: params.transaction.object.broker,
|
|
482
|
-
// reservationNumber: reservationNumber,
|
|
483
477
|
reservationFor: params.event,
|
|
484
478
|
reservedTicket: reservedTicket,
|
|
485
479
|
additionalProperty: additionalProperty,
|
|
@@ -775,7 +769,7 @@ function processLockOfferRateLimit(params) {
|
|
|
775
769
|
*/
|
|
776
770
|
function processLockSeats(params) {
|
|
777
771
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
778
|
-
var _a, _b, _c, _d
|
|
772
|
+
var _a, _b, _c, _d;
|
|
779
773
|
const offers = [];
|
|
780
774
|
params.reservations.forEach((r) => {
|
|
781
775
|
var _a, _b;
|
|
@@ -820,12 +814,13 @@ function processLockSeats(params) {
|
|
|
820
814
|
.add(params.stockHoldUntilDaysAfterEventEnd, 'days')
|
|
821
815
|
.toDate();
|
|
822
816
|
// holder:取引番号に対応(2023-06-05~)
|
|
823
|
-
let holder = params.transaction.id;
|
|
824
|
-
if (
|
|
825
|
-
|
|
826
|
-
}
|
|
827
|
-
const
|
|
828
|
-
const
|
|
817
|
+
// let holder: string = params.transaction.id;
|
|
818
|
+
// if (params.transaction.object?.useHoldStockByTransactionNumber === true) {
|
|
819
|
+
// holder = params.transaction.transactionNumber;
|
|
820
|
+
// }
|
|
821
|
+
const holder = params.transaction.transactionNumber; // fix as transactionNumber(2024-07-02~)
|
|
822
|
+
const hasTicketedSeat = ((_c = (_b = (_a = params.event.offers.itemOffered.serviceOutput) === null || _a === void 0 ? void 0 : _a.reservedTicket) === null || _b === void 0 ? void 0 : _b.ticketedSeat) === null || _c === void 0 ? void 0 : _c.typeOf) === factory.placeType.Seat;
|
|
823
|
+
const maximumAttendeeCapacity4event = (_d = params.event.location) === null || _d === void 0 ? void 0 : _d.maximumAttendeeCapacity;
|
|
829
824
|
if (typeof maximumAttendeeCapacity4event === 'number') {
|
|
830
825
|
yield repos.stockHolder.lockIfNotLimitExceeded({
|
|
831
826
|
project: { id: params.event.project.id },
|
|
@@ -15,7 +15,6 @@ import type { MongoRepository as ProductRepo } from '../../../repo/product';
|
|
|
15
15
|
import type { MongoRepository as ProductOfferRepo } from '../../../repo/productOffer';
|
|
16
16
|
import type { MongoRepository as ProjectRepo } from '../../../repo/project';
|
|
17
17
|
import type { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
|
|
18
|
-
import type { MongoRepository as ReservationRepo } from '../../../repo/reservation';
|
|
19
18
|
import type { StockHolderRepository as StockHolderRepo } from '../../../repo/stockHolder';
|
|
20
19
|
import type { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
21
20
|
import type { TicketRepo } from '../../../repo/ticket';
|
|
@@ -38,7 +37,6 @@ interface IAuthorizeRepos {
|
|
|
38
37
|
product: ProductRepo;
|
|
39
38
|
productOffer: ProductOfferRepo;
|
|
40
39
|
project: ProjectRepo;
|
|
41
|
-
reservation: ReservationRepo;
|
|
42
40
|
seat: SeatRepo;
|
|
43
41
|
task: TaskRepo;
|
|
44
42
|
ticket: TicketRepo;
|
|
@@ -71,7 +69,6 @@ declare function authorize(params: {
|
|
|
71
69
|
*/
|
|
72
70
|
id: string;
|
|
73
71
|
};
|
|
74
|
-
useHoldStockByTransactionNumber: boolean;
|
|
75
72
|
stockHoldUntilDaysAfterEventEnd: number;
|
|
76
73
|
/**
|
|
77
74
|
* オファーID指定なしに座席をおさえる場合true
|
|
@@ -62,12 +62,12 @@ function authorize(params) {
|
|
|
62
62
|
// case factory.service.webAPI.Identifier.COA:
|
|
63
63
|
// break;
|
|
64
64
|
case factory.service.webAPI.Identifier.Chevre:
|
|
65
|
-
const processStartReserveResult = yield (0, processStartReserve4chevre_1.processStartReserve4chevre)(Object.assign({
|
|
66
|
-
// action,
|
|
67
|
-
acceptedOffer: acceptedOffers, event,
|
|
65
|
+
const processStartReserveResult = yield (0, processStartReserve4chevre_1.processStartReserve4chevre)(Object.assign({ acceptedOffer: acceptedOffers, event,
|
|
68
66
|
transactionNumber,
|
|
69
67
|
transaction, availableAtOrFrom: { id: params.store.id }, ticketOffers,
|
|
70
|
-
unitPriceOffers, validateEvent: params.validateEvent === true, validateEventOfferPeriod: params.validateEventOfferPeriod === true,
|
|
68
|
+
unitPriceOffers, validateEvent: params.validateEvent === true, validateEventOfferPeriod: params.validateEventOfferPeriod === true,
|
|
69
|
+
// useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber, // discontinue(2024-07-02~)
|
|
70
|
+
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd }, (typeof ((_a = params.object.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.object.broker } : undefined))(repos);
|
|
71
71
|
acceptedOffers4result = processStartReserveResult.acceptedOffers4result;
|
|
72
72
|
// add orderInTransaction(2024-01-15~)
|
|
73
73
|
if (!noOfferSpecified) {
|
|
@@ -13,7 +13,6 @@ import type { MongoRepository as ProductRepo } from '../../../repo/product';
|
|
|
13
13
|
import type { MongoRepository as ProductOfferRepo } from '../../../repo/productOffer';
|
|
14
14
|
import type { MongoRepository as ProjectRepo } from '../../../repo/project';
|
|
15
15
|
import type { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/offer';
|
|
16
|
-
import type { MongoRepository as ReservationRepo } from '../../../repo/reservation';
|
|
17
16
|
import type { StockHolderRepository as StockHolderRepo } from '../../../repo/stockHolder';
|
|
18
17
|
import type { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
19
18
|
import type { TicketRepo } from '../../../repo/ticket';
|
|
@@ -30,7 +29,6 @@ declare function processStartReserve4chevre(params: {
|
|
|
30
29
|
unitPriceOffers: factory.unitPriceOffer.IUnitPriceOffer[];
|
|
31
30
|
validateEventOfferPeriod: boolean;
|
|
32
31
|
validateEvent: boolean;
|
|
33
|
-
useHoldStockByTransactionNumber: boolean;
|
|
34
32
|
stockHoldUntilDaysAfterEventEnd: number;
|
|
35
33
|
}): (repos: {
|
|
36
34
|
action: ActionRepo;
|
|
@@ -46,7 +44,6 @@ declare function processStartReserve4chevre(params: {
|
|
|
46
44
|
productOffer: ProductOfferRepo;
|
|
47
45
|
priceSpecification: PriceSpecificationRepo;
|
|
48
46
|
project: ProjectRepo;
|
|
49
|
-
reservation: ReservationRepo;
|
|
50
47
|
seat: SeatRepo;
|
|
51
48
|
task: TaskRepo;
|
|
52
49
|
ticket: TicketRepo;
|
|
@@ -28,7 +28,9 @@ function processStartReserve4chevre(params) {
|
|
|
28
28
|
transactionNumber }, (params.broker !== undefined) ? { broker: params.broker } : undefined));
|
|
29
29
|
const startParamObject = yield validateObjectWithoutDetail(startParams)(repos);
|
|
30
30
|
// 予約取引開始
|
|
31
|
-
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,
|
|
31
|
+
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,
|
|
32
|
+
// useHoldStockByTransactionNumber: params.useHoldStockByTransactionNumber, // discontinue(2024-07-02~)
|
|
33
|
+
stockHoldUntilDaysAfterEventEnd: params.stockHoldUntilDaysAfterEventEnd }))(repos);
|
|
32
34
|
// responseBody = startReserveTransactionResult.transaction; // responseBody参照必要なし(2024-07-01~)
|
|
33
35
|
// 予約取引からオファー情報を生成する
|
|
34
36
|
acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
|
|
@@ -15,7 +15,7 @@ exports.processUnlockOfferRateLimit = exports.cancelReservation = exports.cancel
|
|
|
15
15
|
*/
|
|
16
16
|
const moment = require("moment");
|
|
17
17
|
const factory = require("../../factory");
|
|
18
|
-
const factory_1 = require("
|
|
18
|
+
const factory_1 = require("./factory");
|
|
19
19
|
const onReservationCanceled_1 = require("./potentialActions/onReservationCanceled");
|
|
20
20
|
/**
|
|
21
21
|
* 進行中の予約をキャンセルする
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.reserveTransaction2action = exports.confirmReservation = void 0;
|
|
13
13
|
const createDebug = require("debug");
|
|
14
14
|
const factory = require("../../factory");
|
|
15
|
-
const factory_1 = require("
|
|
15
|
+
const factory_1 = require("./factory");
|
|
16
16
|
const onReservationConfirmed_1 = require("./potentialActions/onReservationConfirmed");
|
|
17
17
|
const debug = createDebug('chevre-domain:service:reserve:confirmReservation');
|
|
18
18
|
/**
|
|
@@ -64,4 +64,19 @@ export interface IPotentialInformReservationAction extends factory.task.triggerW
|
|
|
64
64
|
object: IInformObject;
|
|
65
65
|
}
|
|
66
66
|
export declare const NUM_TRY_INFORM_RESERVATION: number;
|
|
67
|
+
export declare function createMoneyTransferActions(params: {
|
|
68
|
+
acceptedOffer?: factory.assetTransaction.reserve.IAcceptedOffer4object;
|
|
69
|
+
reservation: Pick<factory.assetTransaction.reserve.IObjectSubReservation, 'reservedTicket'>;
|
|
70
|
+
transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>;
|
|
71
|
+
underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
|
|
72
|
+
}): import("@chevre/factory/lib/action/transfer/moneyTransfer").IAttributes[];
|
|
73
|
+
export interface IPotentialCancelAction extends factory.action.cancel.reservation.IAttributes {
|
|
74
|
+
purpose: {
|
|
75
|
+
id: string;
|
|
76
|
+
typeOf: factory.assetTransactionType.Reserve;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export declare function createCancelPendingReservationAction(params: {
|
|
80
|
+
transaction: factory.assetTransaction.ITransaction<factory.assetTransactionType.Reserve>;
|
|
81
|
+
}): IPotentialCancelAction | undefined;
|
|
67
82
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NUM_TRY_INFORM_RESERVATION = exports.optimizeUnderName4inform = void 0;
|
|
3
|
+
exports.createCancelPendingReservationAction = exports.createMoneyTransferActions = exports.NUM_TRY_INFORM_RESERVATION = exports.optimizeUnderName4inform = void 0;
|
|
4
|
+
const factory = require("../../factory");
|
|
4
5
|
function optimizeUnderName4inform(params) {
|
|
5
6
|
// ReservationPackage通知アクションのobject.underNameを最小化(2024-03-19~)
|
|
6
7
|
// ? {
|
|
@@ -17,3 +18,75 @@ function optimizeUnderName4inform(params) {
|
|
|
17
18
|
}
|
|
18
19
|
exports.optimizeUnderName4inform = optimizeUnderName4inform;
|
|
19
20
|
exports.NUM_TRY_INFORM_RESERVATION = 10;
|
|
21
|
+
function createMoneyTransferActions(params) {
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
23
|
+
const pointAward = (_b = (_a = params.acceptedOffer) === null || _a === void 0 ? void 0 : _a.itemOffered) === null || _b === void 0 ? void 0 : _b.pointAward;
|
|
24
|
+
const moneyTransfer = [];
|
|
25
|
+
// ポイント特典があれば適用
|
|
26
|
+
const pointAwardToLocationIdentifier = (_c = pointAward === null || pointAward === void 0 ? void 0 : pointAward.toLocation) === null || _c === void 0 ? void 0 : _c.identifier;
|
|
27
|
+
const pointAwardToLocationTypeOf = (_d = pointAward === null || pointAward === void 0 ? void 0 : pointAward.toLocation) === null || _d === void 0 ? void 0 : _d.typeOf;
|
|
28
|
+
if (typeof ((_e = pointAward === null || pointAward === void 0 ? void 0 : pointAward.amount) === null || _e === void 0 ? void 0 : _e.value) === 'number'
|
|
29
|
+
&& typeof pointAwardToLocationIdentifier === 'string'
|
|
30
|
+
&& typeof pointAwardToLocationTypeOf === 'string') {
|
|
31
|
+
const fromLocation = {
|
|
32
|
+
typeOf: (typeof ((_f = params.reservation.reservedTicket.issuedBy) === null || _f === void 0 ? void 0 : _f.typeOf) === 'string')
|
|
33
|
+
? params.reservation.reservedTicket.issuedBy.typeOf
|
|
34
|
+
: params.transaction.typeOf,
|
|
35
|
+
name: (typeof ((_g = params.reservation.reservedTicket.issuedBy) === null || _g === void 0 ? void 0 : _g.name) === 'string')
|
|
36
|
+
? params.reservation.reservedTicket.issuedBy.name
|
|
37
|
+
: params.transaction.id
|
|
38
|
+
};
|
|
39
|
+
const toLocation = {
|
|
40
|
+
identifier: pointAwardToLocationIdentifier,
|
|
41
|
+
typeOf: factory.permit.PermitType.Permit,
|
|
42
|
+
issuedThrough: { id: String((_j = (_h = pointAward.toLocation) === null || _h === void 0 ? void 0 : _h.issuedThrough) === null || _j === void 0 ? void 0 : _j.id) }
|
|
43
|
+
};
|
|
44
|
+
const recipient = {
|
|
45
|
+
typeOf: (typeof ((_k = params.underName) === null || _k === void 0 ? void 0 : _k.typeOf) === 'string')
|
|
46
|
+
? (_l = params.underName) === null || _l === void 0 ? void 0 : _l.typeOf
|
|
47
|
+
: factory.personType.Person,
|
|
48
|
+
id: (typeof ((_m = params.underName) === null || _m === void 0 ? void 0 : _m.id) === 'string')
|
|
49
|
+
? (_o = params.underName) === null || _o === void 0 ? void 0 : _o.id
|
|
50
|
+
: '',
|
|
51
|
+
name: String((_p = params.underName) === null || _p === void 0 ? void 0 : _p.name)
|
|
52
|
+
};
|
|
53
|
+
moneyTransfer.push(Object.assign(Object.assign({ project: params.transaction.project, typeOf: factory.actionType.MoneyTransfer, agent: params.transaction.project, recipient, object: {
|
|
54
|
+
typeOf: factory.account.transactionType.Deposit
|
|
55
|
+
}, purpose: Object.assign({ typeOf: params.transaction.typeOf, id: params.transaction.id }, (typeof ((_q = pointAward.purpose) === null || _q === void 0 ? void 0 : _q.identifier) === 'string') ? { identifier: pointAward.purpose.identifier } : undefined), amount: {
|
|
56
|
+
typeOf: 'MonetaryAmount',
|
|
57
|
+
value: (_r = pointAward.amount) === null || _r === void 0 ? void 0 : _r.value,
|
|
58
|
+
currency: (_s = pointAward.amount) === null || _s === void 0 ? void 0 : _s.currency
|
|
59
|
+
}, fromLocation: fromLocation, toLocation: toLocation }, (typeof pointAward.description === 'string') ? { description: pointAward.description } : undefined), (pointAward.recipient !== undefined) ? { recipient: pointAward.recipient } : undefined));
|
|
60
|
+
}
|
|
61
|
+
return moneyTransfer;
|
|
62
|
+
}
|
|
63
|
+
exports.createMoneyTransferActions = createMoneyTransferActions;
|
|
64
|
+
function createCancelPendingReservationAction(params) {
|
|
65
|
+
const transaction = params.transaction;
|
|
66
|
+
const pendingReservations = (Array.isArray(transaction.object.subReservation)) ? transaction.object.subReservation : [];
|
|
67
|
+
let cancelActionAttributes;
|
|
68
|
+
if (pendingReservations.length > 0) {
|
|
69
|
+
const reservationFor = transaction.object.reservationFor;
|
|
70
|
+
if (reservationFor === undefined) {
|
|
71
|
+
throw new factory.errors.NotFound('transaction.object.reservationFor');
|
|
72
|
+
}
|
|
73
|
+
// ReservationPackageに対応(2022-12-23~)
|
|
74
|
+
const reservationPackage = {
|
|
75
|
+
typeOf: factory.reservationType.ReservationPackage,
|
|
76
|
+
reservationNumber: transaction.transactionNumber,
|
|
77
|
+
reservationFor: { typeOf: reservationFor.typeOf, id: String(reservationFor.id) },
|
|
78
|
+
reservationStatus: (typeof params.transaction.object.reservationStatus === 'string')
|
|
79
|
+
? params.transaction.object.reservationStatus
|
|
80
|
+
: factory.reservationStatusType.ReservationPending
|
|
81
|
+
};
|
|
82
|
+
cancelActionAttributes = {
|
|
83
|
+
project: transaction.project,
|
|
84
|
+
typeOf: factory.actionType.CancelAction,
|
|
85
|
+
purpose: { typeOf: transaction.typeOf, id: transaction.id },
|
|
86
|
+
agent: transaction.project,
|
|
87
|
+
object: reservationPackage
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return cancelActionAttributes;
|
|
91
|
+
}
|
|
92
|
+
exports.createCancelPendingReservationAction = createCancelPendingReservationAction;
|
package/package.json
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/credential-providers": "3.433.0",
|
|
13
|
-
"@chevre/factory": "4.377.0-alpha.
|
|
14
|
-
"@cinerino/sdk": "8.
|
|
13
|
+
"@chevre/factory": "4.377.0-alpha.4",
|
|
14
|
+
"@cinerino/sdk": "8.1.0",
|
|
15
15
|
"@motionpicture/coa-service": "9.4.0",
|
|
16
16
|
"@motionpicture/gmo-service": "5.3.0",
|
|
17
17
|
"@sendgrid/mail": "6.4.0",
|
|
@@ -110,5 +110,5 @@
|
|
|
110
110
|
"postversion": "git push origin --tags",
|
|
111
111
|
"prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
|
|
112
112
|
},
|
|
113
|
-
"version": "21.37.0-alpha.
|
|
113
|
+
"version": "21.37.0-alpha.8"
|
|
114
114
|
}
|