@chevre/domain 22.14.0-alpha.21 → 22.14.0-alpha.22

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.
@@ -115,7 +115,7 @@ function validateMemberTier(params) {
115
115
  */
116
116
  function validateEventOfferPeriod(params) {
117
117
  return (repos) => __awaiter(this, void 0, void 0, function* () {
118
- var _a;
118
+ var _a, _b;
119
119
  const { event, availableAt, tokenizedMemberProgramTier } = params;
120
120
  const acceptedDate = moment(params.now);
121
121
  const eventOffers = event.offers;
@@ -145,51 +145,49 @@ function validateEventOfferPeriod(params) {
145
145
  }
146
146
  // 有効メンバープログラムティアが存在する場合
147
147
  // support validForMemberTier(2025-05-14~)
148
- if (makesOfferOnApplication.typeOf === factory.offerType.AggregateOffer) {
149
- const validForMemberTierExists = makesOfferOnApplication.validForMemberTier.typeOf === 'MemberProgramTier';
150
- if (validForMemberTierExists) {
151
- const validForMemberTierToken = tokenizedMemberProgramTier === null || tokenizedMemberProgramTier === void 0 ? void 0 : tokenizedMemberProgramTier.token;
152
- const memberProgramIdentifierMustBe = (_a = tokenizedMemberProgramTier === null || tokenizedMemberProgramTier === void 0 ? void 0 : tokenizedMemberProgramTier.isTierOf) === null || _a === void 0 ? void 0 : _a.identifier;
153
- // ティアトークンが必須
154
- if (typeof validForMemberTierToken !== 'string' || validForMemberTierToken === '') {
155
- throw new factory.errors.ArgumentNull('reservationFor.offers.validForMemberTier.token');
156
- }
157
- // メンバープログラムコード指定が必須
158
- if (typeof memberProgramIdentifierMustBe !== 'string' || memberProgramIdentifierMustBe === '') {
159
- throw new factory.errors.ArgumentNull('reservationFor.offers.validForMemberTier.isTierOf.identifier');
160
- }
161
- // 有効メンバープログラムティアが存在する場合、オファーコレクションコードが必須
162
- const aggregateOfferIdentifier = makesOfferOnApplication.identifier;
163
- if (typeof aggregateOfferIdentifier !== 'string' || aggregateOfferIdentifier === '') {
164
- throw new factory.errors.NotFound('makesOfferOnApplication.identifier');
165
- }
166
- // トークン検証
167
- const memberProgram = (yield repos.memberProgram.projectMemberPrograms({
168
- limit: 1,
169
- page: 1,
170
- project: { id: { $eq: params.event.project.id } },
171
- identifier: { $eq: memberProgramIdentifierMustBe }
172
- })).shift();
173
- if (memberProgram === undefined) {
174
- throw new factory.errors.NotFound('MemberProgram', `MemberProgram '${memberProgramIdentifierMustBe}' not found`);
175
- }
176
- const issuer = yield repos.issuer.findByIdentifier({
177
- project: { id: params.event.project.id },
178
- identifier: memberProgram.hostingOrganization.identifier
179
- });
180
- if (typeof issuer.tokenSecret !== 'string' || issuer.tokenSecret === '') {
181
- throw new factory.errors.NotFound('issuer.tokenSecret');
182
- }
183
- const verifiedValidForMemberTier = yield verifyOfferedByToken({
184
- secret: issuer.tokenSecret,
185
- issuer: issuer.url,
186
- token: validForMemberTierToken
187
- });
188
- yield validateMemberTier({
189
- event, acceptedDate, verifiedValidForMemberTier,
190
- memberProgramIdentifierMustBe, aggregateOfferIdentifier
191
- })(repos);
148
+ const validForMemberTierExists = ((_a = makesOfferOnApplication.validForMemberTier) === null || _a === void 0 ? void 0 : _a.typeOf) === 'MemberProgramTier';
149
+ if (validForMemberTierExists) {
150
+ const validForMemberTierToken = tokenizedMemberProgramTier === null || tokenizedMemberProgramTier === void 0 ? void 0 : tokenizedMemberProgramTier.token;
151
+ const memberProgramIdentifierMustBe = (_b = tokenizedMemberProgramTier === null || tokenizedMemberProgramTier === void 0 ? void 0 : tokenizedMemberProgramTier.isTierOf) === null || _b === void 0 ? void 0 : _b.identifier;
152
+ // ティアトークンが必須
153
+ if (typeof validForMemberTierToken !== 'string' || validForMemberTierToken === '') {
154
+ throw new factory.errors.ArgumentNull('reservationFor.offers.validForMemberTier.token');
155
+ }
156
+ // メンバープログラムコード指定が必須
157
+ if (typeof memberProgramIdentifierMustBe !== 'string' || memberProgramIdentifierMustBe === '') {
158
+ throw new factory.errors.ArgumentNull('reservationFor.offers.validForMemberTier.isTierOf.identifier');
159
+ }
160
+ // 有効メンバープログラムティアが存在する場合、オファーコレクションコードが必須
161
+ const aggregateOfferIdentifier = eventOffers.identifier;
162
+ if (typeof aggregateOfferIdentifier !== 'string' || aggregateOfferIdentifier === '') {
163
+ throw new factory.errors.NotFound('makesOfferOnApplication.identifier');
192
164
  }
165
+ // トークン検証
166
+ const memberProgram = (yield repos.memberProgram.projectMemberPrograms({
167
+ limit: 1,
168
+ page: 1,
169
+ project: { id: { $eq: params.event.project.id } },
170
+ identifier: { $eq: memberProgramIdentifierMustBe }
171
+ })).shift();
172
+ if (memberProgram === undefined) {
173
+ throw new factory.errors.NotFound('MemberProgram', `MemberProgram '${memberProgramIdentifierMustBe}' not found`);
174
+ }
175
+ const issuer = yield repos.issuer.findByIdentifier({
176
+ project: { id: params.event.project.id },
177
+ identifier: memberProgram.hostingOrganization.identifier
178
+ });
179
+ if (typeof issuer.tokenSecret !== 'string' || issuer.tokenSecret === '') {
180
+ throw new factory.errors.NotFound('issuer.tokenSecret');
181
+ }
182
+ const verifiedValidForMemberTier = yield verifyOfferedByToken({
183
+ secret: issuer.tokenSecret,
184
+ issuer: issuer.url,
185
+ token: validForMemberTierToken
186
+ });
187
+ yield validateMemberTier({
188
+ event, acceptedDate, verifiedValidForMemberTier,
189
+ memberProgramIdentifierMustBe, aggregateOfferIdentifier
190
+ })(repos);
193
191
  }
194
192
  });
195
193
  }
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "dependencies": {
12
12
  "@aws-sdk/client-cognito-identity-provider": "3.600.0",
13
13
  "@aws-sdk/credential-providers": "3.600.0",
14
- "@chevre/factory": "4.399.0-alpha.18",
14
+ "@chevre/factory": "4.399.0-alpha.19",
15
15
  "@cinerino/sdk": "12.2.0",
16
16
  "@motionpicture/coa-service": "9.6.0",
17
17
  "@motionpicture/gmo-service": "5.4.0-alpha.1",
@@ -115,5 +115,5 @@
115
115
  "postversion": "git push origin --tags",
116
116
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
117
117
  },
118
- "version": "22.14.0-alpha.21"
118
+ "version": "22.14.0-alpha.22"
119
119
  }