@chevre/domain 21.26.0-alpha.7 → 21.26.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.
|
@@ -22,11 +22,11 @@ async function main() {
|
|
|
22
22
|
orderDate: {
|
|
23
23
|
$gte: moment()
|
|
24
24
|
// tslint:disable-next-line:no-magic-numbers
|
|
25
|
-
.add(-
|
|
25
|
+
.add(-300, 'days')
|
|
26
26
|
.toDate(),
|
|
27
27
|
$lte: moment()
|
|
28
28
|
// tslint:disable-next-line:no-magic-numbers
|
|
29
|
-
.add(-
|
|
29
|
+
.add(-280, 'days')
|
|
30
30
|
.toDate()
|
|
31
31
|
}
|
|
32
32
|
},
|
|
@@ -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,18 @@ 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
92
|
if (itemOfferedTypeOfs.length !== 1) {
|
|
91
93
|
throw new Error(`itemOfferedTypeOfs.length must be 1 [${itemOfferedTypeOfs.length}]`);
|
|
92
94
|
}
|
|
93
95
|
// price検証
|
|
94
96
|
let priceExpected = 0;
|
|
97
|
+
let numOrderedItemExpected = 0;
|
|
95
98
|
const itemOfferedTypeOf = itemOfferedTypeOfs[0];
|
|
96
99
|
switch (itemOfferedTypeOf) {
|
|
97
100
|
case factory.reservationType.BusReservation:
|
|
98
101
|
case factory.reservationType.EventReservation:
|
|
102
|
+
numOrderedItemExpected = reservationForIds.length;
|
|
99
103
|
const reservationAcceptedOffers = acceptedOffers;
|
|
100
104
|
const coaTicketInfoExists = reservationAcceptedOffers[0].itemOffered.reservedTicket.coaTicketInfo !== undefined;
|
|
101
105
|
if (coaTicketInfoExists) {
|
|
@@ -126,12 +130,21 @@ function validateOrder(params) {
|
|
|
126
130
|
}
|
|
127
131
|
break;
|
|
128
132
|
case factory.permit.PermitType.Permit:
|
|
133
|
+
numOrderedItemExpected = acceptedOffers.length;
|
|
134
|
+
const permitAcceptedOffers = acceptedOffers;
|
|
135
|
+
priceExpected = (0, factory_2.acceptedOffers2amount)({
|
|
136
|
+
acceptedOffers: permitAcceptedOffers
|
|
137
|
+
});
|
|
129
138
|
break;
|
|
130
139
|
case factory.actionType.MoneyTransfer:
|
|
131
140
|
break;
|
|
132
141
|
default:
|
|
133
142
|
throw new Error(`invalid itemOfferedTypeOf [${itemOfferedTypeOf}]`);
|
|
134
143
|
}
|
|
144
|
+
// orderedItem検証
|
|
145
|
+
if (order.orderedItem.length !== numOrderedItemExpected) {
|
|
146
|
+
throw new Error(`invalid orderedItem.length:${order.orderedItem.length} [expected:${numOrderedItemExpected}]`);
|
|
147
|
+
}
|
|
135
148
|
if (order.price !== priceExpected) {
|
|
136
149
|
throw new Error(`order.price should be ${priceExpected} [actual: ${order.price}]`);
|
|
137
150
|
}
|
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-alpha.
|
|
113
|
+
"version": "21.26.0-alpha.8"
|
|
114
114
|
}
|