@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(-280, 'days')
25
+ .add(-300, 'days')
26
26
  .toDate(),
27
27
  $lte: moment()
28
28
  // tslint:disable-next-line:no-magic-numbers
29
- .add(-275, 'days')
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
- 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,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-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-alpha.8"
114
114
  }