@chevre/domain 22.9.0-alpha.111 → 22.9.0-alpha.112

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.
@@ -53,6 +53,10 @@ const indexes = [
53
53
  { 'project.id': 1, bookingTime: -1 },
54
54
  { name: 'projectId' }
55
55
  ],
56
+ [
57
+ { 'provider.id': 1, bookingTime: -1 },
58
+ { name: 'providerId' }
59
+ ],
56
60
  [
57
61
  { 'reservationFor.id': 1, bookingTime: -1 },
58
62
  { name: 'reservationForId' }
@@ -173,33 +173,17 @@ const indexes = [
173
173
  ]
174
174
  // [
175
175
  // {
176
- // 'containsPlace.branchCode': 1,
177
- // 'containsPlace.containsPlace.branchCode': 1
178
- // },
179
- // {
180
- // name: 'searchSeatsSort'
181
- // }
182
- // ],
183
- // [
184
- // {
176
+ // typeOf: 1,
177
+ // 'project.id': 1,
185
178
  // 'containedInPlace.branchCode': 1,
186
- // 'containsPlace.branchCode': 1,
187
- // 'containsPlace.containsPlace.branchCode': 1
188
- // },
189
- // {
190
- // name: 'searchSeatsWithSort2'
191
- // }
192
- // ],
193
- // [
194
- // {
195
179
  // branchCode: 1,
196
180
  // 'containsPlace.branchCode': 1,
197
181
  // 'containsPlace.containsPlace.branchCode': 1
198
182
  // },
199
183
  // {
200
- // name: 'searchSeatsWithSort3'
184
+ // name: 'projectSeatsUsingSort'
201
185
  // }
202
- // ],
186
+ // ]
203
187
  ];
204
188
  exports.indexes = indexes;
205
189
  /**
@@ -14,17 +14,22 @@ const factory = require("../../factory");
14
14
  const acceptedOffer_1 = require("../../repo/acceptedOffer");
15
15
  const action_1 = require("../../repo/action");
16
16
  const assetTransaction_1 = require("../../repo/assetTransaction");
17
+ const event_1 = require("../../repo/event");
17
18
  const order_1 = require("../../repo/order");
19
+ const setting_1 = require("../../repo/setting");
20
+ const stockHolder_1 = require("../../repo/stockHolder");
21
+ const task_1 = require("../../repo/task");
22
+ const validateEvent_1 = require("../validation/validateEvent");
18
23
  const validateOrder_1 = require("../validation/validateOrder");
19
24
  /**
20
25
  * タスク実行関数
21
26
  */
22
27
  function call(data) {
23
- return (_a) => __awaiter(this, [_a], void 0, function* ({ connection }) {
24
- const acceptedOfferRepo = new acceptedOffer_1.AcceptedOfferRepo(connection);
28
+ return (_a) => __awaiter(this, [_a], void 0, function* ({ connection, redisClient }) {
29
+ if (redisClient === undefined) {
30
+ throw new factory.errors.Argument('settings', 'redisClient required');
31
+ }
25
32
  const actionRepo = new action_1.ActionRepo(connection);
26
- const assetTransactionRepo = new assetTransaction_1.AssetTransactionRepo(connection);
27
- const orderRepo = new order_1.OrderRepo(connection);
28
33
  const actionAttributes = {
29
34
  agent: { id: data.project.id, typeOf: factory.organizationType.Project },
30
35
  object: data.object,
@@ -32,20 +37,33 @@ function call(data) {
32
37
  typeOf: factory.actionType.CheckAction
33
38
  };
34
39
  const action = yield actionRepo.start(actionAttributes);
40
+ const objectTypeOf = data.object.typeOf;
35
41
  try {
36
- switch (data.object.typeOf) {
42
+ switch (objectTypeOf) {
37
43
  case factory.order.OrderType.Order:
38
44
  yield (0, validateOrder_1.validateOrder)({
39
45
  orderNumber: data.object.orderNumber,
40
46
  project: { id: data.project.id }
41
47
  })({
42
- acceptedOffer: acceptedOfferRepo,
43
- assetTransaction: assetTransactionRepo,
44
- order: orderRepo
48
+ acceptedOffer: new acceptedOffer_1.AcceptedOfferRepo(connection),
49
+ assetTransaction: new assetTransaction_1.AssetTransactionRepo(connection),
50
+ order: new order_1.OrderRepo(connection),
51
+ setting: new setting_1.SettingRepo(connection),
52
+ task: new task_1.TaskRepo(connection)
53
+ });
54
+ break;
55
+ // support ScreeningEvent(2025-05-01~)
56
+ case factory.eventType.ScreeningEvent:
57
+ yield (0, validateEvent_1.validateEvent)({
58
+ id: data.object.id,
59
+ project: { id: data.project.id }
60
+ })({
61
+ event: new event_1.EventRepo(connection),
62
+ stockHolder: new stockHolder_1.StockHolderRepo(redisClient, connection)
45
63
  });
46
64
  break;
47
65
  default:
48
- throw new factory.errors.NotImplemented(`${data.object.typeOf} not implemented`);
66
+ throw new factory.errors.NotImplemented(`${objectTypeOf} not implemented`);
49
67
  }
50
68
  }
51
69
  catch (error) {
@@ -0,0 +1,11 @@
1
+ import type { EventRepo } from '../../repo/event';
2
+ import type { StockHolderRepo } from '../../repo/stockHolder';
3
+ export declare function validateEvent(params: {
4
+ id: string;
5
+ project: {
6
+ id: string;
7
+ };
8
+ }): (repos: {
9
+ event: EventRepo;
10
+ stockHolder: StockHolderRepo;
11
+ }) => Promise<void>;
@@ -0,0 +1,23 @@
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.validateEvent = validateEvent;
13
+ function validateEvent(params) {
14
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
15
+ const event = yield repos.event.projectEventFieldsById({ id: params.id }, ['startDate']);
16
+ // tslint:disable-next-line:no-console
17
+ console.log('conflicted?', params.project.id, event.id, event.startDate);
18
+ yield repos.stockHolder.checkIfConflicted({
19
+ eventId: event.id,
20
+ startDate: event.startDate
21
+ });
22
+ });
23
+ }
@@ -1,6 +1,8 @@
1
1
  import type { AcceptedOfferRepo } from '../../repo/acceptedOffer';
2
2
  import type { AssetTransactionRepo } from '../../repo/assetTransaction';
3
3
  import type { OrderRepo } from '../../repo/order';
4
+ import type { SettingRepo } from '../../repo/setting';
5
+ import type { TaskRepo } from '../../repo/task';
4
6
  export declare function validateOrder(params: {
5
7
  orderNumber: string;
6
8
  project: {
@@ -10,4 +12,6 @@ export declare function validateOrder(params: {
10
12
  acceptedOffer: AcceptedOfferRepo;
11
13
  assetTransaction: AssetTransactionRepo;
12
14
  order: OrderRepo;
15
+ setting: SettingRepo;
16
+ task: TaskRepo;
13
17
  }) => Promise<void>;
@@ -12,11 +12,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.validateOrder = validateOrder;
13
13
  // import * as createDebug from 'debug';
14
14
  const moment = require("moment");
15
+ const util = require("util");
15
16
  const factory = require("../../factory");
16
17
  const factory_1 = require("../offer/event/authorize/factory");
17
18
  const factory_2 = require("../offer/product/factory");
18
19
  const validateMovieTicket_1 = require("../transaction/placeOrder/confirm/validation/validateMovieTicket");
19
- // const debug = createDebug('chevre-domain:service:validation');
20
+ function createCheckEventTasks(params) {
21
+ const { project, reservationForIds } = params;
22
+ const runsAt = new Date();
23
+ return reservationForIds.map((reservationForId) => {
24
+ const object = { id: reservationForId, typeOf: factory.eventType.ScreeningEvent };
25
+ const data = {
26
+ object,
27
+ project: { id: project.id, typeOf: factory.organizationType.Project },
28
+ typeOf: factory.actionType.CheckAction
29
+ };
30
+ const description = util.format('%s:%s:%s:%s', project.id, factory.taskName.CheckResource, factory.eventType.ScreeningEvent, reservationForId);
31
+ return {
32
+ description,
33
+ project: { id: project.id, typeOf: factory.organizationType.Project },
34
+ name: factory.taskName.CheckResource,
35
+ status: factory.taskStatus.Ready,
36
+ runsAt,
37
+ remainingNumberOfTries: 3,
38
+ numberOfTried: 0,
39
+ executionResults: [],
40
+ data
41
+ };
42
+ });
43
+ }
20
44
  function validateOrder(params) {
21
45
  // tslint:disable-next-line:cyclomatic-complexity max-func-body-length
22
46
  return (repos) => __awaiter(this, void 0, void 0, function* () {
@@ -192,5 +216,17 @@ function validateOrder(params) {
192
216
  throw new Error(`invalid ticketIdentifiers.length:${reservationReservedTicketIdentifiers.length} [expected:${acceptedOffers.length}]`);
193
217
  }
194
218
  }
219
+ // add check event task(2025-05-01~)
220
+ const setting = yield repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['useMongoAsStockHolderProjects']);
221
+ const useMongoAsStockHolderProjects = setting === null || setting === void 0 ? void 0 : setting.useMongoAsStockHolderProjects;
222
+ if (Array.isArray(useMongoAsStockHolderProjects) && useMongoAsStockHolderProjects.includes(params.project.id)) {
223
+ const creatingCheckResourceTask = createCheckEventTasks({
224
+ project: { id: params.project.id },
225
+ reservationForIds
226
+ });
227
+ if (creatingCheckResourceTask.length > 0) {
228
+ yield repos.task.saveMany(creatingCheckResourceTask, { emitImmediately: true });
229
+ }
230
+ }
195
231
  });
196
232
  }
package/package.json CHANGED
@@ -11,8 +11,8 @@
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.393.0-alpha.48",
15
- "@cinerino/sdk": "10.21.0-alpha.30",
14
+ "@chevre/factory": "4.393.0-alpha.49",
15
+ "@cinerino/sdk": "10.21.0-alpha.33",
16
16
  "@motionpicture/coa-service": "9.6.0",
17
17
  "@motionpicture/gmo-service": "5.3.0",
18
18
  "@sendgrid/client": "8.1.4",
@@ -113,5 +113,5 @@
113
113
  "postversion": "git push origin --tags",
114
114
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
115
115
  },
116
- "version": "22.9.0-alpha.111"
116
+ "version": "22.9.0-alpha.112"
117
117
  }