@chevre/domain 21.29.0-alpha.2 → 21.29.0-alpha.4
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/service/assetTransaction/reserve/factory.js +3 -4
- package/lib/chevre/service/offer/event/factory.js +2 -2
- package/lib/chevre/service/offer/eventServiceByCOA/factory.js +1 -0
- package/lib/chevre/service/payment/any/factory.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/confirm.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +21 -3
- package/package.json +2 -2
|
@@ -65,7 +65,7 @@ function createPointAward(params) {
|
|
|
65
65
|
return pointAward;
|
|
66
66
|
}
|
|
67
67
|
exports.createPointAward = createPointAward;
|
|
68
|
-
function
|
|
68
|
+
function createTicketIdentifier(params) {
|
|
69
69
|
var _a;
|
|
70
70
|
return (typeof ((_a = params.ticketedSeat) === null || _a === void 0 ? void 0 : _a.seatNumber) === 'string')
|
|
71
71
|
? util.format('%s:%s:%s', params.reservationFor.id, params.ticketedSeat.seatSection, params.ticketedSeat.seatNumber)
|
|
@@ -127,13 +127,12 @@ function createReservedTicket(params) {
|
|
|
127
127
|
}
|
|
128
128
|
const ticketType = createTicketType({ availableOffer: params.availableOffer });
|
|
129
129
|
const issuedBy = createIssuedBy({ acceptedOffer: params.acceptedOffer, availableOffer: params.availableOffer });
|
|
130
|
-
const
|
|
130
|
+
const ticketIdentifier = createTicketIdentifier({
|
|
131
131
|
id: params.id,
|
|
132
132
|
reservationFor: params.reservationFor,
|
|
133
133
|
ticketedSeat
|
|
134
134
|
});
|
|
135
|
-
return Object.assign({ dateIssued: params.dateIssued, issuedBy,
|
|
136
|
-
ticketNumber,
|
|
135
|
+
return Object.assign({ dateIssued: params.dateIssued, identifier: ticketIdentifier, issuedBy,
|
|
137
136
|
ticketType, typeOf: 'Ticket' }, (ticketedSeat !== undefined) ? { ticketedSeat } : {});
|
|
138
137
|
}
|
|
139
138
|
exports.createReservedTicket = createReservedTicket;
|
|
@@ -215,8 +215,8 @@ function createReservation(params) {
|
|
|
215
215
|
name: itemOffered.reservedTicket.ticketType.name,
|
|
216
216
|
description: itemOffered.reservedTicket.ticketType.description,
|
|
217
217
|
additionalProperty: itemOffered.reservedTicket.ticketType.additionalProperty
|
|
218
|
-
} }, (typeof itemOffered.reservedTicket.
|
|
219
|
-
? {
|
|
218
|
+
} }, (typeof itemOffered.reservedTicket.identifier === 'string')
|
|
219
|
+
? { identifier: itemOffered.reservedTicket.identifier }
|
|
220
220
|
: undefined), (itemOffered.reservedTicket.ticketedSeat !== undefined)
|
|
221
221
|
? { ticketedSeat: itemOffered.reservedTicket.ticketedSeat }
|
|
222
222
|
: undefined);
|
|
@@ -66,14 +66,14 @@ function creatPayTransactionStartParams(params) {
|
|
|
66
66
|
exports.creatPayTransactionStartParams = creatPayTransactionStartParams;
|
|
67
67
|
function createMovieTicket(params) {
|
|
68
68
|
var _a;
|
|
69
|
-
const
|
|
69
|
+
const ticketIdentifier = util.format('%s:%s:%s', params.serviceOutput.reservationFor.id, params.serviceOutput.reservedTicket.ticketedSeat.seatSection, params.serviceOutput.reservedTicket.ticketedSeat.seatNumber);
|
|
70
70
|
const serviceOutput = {
|
|
71
71
|
reservationFor: {
|
|
72
72
|
typeOf: params.serviceOutput.reservationFor.typeOf,
|
|
73
73
|
id: params.serviceOutput.reservationFor.id
|
|
74
74
|
},
|
|
75
75
|
reservedTicket: {
|
|
76
|
-
|
|
76
|
+
identifier: ticketIdentifier,
|
|
77
77
|
ticketedSeat: {
|
|
78
78
|
typeOf: factory.placeType.Seat,
|
|
79
79
|
seatNumber: params.serviceOutput.reservedTicket.ticketedSeat.seatNumber,
|
|
@@ -260,7 +260,7 @@ function createResult(params) {
|
|
|
260
260
|
authorizeEventServiceOfferActions: params.authorizeEventServiceOfferActions
|
|
261
261
|
});
|
|
262
262
|
// 注文オファー検証
|
|
263
|
-
(0, validation_1.
|
|
263
|
+
(0, validation_1.validateAcceptedOffers)({
|
|
264
264
|
result: params.result,
|
|
265
265
|
acceptedOffers: params.acceptedOffers
|
|
266
266
|
});
|
package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js
CHANGED
|
@@ -195,8 +195,8 @@ function authorizeSeatReservationActions2requiredMovieTickets(params) {
|
|
|
195
195
|
serviceOutput: {
|
|
196
196
|
reservationFor: reservationFor4movieTicket,
|
|
197
197
|
reservedTicket: {
|
|
198
|
-
|
|
199
|
-
? offer.itemOffered.reservedTicket.
|
|
198
|
+
identifier: (typeof offer.itemOffered.reservedTicket.identifier === 'string')
|
|
199
|
+
? offer.itemOffered.reservedTicket.identifier
|
|
200
200
|
: offer.itemOffered.id,
|
|
201
201
|
ticketedSeat: ticketedSeat4MovieTicket
|
|
202
202
|
}
|
|
@@ -12,7 +12,7 @@ export type IOrderURLGenerator = (order: factory.order.IOrder) => string;
|
|
|
12
12
|
/**
|
|
13
13
|
* 注文オファー数検証
|
|
14
14
|
*/
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function validateAcceptedOffers(params: {
|
|
16
16
|
result: {
|
|
17
17
|
order: PlaceOrderFactory.IResultOrderParams;
|
|
18
18
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateEventOffers = exports.validatePaymentMethods = exports.validateOrderedItem = exports.
|
|
3
|
+
exports.validateEventOffers = exports.validatePaymentMethods = exports.validateOrderedItem = exports.validateAcceptedOffers = exports.validateTransaction = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* 注文取引バリデーション
|
|
6
6
|
*/
|
|
@@ -202,7 +202,7 @@ function validateMonetaryAmount(authorizePaymentActions, authorizeEventServiceOf
|
|
|
202
202
|
/**
|
|
203
203
|
* 注文オファー数検証
|
|
204
204
|
*/
|
|
205
|
-
function
|
|
205
|
+
function validateAcceptedOffers(params) {
|
|
206
206
|
var _a, _b, _c;
|
|
207
207
|
if (!Array.isArray(params.acceptedOffers)) {
|
|
208
208
|
throw new factory.errors.Argument('order.acceptedOffers', 'must be array');
|
|
@@ -241,8 +241,26 @@ function validateNumItems(params) {
|
|
|
241
241
|
throw new factory.errors.Argument('Transaction', (0, util_1.format)('Number of reservationNumbers must be less than or equal to %s', maxNumCOAReservationNumbers));
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
+
// チケット識別子ユニークネス検証(2024-04-15~)
|
|
245
|
+
let ticketNumbers = [];
|
|
246
|
+
params.acceptedOffers.forEach(({ itemOffered }) => {
|
|
247
|
+
if (itemOffered.typeOf === factory.reservationType.BusReservation
|
|
248
|
+
|| itemOffered.typeOf === factory.reservationType.EventReservation) {
|
|
249
|
+
if (typeof itemOffered.reservedTicket.ticketNumber === 'string') {
|
|
250
|
+
ticketNumbers.push(itemOffered.reservedTicket.ticketNumber);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
if (ticketNumbers.length > 0) {
|
|
255
|
+
ticketNumbers = [...new Set(ticketNumbers)];
|
|
256
|
+
debug('ticketNumbers unique?', ticketNumbers.join(' '), 'numAcceptedOffers:', numAcceptedOffers);
|
|
257
|
+
// チケット識別子が注文内ユニークなので、注文オファー数に一致するはず
|
|
258
|
+
if (ticketNumbers.length !== numAcceptedOffers) {
|
|
259
|
+
throw new factory.errors.Argument('Transaction', 'ticketNumbers must be unique');
|
|
260
|
+
}
|
|
261
|
+
}
|
|
244
262
|
}
|
|
245
|
-
exports.
|
|
263
|
+
exports.validateAcceptedOffers = validateAcceptedOffers;
|
|
246
264
|
function validateOrderedItem(params) {
|
|
247
265
|
var _a, _b;
|
|
248
266
|
if (!Array.isArray(params.order.orderedItem)) {
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/credential-providers": "3.433.0",
|
|
13
|
-
"@chevre/factory": "4.367.0-alpha.
|
|
13
|
+
"@chevre/factory": "4.367.0-alpha.4",
|
|
14
14
|
"@cinerino/sdk": "5.17.1",
|
|
15
15
|
"@motionpicture/coa-service": "9.4.0",
|
|
16
16
|
"@motionpicture/gmo-service": "5.3.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.29.0-alpha.
|
|
113
|
+
"version": "21.29.0-alpha.4"
|
|
114
114
|
}
|