@chevre/domain 21.2.0-alpha.99 → 21.2.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 (162) hide show
  1. package/example/src/chevre/aggregateEventReservation.ts +1 -1
  2. package/example/src/chevre/aggregateSellerPaymentAccepted.ts +27 -0
  3. package/example/src/chevre/aggregation/aggregateSystem.ts +53 -22
  4. package/example/src/chevre/countDelayedTasks.ts +7 -2
  5. package/example/src/chevre/createManyEventsIfNotExist.ts +199 -46
  6. package/example/src/chevre/findScreeningRoomsByBranchCode.ts +4 -3
  7. package/example/src/chevre/giveUpStartDatePassedCertainPeriod.ts +56 -0
  8. package/example/src/chevre/lockStockHolder.ts +5 -2
  9. package/example/src/chevre/migrateCategoryCodeAdditionalProperties.ts +116 -0
  10. package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
  11. package/example/src/chevre/processRegisterMembership.ts +8 -4
  12. package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
  13. package/example/src/chevre/processReserve.ts +1 -1
  14. package/example/src/chevre/searchAbortedTasks.ts +4 -6
  15. package/example/src/chevre/searchEventSeats.ts +5 -2
  16. package/example/src/chevre/searchHoldReservations.ts +38 -0
  17. package/example/src/chevre/searchPermissions.ts +54 -0
  18. package/example/src/chevre/searchScreeningRooms.ts +35 -0
  19. package/example/src/chevre/sendEmailMessage.ts +1 -2
  20. package/example/src/chevre/syncScreeningRooms.ts +22 -0
  21. package/example/src/chevre/syncScreeningRoomsAll.ts +44 -0
  22. package/example/src/chevre/unsetContainsInPlaceFromMovieTheater.ts +41 -0
  23. package/lib/chevre/factory/order.d.ts +4 -1
  24. package/lib/chevre/factory/order.js +19 -6
  25. package/lib/chevre/repo/account.js +3 -2
  26. package/lib/chevre/repo/accountTransaction.js +2 -1
  27. package/lib/chevre/repo/accountingReport.d.ts +1 -3
  28. package/lib/chevre/repo/action.d.ts +50 -1
  29. package/lib/chevre/repo/action.js +53 -2
  30. package/lib/chevre/repo/additionalProperty.js +2 -1
  31. package/lib/chevre/repo/aggregation.d.ts +3 -0
  32. package/lib/chevre/repo/aggregation.js +3 -0
  33. package/lib/chevre/repo/assetTransaction.js +6 -5
  34. package/lib/chevre/repo/categoryCode.d.ts +1 -1
  35. package/lib/chevre/repo/categoryCode.js +37 -25
  36. package/lib/chevre/repo/code.js +3 -2
  37. package/lib/chevre/repo/comment.js +2 -1
  38. package/lib/chevre/repo/creativeWork.d.ts +1 -1
  39. package/lib/chevre/repo/creativeWork.js +35 -12
  40. package/lib/chevre/repo/customer.js +2 -1
  41. package/lib/chevre/repo/emailMessage.js +2 -1
  42. package/lib/chevre/repo/event.d.ts +30 -2
  43. package/lib/chevre/repo/event.js +87 -36
  44. package/lib/chevre/repo/member.d.ts +14 -0
  45. package/lib/chevre/repo/member.js +31 -3
  46. package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
  47. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +3 -3
  48. package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
  49. package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
  50. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +3 -3
  51. package/lib/chevre/repo/mongoose/schemas/order.d.ts +21 -21
  52. package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -0
  53. package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
  54. package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
  55. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +9 -9
  56. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +3 -3
  57. package/lib/chevre/repo/offer.js +3 -2
  58. package/lib/chevre/repo/offerCatalog.js +0 -27
  59. package/lib/chevre/repo/offerItemCondition.js +2 -1
  60. package/lib/chevre/repo/order.js +8 -7
  61. package/lib/chevre/repo/ownershipInfo.js +2 -7
  62. package/lib/chevre/repo/paymentServiceProvider.d.ts +65 -0
  63. package/lib/chevre/repo/paymentServiceProvider.js +156 -0
  64. package/lib/chevre/repo/place.d.ts +203 -27
  65. package/lib/chevre/repo/place.js +1726 -694
  66. package/lib/chevre/repo/priceSpecification.js +3 -2
  67. package/lib/chevre/repo/product.d.ts +5 -3
  68. package/lib/chevre/repo/product.js +92 -5
  69. package/lib/chevre/repo/project.js +2 -1
  70. package/lib/chevre/repo/reservation.d.ts +9 -1
  71. package/lib/chevre/repo/reservation.js +29 -20
  72. package/lib/chevre/repo/role.d.ts +7 -0
  73. package/lib/chevre/repo/role.js +39 -2
  74. package/lib/chevre/repo/seller.d.ts +21 -1
  75. package/lib/chevre/repo/seller.js +59 -4
  76. package/lib/chevre/repo/serviceOutput.js +2 -1
  77. package/lib/chevre/repo/stockHolder.d.ts +143 -7
  78. package/lib/chevre/repo/stockHolder.js +622 -104
  79. package/lib/chevre/repo/task.d.ts +12 -1
  80. package/lib/chevre/repo/task.js +17 -7
  81. package/lib/chevre/repo/transaction.js +6 -5
  82. package/lib/chevre/repo/trip.js +2 -1
  83. package/lib/chevre/repository.d.ts +6 -0
  84. package/lib/chevre/repository.js +8 -1
  85. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +18 -8
  86. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
  87. package/lib/chevre/service/aggregation/system.d.ts +43 -1
  88. package/lib/chevre/service/aggregation/system.js +112 -2
  89. package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -1
  90. package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
  91. package/lib/chevre/service/assetTransaction/pay.js +2 -2
  92. package/lib/chevre/service/assetTransaction/refund.js +1 -1
  93. package/lib/chevre/service/assetTransaction/reserve.js +10 -3
  94. package/lib/chevre/service/event.d.ts +3 -0
  95. package/lib/chevre/service/event.js +52 -21
  96. package/lib/chevre/service/iam.d.ts +6 -2
  97. package/lib/chevre/service/iam.js +23 -9
  98. package/lib/chevre/service/offer/event/factory.js +22 -13
  99. package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
  100. package/lib/chevre/service/offer/eventServiceByCOA/factory.js +15 -8
  101. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
  102. package/lib/chevre/service/offer/product/factory.js +13 -6
  103. package/lib/chevre/service/offer/product.js +2 -2
  104. package/lib/chevre/service/offer.d.ts +16 -8
  105. package/lib/chevre/service/offer.js +71 -8
  106. package/lib/chevre/service/order/createAccountingReportIfNotExist.js +31 -17
  107. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +1 -1
  108. package/lib/chevre/service/order/onOrderStatusChanged.js +2 -2
  109. package/lib/chevre/service/order/placeOrder.js +4 -4
  110. package/lib/chevre/service/order/returnOrder.js +1 -1
  111. package/lib/chevre/service/order/sendOrder.js +3 -3
  112. package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +4 -6
  113. package/lib/chevre/service/payment/any/onRefund.js +46 -42
  114. package/lib/chevre/service/payment/creditCard.js +2 -2
  115. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +1 -1
  116. package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
  117. package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
  118. package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
  119. package/lib/chevre/service/payment/movieTicket/validation.js +16 -9
  120. package/lib/chevre/service/payment/movieTicket.js +2 -2
  121. package/lib/chevre/service/reserve/cancelReservation.js +15 -3
  122. package/lib/chevre/service/reserve/confirmReservation.js +19 -11
  123. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  124. package/lib/chevre/service/task/cancelPendingReservation.js +1 -1
  125. package/lib/chevre/service/task/cancelReservation.js +1 -1
  126. package/lib/chevre/service/task/deleteTransaction.js +2 -0
  127. package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
  128. package/lib/chevre/service/task/onEventChanged.js +29 -0
  129. package/lib/chevre/service/task/onResourceUpdated.d.ts +7 -0
  130. package/lib/chevre/service/task/onResourceUpdated.js +396 -0
  131. package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
  132. package/lib/chevre/service/task/syncScreeningRooms.js +24 -0
  133. package/lib/chevre/service/task/voidReserveTransaction.js +1 -1
  134. package/lib/chevre/service/transaction/deleteTransaction.d.ts +2 -0
  135. package/lib/chevre/service/transaction/deleteTransaction.js +129 -1
  136. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +1 -0
  137. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
  138. package/lib/chevre/service/transaction/moneyTransfer.js +1 -1
  139. package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
  140. package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
  141. package/lib/chevre/service/transaction/orderProgramMembership.js +1 -1
  142. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +1 -0
  143. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/givePointAward.js +1 -1
  144. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  145. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  146. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/sendEmailMessage.js +4 -4
  147. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.js +3 -4
  148. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +8 -12
  149. package/lib/chevre/service/transaction/placeOrderInProgress.js +6 -4
  150. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +1 -0
  151. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnMoneyTransfer.js +2 -2
  152. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +5 -5
  153. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +2 -2
  154. package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +3 -3
  155. package/lib/chevre/service/transaction/returnOrder/potentialActions.js +1 -1
  156. package/lib/chevre/service/transaction/returnOrder.js +3 -1
  157. package/lib/chevre/settings.d.ts +11 -0
  158. package/lib/chevre/settings.js +44 -2
  159. package/package.json +3 -3
  160. package/example/src/chevre/eventCatalog2eventService.ts +0 -123
  161. package/example/src/chevre/migrateOrderAdditionalProperties.ts +0 -85
  162. package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
@@ -0,0 +1,116 @@
1
+ // tslint:disable:no-console
2
+ // import * as moment from 'moment';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { chevre } from '../../../lib/index';
6
+
7
+ // const project = { id: String(process.env.PROJECT_ID) };
8
+ // const EXCLUDED_PROJECT_ID = process.env.EXCLUDED_PROJECT_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
+
14
+ const additionalPropertyRepo = new chevre.repository.AdditionalProperty(mongoose.connection);
15
+ const categoryCodeRepo = new chevre.repository.CategoryCode(mongoose.connection);
16
+
17
+ const cursor = categoryCodeRepo.getCursor(
18
+ {
19
+ // 'project.id': { $eq: project.id },
20
+ // 'project.id': { $ne: EXCLUDED_PROJECT_ID },
21
+ },
22
+ {
23
+ // paymentMethods: 1,
24
+ // project: 1,
25
+ // orderDate: 1
26
+ }
27
+ );
28
+ console.log('categoryCodes found');
29
+
30
+ const additionalPropertyNames: string[] = [];
31
+ const projectIds: string[] = [];
32
+ const unexpextedprojectIds: string[] = [];
33
+ let checked: number = 0;
34
+ let created: number = 0;
35
+
36
+ let i = 0;
37
+ await cursor.eachAsync(async (doc) => {
38
+ i += 1;
39
+ const categoryCode: chevre.factory.categoryCode.ICategoryCode = doc.toObject();
40
+
41
+ const additionalPropertyNamesOnResource = (Array.isArray(categoryCode.additionalProperty))
42
+ ? categoryCode.additionalProperty?.map((p) => p.name)
43
+ : [];
44
+ if (Array.isArray(additionalPropertyNamesOnResource) && additionalPropertyNamesOnResource.length > 0) {
45
+ console.log(
46
+ additionalPropertyNamesOnResource.join(','),
47
+ additionalPropertyNamesOnResource.length,
48
+ 'additionalPropertyNamesOnResource found',
49
+ categoryCode.project.id,
50
+ categoryCode.codeValue
51
+ );
52
+ additionalPropertyNames.push(...additionalPropertyNamesOnResource);
53
+ projectIds.push(categoryCode.project.id);
54
+ additionalPropertyNamesOnResource.forEach((name) => {
55
+ if (!name.match(/^[a-zA-Z]*$/)) {
56
+ // throw new Error(`not matched ${creativeWork.project.id} ${creativeWork.id}`);
57
+ unexpextedprojectIds.push(categoryCode.project.id);
58
+ }
59
+ // tslint:disable-next-line:no-magic-numbers
60
+ if (name.length < 5) {
61
+ // throw new Error(`length matched ${creativeWork.project.id} ${creativeWork.id} ${name}`);
62
+ unexpextedprojectIds.push(categoryCode.project.id);
63
+ }
64
+ });
65
+
66
+ for (const additionalPropertyNameOnResource of additionalPropertyNamesOnResource) {
67
+ checked += 1;
68
+ const existingAdditionalProperties = await additionalPropertyRepo.search({
69
+ limit: 1,
70
+ project: { id: { $eq: categoryCode.project.id } },
71
+ codeValue: { $eq: additionalPropertyNameOnResource },
72
+ inCodeSet: { identifier: { $eq: categoryCode.typeOf } }
73
+ });
74
+ if (existingAdditionalProperties.length === 0) {
75
+ const additionalProperty: chevre.factory.additionalProperty.IAdditionalProperty = {
76
+ project: categoryCode.project,
77
+ // id?: string;
78
+ typeOf: 'CategoryCode',
79
+ codeValue: additionalPropertyNameOnResource,
80
+ inCodeSet: {
81
+ typeOf: 'CategoryCodeSet',
82
+ identifier: categoryCode.typeOf
83
+ },
84
+ name: { ja: additionalPropertyNameOnResource }
85
+ };
86
+ await additionalPropertyRepo.save({ attributes: additionalProperty });
87
+ created += 1;
88
+ console.log(
89
+ 'additionalProerty created',
90
+ additionalPropertyNameOnResource,
91
+ categoryCode.project.id,
92
+ categoryCode.codeValue
93
+ );
94
+ } else {
95
+ console.log(
96
+ 'additionalProerty existed',
97
+ additionalPropertyNameOnResource,
98
+ categoryCode.project.id,
99
+ categoryCode.codeValue
100
+ );
101
+ }
102
+
103
+ }
104
+ }
105
+ });
106
+ console.log(i, 'categoryCodes checked');
107
+ console.log('additionalPropertyNames:', [...new Set(additionalPropertyNames)]);
108
+ console.log('projectIds:', [...new Set(projectIds)]);
109
+ console.log('unexpextedprojectIds:', [...new Set(unexpextedprojectIds)]);
110
+ console.log('checked:', checked);
111
+ console.log('created:', created);
112
+ }
113
+
114
+ main()
115
+ .then()
116
+ .catch(console.error);
@@ -0,0 +1,79 @@
1
+ // tslint:disable:no-console
2
+ // import * as moment from 'moment';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { chevre } from '../../../lib/index';
6
+
7
+ // const project = { typeOf: chevre.factory.organizationType.Project, id: String(process.env.PROJECT_ID) };
8
+
9
+ const EXCLUDED_PROJECT_ID = process.env.EXCLUDED_PROJECT_ID;
10
+
11
+ async function main() {
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
+
14
+ const eventRepo = new chevre.repository.Event(mongoose.connection);
15
+
16
+ const cursor = eventRepo.getCursor(
17
+ {
18
+ 'project.id': {
19
+ // $eq: project.id,
20
+ $ne: EXCLUDED_PROJECT_ID
21
+ },
22
+ typeOf: { $eq: chevre.factory.eventType.ScreeningEventSeries },
23
+ 'workPerformed.version': { $exists: false }
24
+ // _id: { $eq: 'bl7ed6sq9' }
25
+ },
26
+ {
27
+ _id: 1,
28
+ workPerformed: 1,
29
+ project: 1,
30
+ location: 1,
31
+ startDate: 1,
32
+ typeOf: 1
33
+ }
34
+ );
35
+ console.log('events found');
36
+
37
+ let i = 0;
38
+ let updateCount = 0;
39
+ await cursor.eachAsync(async (doc) => {
40
+ i += 1;
41
+ const event: chevre.factory.event.screeningEventSeries.IEvent = doc.toObject();
42
+ const version = event.workPerformed.version;
43
+
44
+ const alreadyMigrated = typeof version === 'string' && version.length > 0;
45
+
46
+ if (alreadyMigrated) {
47
+ console.log('alreadyMigrated.', event.project.id, event.id, event.startDate, version, i);
48
+ } else {
49
+ // 既存施設コンテンツバージョンを検索
50
+ const { maxVersion } = await eventRepo.aggregateScreeningEventMaxVersion({
51
+ project: { id: { $eq: event.project.id } },
52
+ workPerformed: { identifier: { $eq: event.workPerformed.identifier } },
53
+ location: { branchCode: { $in: [event.location.branchCode] } }
54
+ });
55
+ console.log('maxVersion:', maxVersion);
56
+
57
+ const newVersion: string = `${Number(maxVersion) + 1}`;
58
+ console.log('updating event...', event.project.id, event.id, event.startDate, newVersion, i);
59
+ await eventRepo.updatePartiallyById({
60
+ id: event.id,
61
+ attributes: <any>{
62
+ typeOf: event.typeOf,
63
+ 'workPerformed.version': newVersion
64
+ }
65
+ });
66
+ updateCount += 1;
67
+ console.log('updated.', event.project.id, event.id, event.startDate, newVersion, i);
68
+ }
69
+ });
70
+
71
+ console.log(i, 'events checked');
72
+ console.log(updateCount, 'events updated');
73
+ }
74
+
75
+ main()
76
+ .then(() => {
77
+ console.log('success!');
78
+ })
79
+ .catch(console.error);
@@ -21,10 +21,14 @@ async function main() {
21
21
  const assetTransactionRepo = new chevre.repository.AssetTransaction(mongoose.connection);
22
22
 
23
23
  // プロダクト検索
24
- const products = await productRepo.search({
25
- project: { id: { $eq: project.id } },
26
- typeOf: { $eq: chevre.factory.product.ProductType.MembershipService }
27
- });
24
+ const products = await productRepo.search(
25
+ {
26
+ project: { id: { $eq: project.id } },
27
+ typeOf: { $eq: chevre.factory.product.ProductType.MembershipService }
28
+ },
29
+ [],
30
+ []
31
+ );
28
32
  console.log(products);
29
33
 
30
34
  const product = products[0];
@@ -21,10 +21,14 @@ async function main() {
21
21
  const assetTransactionRepo = new chevre.repository.AssetTransaction(mongoose.connection);
22
22
 
23
23
  // プロダクト検索
24
- const products = await productRepo.search({
25
- project: { id: { $eq: project.id } },
26
- typeOf: { $eq: chevre.factory.product.ProductType.PaymentCard }
27
- });
24
+ const products = await productRepo.search(
25
+ {
26
+ project: { id: { $eq: project.id } },
27
+ typeOf: { $eq: chevre.factory.product.ProductType.PaymentCard }
28
+ },
29
+ [],
30
+ []
31
+ );
28
32
  console.log(products);
29
33
 
30
34
  const product = products[0];
@@ -30,7 +30,7 @@ async function main() {
30
30
  const priceSpecRepo = new chevre.repository.PriceSpecification(mongoose.connection);
31
31
  const reservationRepo = new chevre.repository.Reservation(mongoose.connection);
32
32
  const eventRepo = new chevre.repository.Event(mongoose.connection);
33
- const itemAvailabilityRepo = new chevre.repository.StockHolder(client);
33
+ const itemAvailabilityRepo = new chevre.repository.StockHolder(client, mongoose.connection);
34
34
  const offerRateLimitRepo = new chevre.repository.rateLimit.Offer(client);
35
35
 
36
36
  const identifier = `CIN${(new Date()).valueOf()}`;
@@ -9,24 +9,22 @@ async function main() {
9
9
 
10
10
  const taskRepo = new chevre.repository.Task(mongoose.connection);
11
11
 
12
- const tasks = <chevre.factory.task.ITask<chevre.factory.taskName.ConfirmPayTransaction>[]>await taskRepo.search({
12
+ const tasks = <chevre.factory.task.ITask<chevre.factory.taskName.ConfirmReserveTransaction>[]>await taskRepo.search({
13
13
  // limit: 100,
14
14
  // page: 1,
15
15
  name: {
16
- $in: [chevre.factory.taskName.ConfirmPayTransaction]
16
+ $in: [chevre.factory.taskName.ConfirmReserveTransaction]
17
17
  // $nin: [
18
18
  // chevre.factory.taskName.ImportEventsFromCOA,
19
19
  // chevre.factory.taskName.ImportEventCapacitiesFromCOA
20
20
  // ]
21
21
  },
22
22
  statuses: [chevre.factory.taskStatus.Aborted],
23
- runsFrom: moment('2023-05-02T22:00:00Z')
23
+ runsFrom: moment('2023-06-02T22:00:00Z')
24
24
  .toDate(),
25
25
  sort: { runsAt: chevre.factory.sortType.Ascending }
26
26
  });
27
- console.log(tasks.map((task) => `${task.project.id},${task.id},${task.name},${moment(task.runsAt)
28
- .tz('Asia/Tokyo')
29
- .format('YYYY-MM-DDTHH:mm:ssZ')},"${task.data.object[0]?.transactionNumber}"`)
27
+ console.log(tasks.map((task) => `${task.data.object?.transactionNumber}`)
30
28
  .join('\n'));
31
29
  console.log(tasks.length);
32
30
  }
@@ -1,9 +1,10 @@
1
1
  // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
2
3
  import * as redis from 'redis';
3
4
 
4
5
  import { chevre } from '../../../lib/index';
5
6
 
6
- // const project = { id: String(process.env.PROJECT_ID) };
7
+ const project = { id: String(process.env.PROJECT_ID) };
7
8
 
8
9
  // tslint:disable-next-line:max-func-body-length
9
10
  async function main() {
@@ -16,11 +17,13 @@ async function main() {
16
17
  });
17
18
  await client.connect();
18
19
 
19
- const itemAvailabilityRepo = new chevre.repository.StockHolder(client);
20
+ const itemAvailabilityRepo = new chevre.repository.StockHolder(client, mongoose.connection);
20
21
 
21
22
  const result = await itemAvailabilityRepo.searchHolders({
23
+ project,
22
24
  eventId: 'alckc9mlx',
23
25
  startDate: new Date(),
26
+ hasTicketedSeat: true,
24
27
  offers: [
25
28
  {
26
29
  seatSection: 'Default',
@@ -0,0 +1,38 @@
1
+ // tslint:disable:no-console
2
+ // import * as redis from 'redis';
3
+ import * as mongoose from 'mongoose';
4
+ import * as redis from 'redis';
5
+
6
+ import { chevre } from '../../../lib/index';
7
+
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: true });
10
+ const client = redis.createClient<redis.RedisDefaultModules, Record<string, never>, Record<string, never>>({
11
+ socket: {
12
+ host: process.env.REDIS_HOST,
13
+ port: Number(process.env.REDIS_PORT)
14
+ },
15
+ password: process.env.REDIS_KEY
16
+ });
17
+ await client.connect();
18
+
19
+ const stockHolderRepo = new chevre.repository.StockHolder(client, mongoose.connection);
20
+
21
+ const holdReservations = await stockHolderRepo.search({
22
+ limit: 2,
23
+ page: 2,
24
+ sort: { 'reservationFor.startDate': chevre.factory.sortType.Ascending }
25
+ });
26
+ console.log(holdReservations);
27
+ console.log(holdReservations.length);
28
+
29
+ // const aggregations = await stockHolderRepo.aggregateByReservationFor({
30
+ // limit: 100,
31
+ // page: 1
32
+ // });
33
+ // console.log(aggregations);
34
+ }
35
+
36
+ main()
37
+ .then(console.log)
38
+ .catch(console.error);
@@ -0,0 +1,54 @@
1
+ // tslint:disable:no-console
2
+ import * as moment from 'moment';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { chevre } from '../../../lib/index';
6
+
7
+ const PROJECT_ID = String(process.env.PROJECT_ID);
8
+ const memberId = 'xxx';
9
+
10
+ async function main() {
11
+ await mongoose.connect(<string>process.env.MONGOLAB_URI);
12
+
13
+ const memberRepo = new chevre.repository.Member(mongoose.connection);
14
+ const roleRepo = new chevre.repository.Role(mongoose.connection);
15
+
16
+ let now: Date;
17
+
18
+ // let now = new Date();
19
+ // const aggregateRoleNamesResult = await memberRepo.aggregateRoleNames({
20
+ // project: { id: { $eq: PROJECT_ID } },
21
+ // member: { id: { $eq: memberId } }
22
+ // });
23
+
24
+ // const aggregatePermissionsResult = await roleRepo.aggregatePermissions({
25
+ // roleName: {
26
+ // $in: aggregateRoleNamesResult.map((r) => r.roleName)
27
+ // }
28
+ // });
29
+ // console.log('time cost:', moment()
30
+ // .diff(now));
31
+
32
+ now = new Date();
33
+ const searchPermissionsResult = await chevre.service.iam.searchPermissions({
34
+ project: { id: PROJECT_ID },
35
+ member: { id: memberId }
36
+ })({
37
+ member: memberRepo,
38
+ role: roleRepo
39
+ });
40
+ console.log('time cost:', moment()
41
+ .diff(now));
42
+
43
+ console.log(searchPermissionsResult);
44
+ console.log(searchPermissionsResult.permissions.length);
45
+
46
+ // console.log(aggregateRoleNamesResult);
47
+ // console.log(aggregateRoleNamesResult.length);
48
+ // console.log(aggregatePermissionsResult);
49
+ // console.log(aggregatePermissionsResult.length);
50
+ }
51
+
52
+ main()
53
+ .then(console.log)
54
+ .catch(console.error);
@@ -0,0 +1,35 @@
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
+
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
+
11
+ const placeRepo = new chevre.repository.Place(mongoose.connection);
12
+
13
+ const rooms = await placeRepo.searchScreeningRooms(
14
+ {
15
+ limit: 10,
16
+ page: 1,
17
+ $projection: { sectionCount: 1 }
18
+ },
19
+ true
20
+ );
21
+ console.log('place found', rooms);
22
+ const filteredRooms = rooms.filter((room) => typeof room.sectionCount === 'number' && room.sectionCount > 1);
23
+ console.log(filteredRooms.length, 'filteredRooms found');
24
+
25
+ const screeningRoom = await placeRepo.findScreeningRoomsByBranchCode({
26
+ branchCode: { $eq: rooms[0].branchCode },
27
+ containedInPlace: { id: { $eq: String(rooms[0].containedInPlace?.id) } },
28
+ useScreeningRoomType: true
29
+ });
30
+ console.log('screeningRoom found', screeningRoom);
31
+ }
32
+
33
+ main()
34
+ .then(console.log)
35
+ .catch(console.error);
@@ -61,8 +61,7 @@ async function main() {
61
61
  },
62
62
  customer: {
63
63
  typeOf: chevre.factory.creativeWorkType.WebApplication,
64
- id: 'xxxx',
65
- name: '****'
64
+ id: 'xxxx'
66
65
  },
67
66
  orderNumber: 'CIN1-3970498-5700993',
68
67
  price: 0,
@@ -0,0 +1,22 @@
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
+
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
+
11
+ const placeRepo = new chevre.repository.Place(mongoose.connection);
12
+
13
+ await placeRepo.syncScreeningRooms({
14
+ id: '60409176f60a46000a7a3787',
15
+ useScreeningRoomType: true
16
+ });
17
+ console.log('synced');
18
+ }
19
+
20
+ main()
21
+ .then(console.log)
22
+ .catch(console.error);
@@ -0,0 +1,44 @@
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
+
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
+
11
+ const placeRepo = new chevre.repository.Place(mongoose.connection);
12
+
13
+ const cursor = placeRepo.getCursor(
14
+ {
15
+ typeOf: { $eq: chevre.factory.placeType.MovieTheater }
16
+ },
17
+ {
18
+ _id: 1,
19
+ name: 1,
20
+ project: 1,
21
+ typeOf: 1
22
+ }
23
+ );
24
+ console.log('places found');
25
+
26
+ let i = 0;
27
+ await cursor.eachAsync(async (doc) => {
28
+ i += 1;
29
+ const { id, name, project, typeOf } = <Pick<chevre.factory.place.movieTheater.IPlace, 'id' | 'name' | 'project' | 'typeOf'>>
30
+ doc.toObject();
31
+
32
+ console.log('syncing...', project.id, typeOf, id, name.ja, i);
33
+ await placeRepo.syncScreeningRooms({
34
+ id,
35
+ useScreeningRoomType: true
36
+ });
37
+ console.log('synced.', project.id, typeOf, id, name.ja, i);
38
+ });
39
+
40
+ }
41
+
42
+ main()
43
+ .then(console.log)
44
+ .catch(console.error);
@@ -0,0 +1,41 @@
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
+
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
+
11
+ const placeRepo = new chevre.repository.Place(mongoose.connection);
12
+
13
+ const cursor = placeRepo.getCursor(
14
+ {
15
+ typeOf: { $eq: chevre.factory.placeType.MovieTheater }
16
+ },
17
+ {
18
+ _id: 1,
19
+ name: 1,
20
+ project: 1,
21
+ typeOf: 1
22
+ }
23
+ );
24
+ console.log('places found');
25
+
26
+ let i = 0;
27
+ await cursor.eachAsync(async (doc) => {
28
+ i += 1;
29
+ const { id, name, project, typeOf } = <Pick<chevre.factory.place.movieTheater.IPlace, 'id' | 'name' | 'project' | 'typeOf'>>
30
+ doc.toObject();
31
+
32
+ console.log('unset processing...', project.id, typeOf, id, name.ja, i);
33
+ const result = await placeRepo.unsetContainsPlaceFromMovieTheater({ id });
34
+ console.log('unset processed.', project.id, typeOf, id, name.ja, result?.id, i);
35
+ });
36
+
37
+ }
38
+
39
+ main()
40
+ .then(console.log)
41
+ .catch(console.error);
@@ -1,6 +1,9 @@
1
1
  import * as factory from '../factory';
2
2
  export declare const AWARD_ACCOUNTS_IDENTIFIER_NAME = "awardAccounts";
3
+ export type IMaskedCustomer = factory.order.ICustomer | Pick<factory.order.ICustomer, 'id' | 'typeOf'>;
3
4
  /**
4
5
  * 個人情報のマスクされたカスタマーを作成する
5
6
  */
6
- export declare function createMaskedCustomer(order: Pick<factory.order.IOrder, 'customer'>): factory.order.ICustomer;
7
+ export declare function createMaskedCustomer(order: Pick<factory.order.IOrder, 'customer'>, options: {
8
+ noProfile: boolean;
9
+ }): IMaskedCustomer;
@@ -6,11 +6,24 @@ const MASKED_PROFILE = '****';
6
6
  /**
7
7
  * 個人情報のマスクされたカスタマーを作成する
8
8
  */
9
- function createMaskedCustomer(order) {
10
- return Object.assign(Object.assign({}, order.customer), {
11
- // ↓identifierも隠蔽
12
- identifier: [],
13
- // ↓additionalPropertyも隠蔽
14
- additionalProperty: [], email: MASKED_PROFILE, telephone: MASKED_PROFILE, name: MASKED_PROFILE, familyName: MASKED_PROFILE, givenName: MASKED_PROFILE });
9
+ function createMaskedCustomer(order, options) {
10
+ // noProfileに対応する(2023-07-03~)
11
+ if ((options === null || options === void 0 ? void 0 : options.noProfile) === true) {
12
+ return {
13
+ id: order.customer.id,
14
+ typeOf: order.customer.typeOf
15
+ // ↓identifierも隠蔽
16
+ // identifier: [],
17
+ // ↓additionalPropertyも隠蔽
18
+ // additionalProperty: [],
19
+ };
20
+ }
21
+ else {
22
+ return Object.assign(Object.assign({}, order.customer), {
23
+ // ↓identifierも隠蔽
24
+ identifier: [],
25
+ // ↓additionalPropertyも隠蔽
26
+ additionalProperty: [], email: MASKED_PROFILE, telephone: MASKED_PROFILE, name: MASKED_PROFILE, familyName: MASKED_PROFILE, givenName: MASKED_PROFILE });
27
+ }
15
28
  }
16
29
  exports.createMaskedCustomer = createMaskedCustomer;
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = void 0;
13
13
  const account_1 = require("./mongoose/schemas/account");
14
14
  const factory = require("../factory");
15
+ const settings_1 = require("../settings");
15
16
  /**
16
17
  * 口座リポジトリ
17
18
  */
@@ -390,7 +391,7 @@ class MongoRepository {
390
391
  return __awaiter(this, void 0, void 0, function* () {
391
392
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
392
393
  return this.accountModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
393
- .setOptions({ maxTimeMS: 10000 })
394
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
394
395
  .exec();
395
396
  });
396
397
  }
@@ -419,7 +420,7 @@ class MongoRepository {
419
420
  if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.openDate) !== undefined) {
420
421
  query.sort({ openDate: params.sort.openDate });
421
422
  }
422
- return query.setOptions({ maxTimeMS: 10000 })
423
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
423
424
  .exec()
424
425
  .then((docs) => docs.map((doc) => doc.toObject()));
425
426
  });
@@ -13,6 +13,7 @@ exports.MongoRepository = void 0;
13
13
  const moment = require("moment");
14
14
  const accountTransaction_1 = require("./mongoose/schemas/accountTransaction");
15
15
  const factory = require("../factory");
16
+ const settings_1 = require("../settings");
16
17
  /**
17
18
  * 口座取引リポジトリ
18
19
  */
@@ -260,7 +261,7 @@ class MongoRepository {
260
261
  if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.startDate) !== undefined) {
261
262
  query.sort({ startDate: params.sort.startDate });
262
263
  }
263
- return query.setOptions({ maxTimeMS: 10000 })
264
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
264
265
  .exec()
265
266
  .then((docs) => docs.map((doc) => doc.toObject()));
266
267
  });
@@ -1,8 +1,6 @@
1
1
  import { Connection, Model } from 'mongoose';
2
2
  import * as factory from '../factory';
3
- export type IOrder4report = factory.order.IOrder & {
4
- numItems: number;
5
- };
3
+ export type IOrder4report = factory.report.accountingReport.IOrderAsMainEntity;
6
4
  export interface IAccountingReport {
7
5
  project: {
8
6
  id: string;