@chevre/domain 21.26.0-alpha.7 → 21.26.0
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.
|
@@ -22,12 +22,12 @@ async function main() {
|
|
|
22
22
|
orderDate: {
|
|
23
23
|
$gte: moment()
|
|
24
24
|
// tslint:disable-next-line:no-magic-numbers
|
|
25
|
-
.add(-
|
|
26
|
-
.toDate(),
|
|
27
|
-
$lte: moment()
|
|
28
|
-
// tslint:disable-next-line:no-magic-numbers
|
|
29
|
-
.add(-275, 'days')
|
|
25
|
+
.add(-1, 'days')
|
|
30
26
|
.toDate()
|
|
27
|
+
// $lte: moment()
|
|
28
|
+
// // tslint:disable-next-line:no-magic-numbers
|
|
29
|
+
// .add(-360, 'days')
|
|
30
|
+
// .toDate()
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
{
|
|
@@ -13,6 +13,9 @@ export declare function createActionAttributes(params: {
|
|
|
13
13
|
transaction: factory.transaction.ITransaction<factory.transactionType.PlaceOrder>;
|
|
14
14
|
transactionNumber: string;
|
|
15
15
|
}): factory.action.authorize.offer.product.IAttributes;
|
|
16
|
+
export declare function acceptedOffers2amount(params: {
|
|
17
|
+
acceptedOffers: IResultAcceptedOffer;
|
|
18
|
+
}): number;
|
|
16
19
|
type IResultAcceptedOffer = factory.action.authorize.offer.product.IResultAcceptedOffer;
|
|
17
20
|
export declare function responseBody2resultAcceptedOffer(params: {
|
|
18
21
|
project: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createResult = exports.responseBody2resultAcceptedOffer = exports.createActionAttributes = exports.createRegisterServiceStartParams = void 0;
|
|
3
|
+
exports.createResult = exports.responseBody2resultAcceptedOffer = exports.acceptedOffers2amount = exports.createActionAttributes = exports.createRegisterServiceStartParams = void 0;
|
|
4
4
|
const moment = require("moment");
|
|
5
5
|
const factory = require("../../../factory");
|
|
6
6
|
function createRegisterServiceStartParams(params) {
|
|
@@ -78,6 +78,7 @@ function acceptedOffers2amount(params) {
|
|
|
78
78
|
return a + priceSpecification.priceComponent.reduce((a2, b2) => a2 + Number(b2.price), 0);
|
|
79
79
|
}, 0);
|
|
80
80
|
}
|
|
81
|
+
exports.acceptedOffers2amount = acceptedOffers2amount;
|
|
81
82
|
// tslint:disable-next-line:max-func-body-length
|
|
82
83
|
function responseBody2resultAcceptedOffer(params) {
|
|
83
84
|
let acceptedOffers = [];
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// import * as createDebug from 'debug';
|
|
3
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -11,11 +10,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
10
|
};
|
|
12
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
12
|
exports.validateOrder = void 0;
|
|
13
|
+
// import * as createDebug from 'debug';
|
|
14
|
+
const moment = require("moment");
|
|
14
15
|
const factory = require("../../factory");
|
|
15
16
|
const factory_1 = require("../offer/event/factory");
|
|
17
|
+
const factory_2 = require("../offer/product/factory");
|
|
16
18
|
const validateMovieTicket_1 = require("../transaction/placeOrderInProgress/validation/validateMovieTicket");
|
|
17
19
|
// const debug = createDebug('chevre-domain:service:validation');
|
|
18
|
-
// tslint:disable-next-line:max-func-body-length
|
|
19
20
|
function validateOrder(params) {
|
|
20
21
|
// tslint:disable-next-line:max-func-body-length
|
|
21
22
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -67,8 +68,13 @@ function validateOrder(params) {
|
|
|
67
68
|
throw new Error(`invalid acceptedOffer.priceSpecification.priceComponent [${typeof priceSpecification.priceComponent}]`);
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
// 旧メンバーシップ&ペイメントカードを例外として除外(互換性維持対応をしていないため)
|
|
72
|
+
if (moment(order.orderDate)
|
|
73
|
+
.isAfter(moment('2023-09-30T15:00:00Z'))
|
|
74
|
+
|| typeOf !== factory.permit.PermitType.Permit) {
|
|
75
|
+
if (typeof serialNumber !== 'string' || serialNumber.length === 0) {
|
|
76
|
+
throw new Error(`invalid acceptedOffer.serialNumber [${typeof serialNumber}]`);
|
|
77
|
+
}
|
|
72
78
|
}
|
|
73
79
|
});
|
|
74
80
|
let reservationForIds = [];
|
|
@@ -82,20 +88,27 @@ function validateOrder(params) {
|
|
|
82
88
|
});
|
|
83
89
|
reservationForIds = [...new Set(reservationForIds)];
|
|
84
90
|
itemOfferedTypeOfs = [...new Set(itemOfferedTypeOfs)];
|
|
85
|
-
// orderedItem検証
|
|
86
|
-
if (order.orderedItem.length !== reservationForIds.length) {
|
|
87
|
-
throw new Error(`invalid orderedItem.length:${order.orderedItem.length} [expected:${reservationForIds.length}]`);
|
|
88
|
-
}
|
|
89
91
|
// itemOffered.typeOf検証
|
|
90
|
-
if (
|
|
91
|
-
|
|
92
|
+
if (moment(order.orderDate)
|
|
93
|
+
.isAfter(moment('2024-02-01T15:00:00Z'))) {
|
|
94
|
+
if (itemOfferedTypeOfs.length !== 1) {
|
|
95
|
+
throw new Error(`itemOfferedTypeOfs.length must be 1 [${itemOfferedTypeOfs.length}]`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// 0対応(~2024-02-02)
|
|
100
|
+
if (itemOfferedTypeOfs.length > 1) {
|
|
101
|
+
throw new Error(`itemOfferedTypeOfs.length must be 0 or 1 [${itemOfferedTypeOfs.length}]`);
|
|
102
|
+
}
|
|
92
103
|
}
|
|
93
104
|
// price検証
|
|
94
105
|
let priceExpected = 0;
|
|
106
|
+
let numOrderedItemExpected = 0;
|
|
95
107
|
const itemOfferedTypeOf = itemOfferedTypeOfs[0];
|
|
96
108
|
switch (itemOfferedTypeOf) {
|
|
97
109
|
case factory.reservationType.BusReservation:
|
|
98
110
|
case factory.reservationType.EventReservation:
|
|
111
|
+
numOrderedItemExpected = reservationForIds.length;
|
|
99
112
|
const reservationAcceptedOffers = acceptedOffers;
|
|
100
113
|
const coaTicketInfoExists = reservationAcceptedOffers[0].itemOffered.reservedTicket.coaTicketInfo !== undefined;
|
|
101
114
|
if (coaTicketInfoExists) {
|
|
@@ -105,16 +118,17 @@ function validateOrder(params) {
|
|
|
105
118
|
if (coaTicketInfo === undefined) {
|
|
106
119
|
throw new Error(`itemOffered.reservedTicket.coaTicketInfo not found`);
|
|
107
120
|
}
|
|
108
|
-
if (typeof coaTicketInfo.
|
|
121
|
+
if (typeof coaTicketInfo.salePrice !== 'number'
|
|
109
122
|
|| typeof coaTicketInfo.addGlasses !== 'number'
|
|
110
123
|
|| typeof coaTicketInfo.spseatAdd1 !== 'number'
|
|
111
124
|
|| typeof coaTicketInfo.spseatAdd2 !== 'number') {
|
|
112
125
|
throw new Error(`invalid itemOffered.reservedTicket.coaTicketInfo`);
|
|
113
126
|
}
|
|
114
127
|
return a + [
|
|
115
|
-
coaTicketInfo.salesTicketSalePrice,
|
|
116
|
-
coaTicketInfo.addGlasses,
|
|
117
|
-
coaTicketInfo.spseatAdd1,
|
|
128
|
+
// <number>(<any>coaTicketInfo).salesTicketSalePrice,
|
|
129
|
+
// coaTicketInfo.addGlasses,
|
|
130
|
+
// coaTicketInfo.spseatAdd1,
|
|
131
|
+
coaTicketInfo.salePrice,
|
|
118
132
|
coaTicketInfo.spseatAdd2
|
|
119
133
|
].reduce((a2, b2) => a2 + b2, 0);
|
|
120
134
|
}, 0);
|
|
@@ -126,11 +140,23 @@ function validateOrder(params) {
|
|
|
126
140
|
}
|
|
127
141
|
break;
|
|
128
142
|
case factory.permit.PermitType.Permit:
|
|
143
|
+
numOrderedItemExpected = acceptedOffers.length;
|
|
144
|
+
const permitAcceptedOffers = acceptedOffers;
|
|
145
|
+
priceExpected = (0, factory_2.acceptedOffers2amount)({
|
|
146
|
+
acceptedOffers: permitAcceptedOffers
|
|
147
|
+
});
|
|
129
148
|
break;
|
|
130
149
|
case factory.actionType.MoneyTransfer:
|
|
131
150
|
break;
|
|
132
151
|
default:
|
|
133
|
-
|
|
152
|
+
if (moment(order.orderDate)
|
|
153
|
+
.isAfter(moment('2024-02-01T15:00:00Z'))) {
|
|
154
|
+
throw new Error(`invalid itemOfferedTypeOf [${itemOfferedTypeOf}]`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// orderedItem検証
|
|
158
|
+
if (order.orderedItem.length !== numOrderedItemExpected) {
|
|
159
|
+
throw new Error(`invalid orderedItem.length:${order.orderedItem.length} [expected:${numOrderedItemExpected}]`);
|
|
134
160
|
}
|
|
135
161
|
if (order.price !== priceExpected) {
|
|
136
162
|
throw new Error(`order.price should be ${priceExpected} [actual: ${order.price}]`);
|
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.362.0
|
|
14
|
-
"@cinerino/sdk": "5.14.0
|
|
13
|
+
"@chevre/factory": "4.362.0",
|
|
14
|
+
"@cinerino/sdk": "5.14.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.26.0
|
|
113
|
+
"version": "21.26.0"
|
|
114
114
|
}
|