@chevre/domain 21.2.0-alpha.76 → 21.2.0-alpha.77

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.
@@ -63,7 +63,7 @@ export declare class MongoRepository {
63
63
  */
64
64
  $nin?: factory.taskName[];
65
65
  };
66
- }): Promise<Pick<import("@chevre/factory/lib/task").ITask | import("@chevre/factory/lib/task/confirmMoneyTransfer").ITask | import("@chevre/factory/lib/task/confirmRegisterService").ITask | import("@chevre/factory/lib/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/task/deleteMember").ITask | import("@chevre/factory/lib/task/deleteTransaction").ITask | import("@chevre/factory/lib/task/givePointAward").ITask | import("@chevre/factory/lib/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/task/orderProgramMembership").ITask | import("@chevre/factory/lib/task/placeOrder").ITask | import("@chevre/factory/lib/task/returnOrder").ITask | import("@chevre/factory/lib/task/returnMoneyTransfer").ITask | import("@chevre/factory/lib/task/returnPayTransaction").ITask | import("@chevre/factory/lib/task/returnPointAward").ITask | import("@chevre/factory/lib/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/task/sendEmailMessage").ITask | import("@chevre/factory/lib/task/sendOrder").ITask | import("@chevre/factory/lib/task/triggerWebhook").ITask | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").ITask | import("@chevre/factory/lib/task/voidPayTransaction").ITask | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/voidReserveTransaction").ITask, "id" | "name" | "status">[]>;
66
+ }): Promise<Pick<import("@chevre/factory/lib/task").ITask | import("@chevre/factory/lib/task/confirmMoneyTransfer").ITask | import("@chevre/factory/lib/task/confirmRegisterService").ITask | import("@chevre/factory/lib/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/task/deleteMember").ITask | import("@chevre/factory/lib/task/deleteTransaction").ITask | import("@chevre/factory/lib/task/givePointAward").ITask | import("@chevre/factory/lib/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/task/orderProgramMembership").ITask | import("@chevre/factory/lib/task/placeOrder").ITask | import("@chevre/factory/lib/task/returnOrder").ITask | import("@chevre/factory/lib/task/returnMoneyTransfer").ITask | import("@chevre/factory/lib/task/returnPayTransaction").ITask | import("@chevre/factory/lib/task/returnPointAward").ITask | import("@chevre/factory/lib/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/task/sendEmailMessage").ITask | import("@chevre/factory/lib/task/sendOrder").ITask | import("@chevre/factory/lib/task/triggerWebhook").ITask | import("@chevre/factory/lib/task/useReservation").ITask | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").ITask | import("@chevre/factory/lib/task/voidPayTransaction").ITask | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/voidReserveTransaction").ITask, "id" | "name" | "status">[]>;
67
67
  retry(params: {
68
68
  intervalInMinutes: number;
69
69
  }): Promise<void>;
@@ -1,6 +1,3 @@
1
- /**
2
- * 予約サービス
3
- */
4
1
  import * as factory from '../../factory';
5
2
  import { MongoRepository as ActionRepo } from '../../repo/action';
6
3
  import { MongoRepository as OrderRepo } from '../../repo/order';
@@ -11,6 +8,9 @@ import { IUseReservationAction } from './potentialActions/onReservationUsed';
11
8
  * 予約使用
12
9
  */
13
10
  export declare function useReservation(params: {
11
+ project: {
12
+ id: string;
13
+ };
14
14
  agent: factory.action.consume.use.reservation.IAgent;
15
15
  object: {
16
16
  /**
@@ -24,6 +24,7 @@ export declare function useReservation(params: {
24
24
  location?: {
25
25
  identifier?: string;
26
26
  };
27
+ verifyToken: boolean;
27
28
  }): (repos: {
28
29
  action: ActionRepo;
29
30
  order: OrderRepo;
@@ -10,51 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.useReservation = void 0;
13
- /**
14
- * 予約サービス
15
- */
16
13
  const factory = require("../../factory");
17
- const code_1 = require("../code");
18
- // import { maskUnderName } from './factory';
19
14
  const onReservationUsed_1 = require("./potentialActions/onReservationUsed");
20
- function verifyToken4reservation(params) {
21
- return (repos) => __awaiter(this, void 0, void 0, function* () {
22
- const payload = yield (0, code_1.verifyToken)({
23
- project: params.project,
24
- agent: params.agent,
25
- token: params.token
26
- })({});
27
- switch (payload.typeOf) {
28
- case factory.order.OrderType.Order:
29
- // reservationIdを含む注文の存在を確認するだけでよい(2023-01-31~)
30
- const order = yield repos.order.findByOrderNumberAndReservationId({
31
- orderNumber: payload.orderNumber,
32
- reservationId: params.reservationId
33
- });
34
- // ステータス検証
35
- switch (order.orderStatus) {
36
- case factory.orderStatus.OrderDelivered:
37
- break;
38
- default:
39
- throw new factory.errors.Argument('token', `invalid orderStatus '${order.orderStatus}'`);
40
- }
41
- // const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
42
- // const reservationExistsInOrder = acceptedOffers.some((offer) => {
43
- // return (
44
- // offer.itemOffered.typeOf === factory.reservationType.EventReservation
45
- // || offer.itemOffered.typeOf === factory.reservationType.BusReservation
46
- // )
47
- // && offer.itemOffered.id === params.reservationId;
48
- // });
49
- // if (!reservationExistsInOrder) {
50
- // throw new factory.errors.NotFound('AcceptedOffer');
51
- // }
52
- break;
53
- default:
54
- throw new factory.errors.NotImplemented(`Payload type ${payload.typeOf} not implemented`);
55
- }
56
- });
57
- }
15
+ const verifyToken4reservation_1 = require("./verifyToken4reservation");
58
16
  /**
59
17
  * 予約使用
60
18
  */
@@ -64,22 +22,24 @@ function useReservation(params) {
64
22
  var _a, _b;
65
23
  const now = new Date();
66
24
  const reservationId = params.object.id;
25
+ const token = (_a = params === null || params === void 0 ? void 0 : params.instrument) === null || _a === void 0 ? void 0 : _a.token;
26
+ if (params.verifyToken === true) {
27
+ // instrument?.tokenを検証
28
+ if (typeof token === 'string') {
29
+ yield (0, verifyToken4reservation_1.verifyToken4reservation)({
30
+ project: { id: params.project.id },
31
+ agent: params.agent,
32
+ reservationId,
33
+ token
34
+ })({ order: repos.order });
35
+ }
36
+ }
67
37
  // 予約検索
68
38
  // 取得属性最適化(2023-01-30~)
69
39
  const reservation = yield repos.reservation.findById({
70
40
  id: reservationId,
71
41
  inclusion: ['_id', 'issuedThrough', 'project', 'reservationFor', 'reservationNumber', 'reservedTicket', 'typeOf']
72
42
  });
73
- // instrument?.tokenを検証
74
- const token = (_a = params === null || params === void 0 ? void 0 : params.instrument) === null || _a === void 0 ? void 0 : _a.token;
75
- if (typeof token === 'string') {
76
- yield verifyToken4reservation({
77
- project: { id: reservation.project.id },
78
- agent: params.agent,
79
- reservationId,
80
- token
81
- })({ order: repos.order });
82
- }
83
43
  // UseActionを作成する
84
44
  const reservationAsObject = {
85
45
  id: reservation.id,
@@ -92,8 +52,6 @@ function useReservation(params) {
92
52
  const actionAttributes = Object.assign({ project: reservation.project, typeOf: factory.actionType.UseAction, agent: params.agent, instrument: Object.assign(Object.assign({}, (typeof token === 'string') ? { token } : undefined), { typeOf: factory.action.check.token.ObjectType.Ticket }),
93
53
  // object最適化(2023-01-30~)
94
54
  // どの予約を
95
- // mask
96
- // object: [maskUnderName(reservation)],
97
55
  object: [reservationAsObject] }, (typeof ((_b = params.location) === null || _b === void 0 ? void 0 : _b.identifier) === 'string')
98
56
  ? {
99
57
  location: {
@@ -111,14 +69,6 @@ function useReservation(params) {
111
69
  try {
112
70
  // 使用日時と同時更新(2023-01-30~)
113
71
  attendedReservation = (yield repos.reservation.attendIfNotAttended({ id: reservationId, now }));
114
- // attendedReservation = <IEventReservation>await repos.reservation.attend({ id: reservationId, now });
115
- // // 使用日時がなければ追加
116
- // if (attendedReservation.reservedTicket?.dateUsed === undefined) {
117
- // attendedReservation = await repos.reservation.updatePartiallyById({
118
- // id: attendedReservation.id,
119
- // update: { 'reservedTicket.dateUsed': now }
120
- // });
121
- // }
122
72
  }
123
73
  catch (error) {
124
74
  // actionにエラー結果を追加
@@ -0,0 +1,15 @@
1
+ import * as factory from '../../factory';
2
+ import { MongoRepository as OrderRepo } from '../../repo/order';
3
+ /**
4
+ * 予約使用のためのチケットトークンを検証する
5
+ */
6
+ export declare function verifyToken4reservation(params: {
7
+ project: {
8
+ id: string;
9
+ };
10
+ agent: factory.action.check.token.IAgent;
11
+ reservationId: string;
12
+ token: string;
13
+ }): (repos: {
14
+ order: OrderRepo;
15
+ }) => Promise<void>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.verifyToken4reservation = void 0;
13
+ const factory = require("../../factory");
14
+ const code_1 = require("../code");
15
+ /**
16
+ * 予約使用のためのチケットトークンを検証する
17
+ */
18
+ function verifyToken4reservation(params) {
19
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
20
+ const payload = yield (0, code_1.verifyToken)({
21
+ project: params.project,
22
+ agent: params.agent,
23
+ token: params.token
24
+ })({});
25
+ switch (payload.typeOf) {
26
+ case factory.order.OrderType.Order:
27
+ // reservationIdを含む注文の存在を確認するだけでよい(2023-01-31~)
28
+ const order = yield repos.order.findByOrderNumberAndReservationId({
29
+ orderNumber: payload.orderNumber,
30
+ reservationId: params.reservationId
31
+ });
32
+ // ステータス検証
33
+ switch (order.orderStatus) {
34
+ case factory.orderStatus.OrderDelivered:
35
+ break;
36
+ default:
37
+ throw new factory.errors.Argument('token', `invalid orderStatus '${order.orderStatus}'`);
38
+ }
39
+ // const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
40
+ // const reservationExistsInOrder = acceptedOffers.some((offer) => {
41
+ // return (
42
+ // offer.itemOffered.typeOf === factory.reservationType.EventReservation
43
+ // || offer.itemOffered.typeOf === factory.reservationType.BusReservation
44
+ // )
45
+ // && offer.itemOffered.id === params.reservationId;
46
+ // });
47
+ // if (!reservationExistsInOrder) {
48
+ // throw new factory.errors.NotFound('AcceptedOffer');
49
+ // }
50
+ break;
51
+ default:
52
+ throw new factory.errors.NotImplemented(`Payload type ${payload.typeOf} not implemented`);
53
+ }
54
+ });
55
+ }
56
+ exports.verifyToken4reservation = verifyToken4reservation;
@@ -6,4 +6,5 @@ import { cancelPendingReservation, cancelReservation } from './reserve/cancelRes
6
6
  import { checkInRerservation } from './reserve/checkInReservation';
7
7
  import { confirmReservation } from './reserve/confirmReservation';
8
8
  import { useReservation } from './reserve/useReservation';
9
- export { maskUnderName, cancelPendingReservation, cancelReservation, checkInRerservation, confirmReservation, useReservation };
9
+ import { verifyToken4reservation } from './reserve/verifyToken4reservation';
10
+ export { maskUnderName, cancelPendingReservation, cancelReservation, checkInRerservation, confirmReservation, useReservation, verifyToken4reservation };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useReservation = exports.confirmReservation = exports.checkInRerservation = exports.cancelReservation = exports.cancelPendingReservation = exports.maskUnderName = void 0;
3
+ exports.verifyToken4reservation = exports.useReservation = exports.confirmReservation = exports.checkInRerservation = exports.cancelReservation = exports.cancelPendingReservation = exports.maskUnderName = void 0;
4
4
  /**
5
5
  * 予約サービス
6
6
  */
@@ -15,3 +15,5 @@ const confirmReservation_1 = require("./reserve/confirmReservation");
15
15
  Object.defineProperty(exports, "confirmReservation", { enumerable: true, get: function () { return confirmReservation_1.confirmReservation; } });
16
16
  const useReservation_1 = require("./reserve/useReservation");
17
17
  Object.defineProperty(exports, "useReservation", { enumerable: true, get: function () { return useReservation_1.useReservation; } });
18
+ const verifyToken4reservation_1 = require("./reserve/verifyToken4reservation");
19
+ Object.defineProperty(exports, "verifyToken4reservation", { enumerable: true, get: function () { return verifyToken4reservation_1.verifyToken4reservation; } });
@@ -0,0 +1,7 @@
1
+ import * as factory from '../../factory';
2
+ import { IConnectionSettings } from '../task';
3
+ export type IOperation<T> = (settings: IConnectionSettings) => Promise<T>;
4
+ /**
5
+ * タスク実行関数
6
+ */
7
+ export declare function call(data: factory.task.useReservation.IData): IOperation<void>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.call = void 0;
13
+ const action_1 = require("../../repo/action");
14
+ const order_1 = require("../../repo/order");
15
+ const reservation_1 = require("../../repo/reservation");
16
+ const task_1 = require("../../repo/task");
17
+ const reserve_1 = require("../reserve");
18
+ /**
19
+ * タスク実行関数
20
+ */
21
+ function call(data) {
22
+ return (settings) => __awaiter(this, void 0, void 0, function* () {
23
+ var _a, _b;
24
+ yield (0, reserve_1.useReservation)(Object.assign(Object.assign({ project: data.project, agent: data.agent, object: data.object,
25
+ // タスク作成前に検証済なので検証不要
26
+ verifyToken: false }, (typeof ((_a = data.instrument) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { instrument: data.instrument } : undefined), (typeof ((_b = data.location) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { location: data.location } : undefined))({
27
+ action: new action_1.MongoRepository(settings.connection),
28
+ order: new order_1.MongoRepository(settings.connection),
29
+ reservation: new reservation_1.MongoRepository(settings.connection),
30
+ task: new task_1.MongoRepository(settings.connection)
31
+ });
32
+ });
33
+ }
34
+ exports.call = call;
package/package.json CHANGED
@@ -9,8 +9,8 @@
9
9
  }
10
10
  ],
11
11
  "dependencies": {
12
- "@chevre/factory": "4.313.0-alpha.15",
13
- "@cinerino/sdk": "3.157.0-alpha.2",
12
+ "@chevre/factory": "4.313.0-alpha.16",
13
+ "@cinerino/sdk": "3.157.0-alpha.3",
14
14
  "@motionpicture/coa-service": "9.2.0",
15
15
  "@motionpicture/gmo-service": "5.2.0",
16
16
  "@sendgrid/mail": "6.4.0",
@@ -117,5 +117,5 @@
117
117
  "postversion": "git push origin --tags",
118
118
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
119
119
  },
120
- "version": "21.2.0-alpha.76"
120
+ "version": "21.2.0-alpha.77"
121
121
  }