@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(-280, 'days')
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
- if (typeof serialNumber !== 'string' || serialNumber.length === 0) {
71
- throw new Error(`invalid acceptedOffer.serialNumber [${typeof serialNumber}]`);
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 (itemOfferedTypeOfs.length !== 1) {
91
- throw new Error(`itemOfferedTypeOfs.length must be 1 [${itemOfferedTypeOfs.length}]`);
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.salesTicketSalePrice !== 'number'
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
- throw new Error(`invalid itemOfferedTypeOf [${itemOfferedTypeOf}]`);
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-alpha.4",
14
- "@cinerino/sdk": "5.14.0-alpha.1",
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.7"
113
+ "version": "21.26.0"
114
114
  }