@chevre/domain 21.32.0-alpha.20 → 21.32.0-alpha.21

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.
@@ -4,7 +4,7 @@ import * as mongoose from 'mongoose';
4
4
 
5
5
  import { chevre } from '../../../../lib/index';
6
6
 
7
- const project = { id: String(process.env.PROJECT_ID) };
7
+ // const project = { id: String(process.env.PROJECT_ID) };
8
8
 
9
9
  // tslint:disable-next-line:max-func-body-length
10
10
  async function main() {
@@ -44,15 +44,15 @@ async function main() {
44
44
  flgMember: COA.factory.reserve.FlgMember.NonMember,
45
45
  typeOf: chevre.factory.offerType.AggregateOffer
46
46
  },
47
- agent: {
48
- id: 'xxx',
49
- typeOf: chevre.factory.creativeWorkType.WebApplication
50
- },
47
+ // agent: {
48
+ // id: 'xxx',
49
+ // typeOf: chevre.factory.creativeWorkType.WebApplication
50
+ // },
51
51
  purpose: { id: '664e80c79801179aabb0476f', typeOf: chevre.factory.transactionType.PlaceOrder },
52
52
  sameAs: { id: 'xxx', typeOf: 'Task' },
53
- potentialActions: { typeOf: chevre.factory.actionType.AuthorizeAction },
54
- typeOf: chevre.factory.actionType.AcceptAction,
55
- project: { id: project.id, typeOf: chevre.factory.organizationType.Project }
53
+ potentialActions: { typeOf: chevre.factory.actionType.AuthorizeAction }
54
+ // typeOf: chevre.factory.actionType.AcceptAction,
55
+ // project: { id: project.id, typeOf: chevre.factory.organizationType.Project }
56
56
  })({
57
57
  action: await chevre.repository.Action.createInstance(mongoose.connection),
58
58
  event: await chevre.repository.Event.createInstance(mongoose.connection),
@@ -51,5 +51,5 @@ declare function verifyToken(params: {
51
51
  action?: ActionRepo;
52
52
  authorization: AuthorizationRepo;
53
53
  ticket: TicketRepo;
54
- }) => Promise<factory.authorization.IObject | import("@chevre/factory/lib/action/authorize/offer/eventService").IPurpose>;
54
+ }) => Promise<factory.authorization.IObject | import("@chevre/factory/lib/action/accept/coaOffer").IPurpose>;
55
55
  export { IToken, ICode, IPayload, IPayloadWithNoVersion, getToken, verifyToken };
@@ -82,12 +82,12 @@ function processVoidTransaction4coa(params) {
82
82
  }
83
83
  exports.processVoidTransaction4coa = processVoidTransaction4coa;
84
84
  function processVoidTransactionByAcceptAction4coa(params) {
85
- var _a, _b;
85
+ var _a, _b, _c, _d;
86
86
  return __awaiter(this, void 0, void 0, function* () {
87
87
  // COAの場合、objectあるいはresultに連携内容情報が記録されているので、その情報を元に仮予約を取り消す
88
88
  let delTmpReserveParams;
89
- const coaRequestBody = (_a = params.action.result) === null || _a === void 0 ? void 0 : _a.result.requestBody;
90
- const coaResponseBody = (_b = params.action.result) === null || _b === void 0 ? void 0 : _b.result.responseBody;
89
+ const coaRequestBody = (_b = (_a = params.action.result) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.requestBody;
90
+ const coaResponseBody = (_d = (_c = params.action.result) === null || _c === void 0 ? void 0 : _c.result) === null || _d === void 0 ? void 0 : _d.responseBody;
91
91
  if (coaRequestBody !== undefined && coaResponseBody !== undefined) {
92
92
  delTmpReserveParams = {
93
93
  theaterCode: coaRequestBody.theaterCode,
@@ -135,14 +135,16 @@ function cancelAcceptActions(params) {
135
135
  if (!orderCancelled) {
136
136
  // 取り消すべきアクションに絞る
137
137
  acceptActions = acceptActions.filter((acceptAction) => {
138
- var _a, _b;
138
+ var _a, _b, _c;
139
+ const tmpReserveNum = (_c = (_b = (_a = acceptAction.result) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.responseBody) === null || _c === void 0 ? void 0 : _c.tmpReserveNum;
140
+ const potentialActionsId = acceptAction.potentialActions.id;
139
141
  // 仮予約番号が発行済、かつ、承認完了済のアクションは除外
140
- const tmpReserveNum = (_b = (_a = acceptAction.result) === null || _a === void 0 ? void 0 : _a.result.responseBody) === null || _b === void 0 ? void 0 : _b.tmpReserveNum;
141
- const completedAuthorizeActionExists = typeof tmpReserveNum === 'string'
142
- && completedAuthorizeActions.some(({ instrument }) => {
143
- return instrument.transactionNumber === tmpReserveNum;
144
- });
145
- return !completedAuthorizeActionExists;
142
+ const authorizeActionExistsByTmpReserveNum = typeof tmpReserveNum === 'string'
143
+ && completedAuthorizeActions.some(({ instrument }) => instrument.transactionNumber === tmpReserveNum);
144
+ // 承認アクションIDが連携(再採用)、かつ、承認完了済のアクションは除外
145
+ const authorizeActionExistsByPotentialActionsId = typeof potentialActionsId === 'string'
146
+ && completedAuthorizeActions.some(({ id }) => id === potentialActionsId);
147
+ return !authorizeActionExistsByTmpReserveNum && !authorizeActionExistsByPotentialActionsId;
146
148
  });
147
149
  }
148
150
  break;
@@ -16,7 +16,7 @@ export declare function createAcceptedOffersWithoutDetails(params: {
16
16
  reserveService: COA.service.Reserve;
17
17
  }) => Promise<IAcceptedOfferWithoutDetail[]>;
18
18
  type IAcceptedOfferBeforeAuthorize4COA = factory.action.authorize.offer.eventService.IAcceptedOfferBeforeAuthorize4COA;
19
- export declare function validateOffers(coaInfo: Pick<factory.event.screeningEvent.ICOAInfo, 'dateJouei' | 'screenCode' | 'theaterCode' | 'timeBegin' | 'timeEnd' | 'titleBranchNum' | 'titleCode'>, offers: IAcceptedOfferWithoutDetail[], appliesToSurfrock: IAppliesToSurfrock, isMember: boolean, flgMember: COA.factory.reserve.FlgMember): (repos: {
19
+ export declare function validateOffers(coaInfo: Pick<factory.event.screeningEvent.ICOAInfo, 'dateJouei' | 'screenCode' | 'theaterCode' | 'timeBegin' | 'timeEnd' | 'titleBranchNum' | 'titleCode'>, offers: IAcceptedOfferWithoutDetail[], appliesToSurfrock: IAppliesToSurfrock, flgMember: COA.factory.reserve.FlgMember): (repos: {
20
20
  reserveService: COA.service.Reserve;
21
21
  masterService: COA.service.Master;
22
22
  }) => Promise<IAcceptedOfferBeforeAuthorize4COA[]>;
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.validateOffers = exports.createAcceptedOffersWithoutDetails = exports.WebAPIIdentifier = void 0;
13
+ const COA = require("@motionpicture/coa-service");
13
14
  const http_status_1 = require("http-status");
14
15
  const errorHandler_1 = require("../../../../errorHandler");
15
16
  const factory = require("../../../../factory");
@@ -215,7 +216,9 @@ function availableSalesTicket2offerWithDetails(params) {
215
216
  }
216
217
  return offerWithDetails;
217
218
  }
218
- function validateOffers(coaInfo, offers, appliesToSurfrock, isMember, flgMember) {
219
+ function validateOffers(coaInfo, offers, appliesToSurfrock,
220
+ // isMember: boolean, // flgMemberと重複なので不要(2024-05-27~)
221
+ flgMember) {
219
222
  return (repos) => __awaiter(this, void 0, void 0, function* () {
220
223
  let availableSalesTickets = [];
221
224
  try {
@@ -247,7 +250,7 @@ function validateOffers(coaInfo, offers, appliesToSurfrock, isMember, flgMember)
247
250
  offer,
248
251
  offerIndex,
249
252
  appliesToSurfrock,
250
- isMember
253
+ isMember: (flgMember === COA.factory.reserve.FlgMember.Member)
251
254
  });
252
255
  })));
253
256
  });
@@ -10,7 +10,7 @@ interface IAcceptRepos {
10
10
  reserveService: COA.service.Reserve;
11
11
  masterService: COA.service.Master;
12
12
  }
13
- type IAccepteOfferParams = factory.task.acceptCOAOffer.IData & {
13
+ type IAccepteOfferParams = Pick<factory.task.acceptCOAOffer.IData, 'object' | 'potentialActions' | 'purpose' | 'sameAs'> & {
14
14
  sameAs: {
15
15
  id: string;
16
16
  };
@@ -22,5 +22,12 @@ declare function acceptOffer(params: IAccepteOfferParams): (repos: IAcceptRepos)
22
22
  /**
23
23
  * COA興行オファー採用変更
24
24
  */
25
- declare function reAcceptOffer(params: IAccepteOfferParams & {}): (repos: IAcceptRepos) => Promise<import("@chevre/factory/lib/action").IAction<import("@chevre/factory/lib/action").IAttributes<factory.actionType.AcceptAction, any, any>>>;
25
+ declare function reAcceptOffer(params: IAccepteOfferParams & {
26
+ potentialActions: factory.task.acceptCOAOffer.IData['potentialActions'] & {
27
+ /**
28
+ * 元の承認アクションID
29
+ */
30
+ id: string;
31
+ };
32
+ }): (repos: IAcceptRepos) => Promise<import("@chevre/factory/lib/action").IAction<import("@chevre/factory/lib/action").IAttributes<factory.actionType.AcceptAction, any, any>>>;
26
33
  export { acceptOffer, reAcceptOffer };
@@ -10,47 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.reAcceptOffer = exports.acceptOffer = void 0;
13
- const authorize_1 = require("./acceptOffer/authorize");
14
- const factory_1 = require("./acceptOffer/factory");
15
- // import { credentials } from '../../../credentials';
16
13
  const errorHandler_1 = require("../../../errorHandler");
17
14
  const factory = require("../../../factory");
18
- // let jwt: typeof JWT | undefined;
19
- // async function getPurposeToken(params: {
20
- // id: string;
21
- // }): Promise<string> {
22
- // const data: Pick<factory.clientUser.IClientUser, 'sub' | 'typ' | 'token_use' | 'version'> = {
23
- // sub: params.id,
24
- // token_use: 'access',
25
- // version: credentials.jwt.version,
26
- // typ: `${credentials.jwt.payloadTypPrefix}:${factory.transactionType.PlaceOrder}`
27
- // };
28
- // return new Promise<string>(async (resolve, reject) => {
29
- // if (jwt === undefined) {
30
- // jwt = await import('jsonwebtoken');
31
- // }
32
- // jwt.sign(
33
- // data,
34
- // credentials.jwt.secret,
35
- // {
36
- // algorithm: 'HS256', // 明示的に指定(2024-05-07~)
37
- // issuer: credentials.jwt.issuer,
38
- // expiresIn: 60
39
- // },
40
- // (err, encoded) => {
41
- // if (err instanceof Error) {
42
- // reject(err);
43
- // } else {
44
- // if (typeof encoded !== 'string') {
45
- // reject(new factory.errors.ServiceUnavailable('purpose cannot be signed unexpectedly'));
46
- // } else {
47
- // resolve(encoded);
48
- // }
49
- // }
50
- // }
51
- // );
52
- // });
53
- // }
15
+ const authorize_1 = require("./acceptOffer/authorize");
16
+ const factory_1 = require("./acceptOffer/factory");
54
17
  function findCOAInfo(params) {
55
18
  return (repos) => __awaiter(this, void 0, void 0, function* () {
56
19
  const searchConditions = {
@@ -76,6 +39,9 @@ function findCOAInfo(params) {
76
39
  */
77
40
  function acceptOffer(params) {
78
41
  return (repos) => __awaiter(this, void 0, void 0, function* () {
42
+ if (typeof params.sameAs.id !== 'string' || params.sameAs.id === '') {
43
+ throw new factory.errors.ArgumentNull('sameAs.id');
44
+ }
79
45
  const transaction = yield repos.transaction.findInProgressById({
80
46
  typeOf: factory.transactionType.PlaceOrder,
81
47
  id: params.purpose.id
@@ -87,12 +53,6 @@ function acceptOffer(params) {
87
53
  const actionAttributes = {
88
54
  project: transaction.project,
89
55
  typeOf: factory.actionType.AcceptAction,
90
- // object: {
91
- // object: params.object,
92
- // appliesToSurfrock: params.appliesToSurfrock,
93
- // flgMember: params.flgMember,
94
- // typeOf: factory.actionType.AuthorizeAction
95
- // },
96
56
  object: params.object,
97
57
  agent: { id: transaction.agent.id, typeOf: transaction.agent.typeOf },
98
58
  purpose: { id: transaction.id, typeOf: transaction.typeOf },
@@ -111,7 +71,9 @@ function acceptOffer(params) {
111
71
  acceptedOffer = yield (0, authorize_1.validateOffers)(coaInfo, acceptedOffersWithoutDetails, {
112
72
  identifier: params.object.appliesToSurfrock.identifier,
113
73
  serviceOutput: { typeOf: params.object.appliesToSurfrock.serviceOutput.typeOf }
114
- }, (params.agent.typeOf === factory.personType.Person), params.object.flgMember)({
74
+ },
75
+ // (params.agent.typeOf === factory.personType.Person),
76
+ params.object.flgMember)({
115
77
  reserveService: repos.reserveService,
116
78
  masterService: repos.masterService
117
79
  });
@@ -137,8 +99,6 @@ function acceptOffer(params) {
137
99
  acceptedOffer,
138
100
  event: { id: params.object.event.id }
139
101
  },
140
- // purpose: await getPurposeToken({ id: params.purpose.id }),
141
- // purposeRaw: params.purpose.id,
142
102
  result: { requestBody, responseBody },
143
103
  typeOf: factory.actionType.AuthorizeAction
144
104
  };
@@ -151,6 +111,13 @@ exports.acceptOffer = acceptOffer;
151
111
  */
152
112
  function reAcceptOffer(params) {
153
113
  return (repos) => __awaiter(this, void 0, void 0, function* () {
114
+ var _a;
115
+ if (typeof params.sameAs.id !== 'string' || params.sameAs.id === '') {
116
+ throw new factory.errors.ArgumentNull('sameAs.id');
117
+ }
118
+ if (typeof ((_a = params.potentialActions) === null || _a === void 0 ? void 0 : _a.id) !== 'string' || params.potentialActions.id === '') {
119
+ throw new factory.errors.ArgumentNull('potentialActions.id');
120
+ }
154
121
  const transaction = yield repos.transaction.findInProgressById({
155
122
  typeOf: factory.transactionType.PlaceOrder,
156
123
  id: params.purpose.id
@@ -159,16 +126,11 @@ function reAcceptOffer(params) {
159
126
  id: params.object.event.id,
160
127
  project: { id: transaction.project.id }
161
128
  })(repos);
129
+ // 承認アクション存在検証
130
+ yield repos.action.findById({ id: params.potentialActions.id, typeOf: factory.actionType.AuthorizeAction }, ['_id'], []);
162
131
  const actionAttributes = {
163
132
  project: transaction.project,
164
133
  typeOf: factory.actionType.AcceptAction,
165
- // object: {
166
- // object: params.object,
167
- // appliesToSurfrock: params.appliesToSurfrock,
168
- // flgMember: params.flgMember,
169
- // typeOf: factory.actionType.AuthorizeAction,
170
- // id: params.id
171
- // },
172
134
  object: params.object,
173
135
  agent: { id: transaction.agent.id, typeOf: transaction.agent.typeOf },
174
136
  purpose: { id: transaction.id, typeOf: transaction.typeOf },
@@ -176,18 +138,18 @@ function reAcceptOffer(params) {
176
138
  potentialActions: params.potentialActions
177
139
  };
178
140
  let acceptedOffer;
179
- // let requestBody: COA.factory.reserve.IUpdTmpReserveSeatArgs;
180
- // let responseBody: COA.factory.reserve.IUpdTmpReserveSeatResult;
181
141
  const action = yield repos.action.start(actionAttributes);
182
142
  try {
183
143
  const acceptedOffersWithoutDetails = params.object.acceptedOffer.map((offer) => {
184
- return Object.assign(Object.assign({}, offer), { ticketInfo: Object.assign(Object.assign({}, offer.ticketInfo), { spseatAdd1: 0, spseatAdd2: 0, spseatKbn: '' // chevreで上書きされるので問題なし
144
+ return Object.assign(Object.assign({}, offer), { ticketInfo: Object.assign(Object.assign({}, offer.ticketInfo), { spseatAdd1: 0, spseatAdd2: 0, spseatKbn: '' // 承認時に上書きされるので問題なし
185
145
  }) });
186
146
  });
187
147
  acceptedOffer = yield (0, authorize_1.validateOffers)(coaInfo, acceptedOffersWithoutDetails, {
188
148
  identifier: params.object.appliesToSurfrock.identifier,
189
149
  serviceOutput: { typeOf: params.object.appliesToSurfrock.serviceOutput.typeOf }
190
- }, (params.agent.typeOf === factory.personType.Person), params.object.flgMember)({
150
+ },
151
+ // (params.agent.typeOf === factory.personType.Person),
152
+ params.object.flgMember)({
191
153
  reserveService: repos.reserveService,
192
154
  masterService: repos.masterService
193
155
  });
@@ -202,16 +164,11 @@ function reAcceptOffer(params) {
202
164
  throw error;
203
165
  }
204
166
  const result = {
167
+ id: params.potentialActions.id,
205
168
  object: {
206
169
  acceptedOffer,
207
170
  event: { id: params.object.event.id }
208
171
  },
209
- // purpose: await getPurposeToken({ id: params.purpose.id }),
210
- // purposeRaw: params.purpose.id,
211
- result: {
212
- // requestBody,
213
- // responseBody
214
- },
215
172
  typeOf: factory.actionType.AuthorizeAction
216
173
  };
217
174
  return repos.action.complete({ typeOf: action.typeOf, id: action.id, result });
@@ -49,10 +49,14 @@ function call(params) {
49
49
  endpoint: credentials_1.credentials.coa.endpoint,
50
50
  auth: coaAuthClient
51
51
  }, { timeout: credentials_1.credentials.coa.timeout });
52
- if (typeof params.data.potentialActions.id === 'string') {
53
- yield (0, acceptOffer_1.reAcceptOffer)(Object.assign(Object.assign({}, params.data), {
54
- // id: params.data.id,
55
- sameAs: { id: params.id, typeOf: 'Task' } }))({
52
+ const { object, potentialActions, purpose } = params.data;
53
+ if (typeof potentialActions.id === 'string') {
54
+ yield (0, acceptOffer_1.reAcceptOffer)({
55
+ object,
56
+ purpose,
57
+ potentialActions: Object.assign(Object.assign({}, potentialActions), { id: potentialActions.id }),
58
+ sameAs: { id: params.id, typeOf: 'Task' }
59
+ })({
56
60
  action: actionRepo,
57
61
  event: new event_1.MongoRepository(settings.connection),
58
62
  transaction: new transaction_1.MongoRepository(settings.connection),
@@ -61,7 +65,12 @@ function call(params) {
61
65
  });
62
66
  }
63
67
  else {
64
- yield (0, acceptOffer_1.acceptOffer)(Object.assign(Object.assign({}, params.data), { sameAs: { id: params.id, typeOf: 'Task' } }))({
68
+ yield (0, acceptOffer_1.acceptOffer)({
69
+ object,
70
+ potentialActions,
71
+ purpose,
72
+ sameAs: { id: params.id, typeOf: 'Task' }
73
+ })({
65
74
  action: actionRepo,
66
75
  event: new event_1.MongoRepository(settings.connection),
67
76
  transaction: new transaction_1.MongoRepository(settings.connection),
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.371.0-alpha.4",
14
- "@cinerino/sdk": "7.0.0-alpha.8",
13
+ "@chevre/factory": "4.371.0-alpha.5",
14
+ "@cinerino/sdk": "7.0.0-alpha.9",
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.32.0-alpha.20"
113
+ "version": "21.32.0-alpha.21"
114
114
  }