@chevre/domain 21.27.0-alpha.9 → 21.27.0

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.
Files changed (58) hide show
  1. package/example/src/chevre/{aggregateEventReservation.ts → aggregation/aggregateEventReservation.ts} +2 -3
  2. package/example/src/chevre/aggregation/aggregateOffersOnEvent.ts +82 -0
  3. package/example/src/chevre/{aggregateAllEvents.ts → aggregation/createAggregateEventTasks.ts} +26 -13
  4. package/example/src/chevre/aggregation/searchAggregateReservations.ts +33 -0
  5. package/example/src/chevre/searchEvents.ts +4 -4
  6. package/example/src/chevre/transaction/processPlaceOrder.ts +1 -2
  7. package/example/src/chevre/unsetUnnecessaryFields.ts +4 -4
  8. package/lib/chevre/credentials.d.ts +7 -0
  9. package/lib/chevre/credentials.js +10 -6
  10. package/lib/chevre/repo/action.d.ts +2 -2
  11. package/lib/chevre/repo/action.js +64 -49
  12. package/lib/chevre/repo/aggregateReservation.d.ts +68 -0
  13. package/lib/chevre/repo/aggregateReservation.js +135 -0
  14. package/lib/chevre/repo/event.d.ts +16 -14
  15. package/lib/chevre/repo/event.js +62 -20
  16. package/lib/chevre/repo/mongoose/schemas/action.js +18 -0
  17. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.d.ts +5 -0
  18. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +84 -0
  19. package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
  20. package/lib/chevre/repo/offer.d.ts +5 -0
  21. package/lib/chevre/repository.d.ts +5 -0
  22. package/lib/chevre/repository.js +15 -2
  23. package/lib/chevre/service/aggregation/event/aggregateOffers.d.ts +31 -0
  24. package/lib/chevre/service/aggregation/event/aggregateOffers.js +290 -0
  25. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.d.ts +3 -4
  26. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +33 -238
  27. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.d.ts +2 -0
  28. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -15
  29. package/lib/chevre/service/aggregation/event/findEventOffers.d.ts +2 -2
  30. package/lib/chevre/service/aggregation/event/findEventOffers.js +0 -2
  31. package/lib/chevre/service/aggregation/event.d.ts +2 -1
  32. package/lib/chevre/service/aggregation/event.js +3 -1
  33. package/lib/chevre/service/assetTransaction/pay.d.ts +4 -1
  34. package/lib/chevre/service/assetTransaction/pay.js +53 -27
  35. package/lib/chevre/service/assetTransaction/reserve.js +2 -1
  36. package/lib/chevre/service/event.js +16 -23
  37. package/lib/chevre/service/notification.js +0 -102
  38. package/lib/chevre/service/offer/onEventChanged.d.ts +25 -0
  39. package/lib/chevre/service/offer/onEventChanged.js +232 -0
  40. package/lib/chevre/service/offer.d.ts +0 -40
  41. package/lib/chevre/service/offer.js +1 -184
  42. package/lib/chevre/service/payment/any.d.ts +4 -2
  43. package/lib/chevre/service/payment/any.js +76 -48
  44. package/lib/chevre/service/payment/creditCard.js +14 -7
  45. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.js +1 -9
  46. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +2 -2
  47. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -2
  48. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -2
  49. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -2
  50. package/lib/chevre/service/task/aggregateOffers.d.ts +7 -0
  51. package/lib/chevre/service/task/aggregateOffers.js +47 -0
  52. package/lib/chevre/service/task/aggregateScreeningEvent.js +0 -2
  53. package/lib/chevre/service/task/aggregateUseActionsOnEvent.js +2 -0
  54. package/lib/chevre/service/task/onEventChanged.js +2 -2
  55. package/lib/chevre/service/transaction/returnOrder/preStart.js +0 -18
  56. package/lib/chevre/settings.d.ts +1 -0
  57. package/lib/chevre/settings.js +2 -1
  58. package/package.json +3 -3
@@ -2,12 +2,12 @@
2
2
  import * as mongoose from 'mongoose';
3
3
  import * as redis from 'redis';
4
4
 
5
- import { chevre } from '../../../lib/index';
5
+ import { chevre } from '../../../../lib/index';
6
6
 
7
7
  // const project = { id: <string>process.env.PROJECT_ID };
8
8
 
9
9
  async function main() {
10
- await mongoose.connect(<string>process.env.MONGOLAB_URI);
10
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
11
11
  const client = redis.createClient<redis.RedisDefaultModules, Record<string, never>, Record<string, never>>({
12
12
  socket: {
13
13
  port: Number(<string>process.env.REDIS_PORT),
@@ -28,7 +28,6 @@ async function main() {
28
28
  offerRateLimit: await chevre.repository.rateLimit.Offer.createInstance(client),
29
29
  place: await chevre.repository.Place.createInstance(mongoose.connection),
30
30
  product: await chevre.repository.Product.createInstance(mongoose.connection),
31
- project: await chevre.repository.Project.createInstance(mongoose.connection),
32
31
  reservation: await chevre.repository.Reservation.createInstance(mongoose.connection),
33
32
  task: await chevre.repository.Task.createInstance(mongoose.connection)
34
33
  });
@@ -0,0 +1,82 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+ import * as redis from 'redis';
4
+
5
+ import { chevre } from '../../../../lib/index';
6
+
7
+ const project = { id: <string>process.env.PROJECT_ID };
8
+ const EVENT_ID = String(process.env.EVENT_ID);
9
+
10
+ // tslint:disable-next-line:max-func-body-length
11
+ async function main() {
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
+ const client = redis.createClient<redis.RedisDefaultModules, Record<string, never>, Record<string, never>>({
14
+ socket: {
15
+ port: Number(<string>process.env.REDIS_PORT),
16
+ host: <string>process.env.REDIS_HOST
17
+ },
18
+ password: <string>process.env.REDIS_KEY
19
+ });
20
+ await client.connect();
21
+
22
+ const aggregateReservationRepo = await chevre.repository.AggregateReservation.createInstance(mongoose.connection);
23
+ let aggregateReservations = await aggregateReservationRepo.searchWithReservationForId(
24
+ {
25
+ limit: 100,
26
+ page: 1,
27
+ project: { id: { $eq: project.id } },
28
+ reservationFor: {
29
+ id: { $eq: EVENT_ID },
30
+ typeOf: chevre.factory.eventType.ScreeningEvent
31
+ }
32
+ },
33
+ ['aggregateEntranceGate', 'aggregateOffer']
34
+ );
35
+ console.log('aggregateReservations:', aggregateReservations);
36
+
37
+ await (await chevre.service.aggregation.createService()).event.aggregateOffers({
38
+ id: EVENT_ID,
39
+ typeOf: chevre.factory.eventType.ScreeningEvent
40
+ })({
41
+ aggregateReservation: aggregateReservationRepo,
42
+ event: await chevre.repository.Event.createInstance(mongoose.connection),
43
+ stockHolder: await chevre.repository.StockHolder.createInstance(client, mongoose.connection),
44
+ offer: await chevre.repository.Offer.createInstance(mongoose.connection),
45
+ offerCatalog: await chevre.repository.OfferCatalog.createInstance(mongoose.connection),
46
+ offerRateLimit: await chevre.repository.rateLimit.Offer.createInstance(client),
47
+ place: await chevre.repository.Place.createInstance(mongoose.connection),
48
+ product: await chevre.repository.Product.createInstance(mongoose.connection),
49
+ reservation: await chevre.repository.Reservation.createInstance(mongoose.connection),
50
+ task: await chevre.repository.Task.createInstance(mongoose.connection)
51
+ });
52
+ console.log('aggregateReserveAction processed.');
53
+
54
+ aggregateReservations = await aggregateReservationRepo.searchWithReservationForId(
55
+ {
56
+ limit: 1,
57
+ page: 1,
58
+ sort: { 'reservationFor.startDate': 1 },
59
+ project: { id: { $eq: project.id } },
60
+ reservationFor: {
61
+ id: {
62
+ $eq: EVENT_ID,
63
+ $in: [EVENT_ID]
64
+ },
65
+ typeOf: chevre.factory.eventType.ScreeningEvent
66
+ // startFrom: moment()
67
+ // .toDate(),
68
+ // startThrough: moment()
69
+ // .add(1, 'minutes')
70
+ // .toDate()
71
+ }
72
+ },
73
+ []
74
+ );
75
+ console.log('aggregateReservations:', aggregateReservations);
76
+ }
77
+
78
+ main()
79
+ .then(() => {
80
+ console.log('success!');
81
+ })
82
+ .catch(console.error);
@@ -1,10 +1,10 @@
1
1
  // tslint:disable:no-console
2
- // import * as moment from 'moment';
2
+ import * as moment from 'moment';
3
3
  import * as mongoose from 'mongoose';
4
4
 
5
- import { chevre } from '../../../lib/index';
5
+ import { chevre } from '../../../../lib/index';
6
6
 
7
- const project = { typeOf: chevre.factory.organizationType.Project, id: String(process.env.PROJECT_ID) };
7
+ const PROJECT = { typeOf: chevre.factory.organizationType.Project, id: String(process.env.PROJECT_ID) };
8
8
 
9
9
  async function main() {
10
10
  await mongoose.connect(<string>process.env.MONGOLAB_URI);
@@ -12,18 +12,21 @@ async function main() {
12
12
  const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection);
13
13
  const taskRepo = await chevre.repository.Task.createInstance(mongoose.connection);
14
14
 
15
- const now = new Date();
16
-
17
- const events = await eventRepo.search<chevre.factory.eventType.ScreeningEvent>(
15
+ const events = <Pick<
16
+ chevre.factory.event.IEvent<chevre.factory.eventType.ScreeningEvent>,
17
+ 'id' | 'typeOf' | 'startDate' | 'project'
18
+ >[]>await eventRepo.search<chevre.factory.eventType.ScreeningEvent>(
18
19
  {
19
20
  typeOf: chevre.factory.eventType.ScreeningEvent,
20
- project: { id: { $eq: project.id } },
21
- startFrom: now
21
+ project: { id: { $eq: PROJECT.id } },
22
+ startFrom: moment()
23
+ .add(-1, 'days')
24
+ .toDate()
22
25
  // startFrom: moment().add(-1, 'day').toDate(),
23
26
  // startThrough: moment().add(1, 'day').toDate(),
24
27
  // startThrough: now
25
28
  },
26
- [],
29
+ ['id', 'typeOf', 'startDate', 'project'],
27
30
  []
28
31
  );
29
32
 
@@ -31,8 +34,8 @@ async function main() {
31
34
  console.log(events.length);
32
35
  // return;
33
36
 
34
- const tasks = [];
35
- for (const event of events) {
37
+ const tasks: chevre.factory.task.aggregateScreeningEvent.IAttributes[] = [];
38
+ for (const { id, typeOf, startDate, project } of events) {
36
39
  const aggregateTask: chevre.factory.task.aggregateScreeningEvent.IAttributes = {
37
40
  name: chevre.factory.taskName.AggregateScreeningEvent,
38
41
  project: { typeOf: chevre.factory.organizationType.Project, id: project.id },
@@ -41,10 +44,20 @@ async function main() {
41
44
  remainingNumberOfTries: 1,
42
45
  numberOfTried: 0,
43
46
  executionResults: [],
44
- data: { typeOf: event.typeOf, id: event.id }
47
+ data: { typeOf, id }
45
48
  };
49
+ // const aggregateUseActionsTask: chevre.factory.task.aggregateUseActionsOnEvent.IAttributes = {
50
+ // name: chevre.factory.taskName.AggregateUseActionsOnEvent,
51
+ // project: { typeOf: chevre.factory.organizationType.Project, id: project.id },
52
+ // status: chevre.factory.taskStatus.Ready,
53
+ // runsAt: new Date(),
54
+ // remainingNumberOfTries: 1,
55
+ // numberOfTried: 0,
56
+ // executionResults: [],
57
+ // data: { typeOf, id }
58
+ // };
46
59
  tasks.push(aggregateTask);
47
- console.log('task created', event.id);
60
+ console.log('task created', project.id, id, startDate);
48
61
  }
49
62
 
50
63
  console.log('creating...', tasks.length, 'tasks');
@@ -0,0 +1,33 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ const project = { id: <string>process.env.PROJECT_ID };
7
+ const EVENT_ID = String(process.env.EVENT_ID);
8
+
9
+ // tslint:disable-next-line:max-func-body-length
10
+ async function main() {
11
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
12
+
13
+ const aggregateReservationRepo = await chevre.repository.AggregateReservation.createInstance(mongoose.connection);
14
+ const aggregateReservations = await aggregateReservationRepo.searchWithReservationForId(
15
+ {
16
+ limit: 100,
17
+ page: 1,
18
+ project: { id: { $eq: project.id } },
19
+ reservationFor: {
20
+ id: { $eq: EVENT_ID },
21
+ typeOf: chevre.factory.eventType.ScreeningEvent
22
+ }
23
+ },
24
+ ['aggregateEntranceGate', 'aggregateOffer']
25
+ );
26
+ console.log('aggregateReservations:', aggregateReservations);
27
+ }
28
+
29
+ main()
30
+ .then(() => {
31
+ console.log('success!');
32
+ })
33
+ .catch(console.error);
@@ -13,15 +13,15 @@ async function main() {
13
13
 
14
14
  const eventRepo: chevre.repository.Event = await chevre.repository.Event.createInstance(mongoose.connection);
15
15
 
16
- const events = await eventRepo.search(
16
+ const events = await eventRepo.search<chevre.factory.eventType.ScreeningEvent>(
17
17
  {
18
18
  limit: 100,
19
19
  page: 1,
20
20
  // sort: { startDate: 1 },
21
- // typeOf: chevre.factory.eventType.ScreeningEvent,
22
- project: { id: { $eq: PROJECT_ID } },
21
+ typeOf: chevre.factory.eventType.ScreeningEvent,
22
+ project: { id: { $eq: PROJECT_ID } }
23
23
  // id: { $eq: 'al6aff83y' },
24
- typeOfIn: [chevre.factory.eventType.Event, chevre.factory.eventType.ScreeningEvent]
24
+ // typeOfIn: [chevre.factory.eventType.Event, chevre.factory.eventType.ScreeningEvent]
25
25
  },
26
26
  ['_id', 'name'],
27
27
  []
@@ -50,7 +50,6 @@ async function main() {
50
50
  project: { id: project.id },
51
51
  agent: { id: CLIENT_ID },
52
52
  object: {
53
- typeOf: chevre.factory.action.authorize.paymentMethod.any.ResultType.Payment,
54
53
  amount: AMOUNT,
55
54
  paymentMethod: paymentMethodType,
56
55
  issuedThrough: { id: paymentServiceId },
@@ -67,6 +66,7 @@ async function main() {
67
66
  id: CLIENT_ID
68
67
  }
69
68
  })({
69
+ action: await chevre.repository.Action.createInstance(mongoose.connection),
70
70
  assetTransaction: await chevre.repository.AssetTransaction.createInstance(mongoose.connection),
71
71
  paymentAccepted: await chevre.repository.SellerPaymentAccepted.createInstance(mongoose.connection),
72
72
  paymentService: await chevre.repository.PaymentService.createInstance(mongoose.connection),
@@ -99,7 +99,6 @@ async function main() {
99
99
  project: { id: project.id },
100
100
  agent: { id: CLIENT_ID },
101
101
  object: {
102
- typeOf: chevre.factory.action.authorize.paymentMethod.any.ResultType.Payment,
103
102
  amount: AMOUNT,
104
103
  paymentMethodId: publishPaymentUrlResult.paymentMethodId,
105
104
  paymentMethod: paymentMethodType,
@@ -9,17 +9,17 @@ async function main() {
9
9
  let updateResult: any;
10
10
 
11
11
  const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection);
12
- updateResult = await eventRepo.unsetUnnecessaryFields({
12
+ updateResult = await eventRepo.unsetUnnecessaryFields<chevre.factory.eventType.ScreeningEvent>({
13
13
  filter: {
14
14
  typeOf: {
15
15
  $in: [
16
- chevre.factory.eventType.ScreeningEventSeries
16
+ chevre.factory.eventType.ScreeningEvent
17
17
  ]
18
18
  }
19
19
  },
20
20
  $unset: <any>{
21
- checkInCount: 1,
22
- attendeeCount: 1
21
+ aggregateEntranceGate: 1,
22
+ 'aggregateOffer.offers': 1
23
23
  }
24
24
  });
25
25
  console.log('unset processed.', updateResult);
@@ -33,7 +33,14 @@ export declare const credentials: {
33
33
  accessTokenAlert: string;
34
34
  };
35
35
  movieticketReserve: {
36
+ /**
37
+ * 着券時タイムアウト
38
+ */
36
39
  timeout: number;
40
+ /**
41
+ * 認証時タイムアウト
42
+ */
43
+ timeoutCheck: number;
37
44
  };
38
45
  sendGrid: {
39
46
  apiKey: string | undefined;
@@ -29,7 +29,7 @@ exports.credentials = {
29
29
  },
30
30
  gmo: {
31
31
  // tslint:disable-next-line:no-magic-numbers
32
- timeout: (typeof process.env.GMO_TIMEOUT === 'string') ? Number(process.env.GMO_TIMEOUT) : 10000,
32
+ timeout: (typeof process.env.GMO_TIMEOUT === 'string') ? Number(process.env.GMO_TIMEOUT) : 5000,
33
33
  useFetch: process.env.GMO_USE_FETCH === '1'
34
34
  },
35
35
  lineNotify: {
@@ -38,16 +38,20 @@ exports.credentials = {
38
38
  accessTokenAlert: process.env.LINE_NOTIFY_ACCESS_TOKEN_ALERT
39
39
  },
40
40
  movieticketReserve: {
41
+ /**
42
+ * 着券時タイムアウト
43
+ */
41
44
  // tslint:disable-next-line:no-magic-numbers
42
- timeout: (typeof process.env.MVTK_TIMEOUT === 'string') ? Number(process.env.MVTK_TIMEOUT) : 10000
45
+ timeout: (typeof process.env.MVTK_TIMEOUT === 'string') ? Number(process.env.MVTK_TIMEOUT) : 5000,
46
+ /**
47
+ * 認証時タイムアウト
48
+ */
49
+ // tslint:disable-next-line:no-magic-numbers
50
+ timeoutCheck: (typeof process.env.MVTK_TIMEOUT_CHECK === 'string') ? Number(process.env.MVTK_TIMEOUT_CHECK) : 5000
43
51
  },
44
52
  sendGrid: {
45
53
  apiKey: process.env.SENDGRID_API_KEY
46
54
  },
47
- // discontinue(2023-12-12~)
48
- // hub: {
49
- // clientId: <string>process.env.HUB_CLIENT_ID
50
- // },
51
55
  jwt: {
52
56
  secret: process.env.TOKEN_SECRET,
53
57
  issuer: process.env.RESOURCE_SERVER_IDENTIFIER
@@ -89,7 +89,7 @@ export declare class MongoRepository {
89
89
  giveUpWithObject(params: {
90
90
  typeOf: factory.actionType;
91
91
  id: string;
92
- error: Error;
92
+ error: Error | Error[];
93
93
  }): Promise<IAction<factory.actionType>>;
94
94
  /**
95
95
  * アクション失敗
@@ -97,7 +97,7 @@ export declare class MongoRepository {
97
97
  giveUp(params: {
98
98
  typeOf: factory.actionType;
99
99
  id: string;
100
- error: Error;
100
+ error: Error | Error[];
101
101
  }): Promise<void>;
102
102
  /**
103
103
  * アクション再開