@chevre/domain 22.11.0-alpha.4 → 22.11.0-alpha.40

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 (184) hide show
  1. package/example/src/chevre/aggregation/aggregateOrderOfCustomer.ts +21 -10
  2. package/example/src/chevre/aggregation/aggregateTasks.ts +41 -0
  3. package/example/src/chevre/assetTransaction/processReserve.ts +0 -1
  4. package/example/src/chevre/checkCustomerAttributesLength.ts +109 -0
  5. package/example/src/chevre/notifyAbortedTasksByEmail.ts +1 -1
  6. package/example/src/chevre/reIndex.ts +1 -1
  7. package/example/src/chevre/roles/addAdminPermissionIfNotExists.ts +132 -0
  8. package/example/src/chevre/roles/addDefaultPermissionIfNotExists.ts +37 -0
  9. package/example/src/chevre/roles/addEventOfferPermissionIfNotExists.ts +27 -0
  10. package/example/src/chevre/roles/addPermissionIfNotExists.ts +39 -6
  11. package/example/src/chevre/roles/addProjectCreatorRole.ts +48 -0
  12. package/example/src/chevre/roles/assignGlobalRoles.ts +72 -0
  13. package/example/src/chevre/roles/findPermissions.ts +84 -0
  14. package/example/src/chevre/roles/findRoleNames.ts +117 -0
  15. package/example/src/chevre/roles/removeConsolePermissionIfExists.ts +38 -0
  16. package/example/src/chevre/roles/removePermissionFromAPIRoles.ts +46 -0
  17. package/example/src/chevre/roles/removePermissionIfExists.ts +39 -0
  18. package/example/src/chevre/searchEventSeats.ts +1 -1
  19. package/example/src/chevre/searchProducts.ts +28 -0
  20. package/example/src/chevre/settings/addSettings.ts +31 -17
  21. package/example/src/chevre/task/countPotentiallyRunning.ts +41 -0
  22. package/example/src/chevre/task/countTasks.ts +51 -0
  23. package/example/src/chevre/{deleteRunsAtPassedCertainPeriod.ts → task/deleteRunsAtPassedCertainPeriod.ts} +4 -3
  24. package/example/src/chevre/task/deleteUnexpectedTasks.ts +23 -0
  25. package/example/src/chevre/task/emitRunning.ts +89 -0
  26. package/example/src/chevre/unsetUnnecessaryFields.ts +8 -5
  27. package/example/src/idaas/auth0/adminApplications.ts +183 -0
  28. package/example/src/idaas/auth0/getToken.ts +55 -0
  29. package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +84 -0
  30. package/example/src/regex.ts +31 -0
  31. package/lib/chevre/eventEmitter/task.d.ts +29 -6
  32. package/lib/chevre/index.d.ts +0 -2
  33. package/lib/chevre/index.js +0 -10
  34. package/lib/chevre/repo/confirmationNumber.d.ts +0 -3
  35. package/lib/chevre/repo/confirmationNumber.js +12 -47
  36. package/lib/chevre/repo/identity.d.ts +11 -33
  37. package/lib/chevre/repo/identity.js +10 -15
  38. package/lib/chevre/repo/member.d.ts +22 -4
  39. package/lib/chevre/repo/member.js +81 -27
  40. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +1 -1
  41. package/lib/chevre/repo/mongoose/schemas/member/global.d.ts +14 -0
  42. package/lib/chevre/repo/mongoose/schemas/member/global.js +82 -0
  43. package/lib/chevre/repo/mongoose/schemas/product.js +9 -0
  44. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +15 -0
  45. package/lib/chevre/repo/mongoose/schemas/setting.js +1 -0
  46. package/lib/chevre/repo/mongoose/schemas/task.js +9 -0
  47. package/lib/chevre/repo/order.d.ts +17 -2
  48. package/lib/chevre/repo/order.js +47 -8
  49. package/lib/chevre/repo/orderNumber.d.ts +0 -3
  50. package/lib/chevre/repo/orderNumber.js +10 -44
  51. package/lib/chevre/repo/pendingReservation.js +1 -0
  52. package/lib/chevre/repo/product.js +12 -17
  53. package/lib/chevre/repo/role.d.ts +16 -4
  54. package/lib/chevre/repo/role.js +71 -32
  55. package/lib/chevre/repo/serviceOutputIdentifier.d.ts +0 -3
  56. package/lib/chevre/repo/serviceOutputIdentifier.js +10 -27
  57. package/lib/chevre/repo/setting.d.ts +5 -10
  58. package/lib/chevre/repo/setting.js +4 -7
  59. package/lib/chevre/repo/stockHolder.d.ts +4 -27
  60. package/lib/chevre/repo/stockHolder.js +163 -186
  61. package/lib/chevre/repo/task.d.ts +58 -38
  62. package/lib/chevre/repo/task.js +126 -296
  63. package/lib/chevre/repo/transaction.js +10 -10
  64. package/lib/chevre/repo/transactionNumber.d.ts +0 -3
  65. package/lib/chevre/repo/transactionNumber.js +10 -44
  66. package/lib/chevre/repo/transactionNumberCounter.d.ts +0 -10
  67. package/lib/chevre/repo/transactionNumberCounter.js +34 -29
  68. package/lib/chevre/service/assetTransaction/cancelReservation/start.d.ts +1 -1
  69. package/lib/chevre/service/assetTransaction/registerService.js +4 -0
  70. package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +19 -16
  71. package/lib/chevre/service/code.d.ts +5 -28
  72. package/lib/chevre/service/code.js +3 -79
  73. package/lib/chevre/service/iam.d.ts +17 -7
  74. package/lib/chevre/service/iam.js +26 -6
  75. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.d.ts +15 -0
  76. package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +38 -0
  77. package/lib/chevre/service/notification.d.ts +2 -1
  78. package/lib/chevre/service/notification.js +3 -1
  79. package/lib/chevre/service/offer/product.js +4 -0
  80. package/lib/chevre/service/order/confirmPayTransaction.d.ts +6 -1
  81. package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +3 -3
  82. package/lib/chevre/service/task/acceptCOAOffer.d.ts +1 -1
  83. package/lib/chevre/service/task/acceptCOAOffer.js +6 -5
  84. package/lib/chevre/service/task/aggregateOffers.d.ts +1 -1
  85. package/lib/chevre/service/task/aggregateOffers.js +1 -1
  86. package/lib/chevre/service/task/aggregateOnSystem.d.ts +4 -2
  87. package/lib/chevre/service/task/aggregateScreeningEvent.d.ts +1 -1
  88. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  89. package/lib/chevre/service/task/authorizePayment.d.ts +1 -1
  90. package/lib/chevre/service/task/authorizePayment.js +7 -6
  91. package/lib/chevre/service/task/cancelMoneyTransfer.d.ts +1 -1
  92. package/lib/chevre/service/task/cancelPendingReservation.d.ts +1 -1
  93. package/lib/chevre/service/task/cancelPendingReservation.js +1 -1
  94. package/lib/chevre/service/task/cancelReservation.d.ts +1 -1
  95. package/lib/chevre/service/task/cancelReservation.js +1 -1
  96. package/lib/chevre/service/task/checkMovieTicket.d.ts +1 -1
  97. package/lib/chevre/service/task/checkMovieTicket.js +4 -3
  98. package/lib/chevre/service/task/checkResource.d.ts +1 -1
  99. package/lib/chevre/service/task/checkResource.js +1 -1
  100. package/lib/chevre/service/task/confirmMoneyTransfer.d.ts +1 -1
  101. package/lib/chevre/service/task/confirmPayTransaction.d.ts +2 -2
  102. package/lib/chevre/service/task/confirmPayTransaction.js +3 -2
  103. package/lib/chevre/service/task/confirmRegisterService.d.ts +1 -1
  104. package/lib/chevre/service/task/confirmRegisterServiceTransaction.d.ts +1 -1
  105. package/lib/chevre/service/task/confirmReserveTransaction.d.ts +6 -2
  106. package/lib/chevre/service/task/confirmReserveTransaction.js +3 -3
  107. package/lib/chevre/service/task/createAccountingReport.d.ts +1 -1
  108. package/lib/chevre/service/task/createEvent.d.ts +1 -1
  109. package/lib/chevre/service/task/deletePerson.d.ts +1 -1
  110. package/lib/chevre/service/task/deleteTransaction.d.ts +1 -1
  111. package/lib/chevre/service/task/givePointAward.d.ts +1 -1
  112. package/lib/chevre/service/task/givePointAward.js +1 -1
  113. package/lib/chevre/service/task/handleNotification.d.ts +4 -2
  114. package/lib/chevre/service/task/importEventCapacitiesFromCOA.d.ts +1 -1
  115. package/lib/chevre/service/task/importEventsFromCOA.d.ts +1 -1
  116. package/lib/chevre/service/task/importOffersFromCOA.d.ts +1 -1
  117. package/lib/chevre/service/task/invalidatePaymentUrl.d.ts +1 -1
  118. package/lib/chevre/service/task/moneyTransfer.d.ts +1 -1
  119. package/lib/chevre/service/task/moneyTransfer.js +1 -1
  120. package/lib/chevre/service/task/onAssetTransactionStatusChanged.d.ts +1 -1
  121. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +1 -1
  122. package/lib/chevre/service/task/onEventChanged.d.ts +1 -1
  123. package/lib/chevre/service/task/onOrderPaymentCompleted.d.ts +1 -1
  124. package/lib/chevre/service/task/onResourceUpdated.d.ts +1 -1
  125. package/lib/chevre/service/task/pay.d.ts +1 -1
  126. package/lib/chevre/service/task/placeOrder.d.ts +1 -1
  127. package/lib/chevre/service/task/publishPaymentUrl.d.ts +1 -1
  128. package/lib/chevre/service/task/publishPaymentUrl.js +6 -7
  129. package/lib/chevre/service/task/refund.d.ts +1 -1
  130. package/lib/chevre/service/task/refund.js +1 -1
  131. package/lib/chevre/service/task/registerService.d.ts +1 -1
  132. package/lib/chevre/service/task/reserve.d.ts +1 -1
  133. package/lib/chevre/service/task/returnMoneyTransfer.d.ts +1 -1
  134. package/lib/chevre/service/task/returnMoneyTransfer.js +1 -1
  135. package/lib/chevre/service/task/returnOrder.d.ts +1 -1
  136. package/lib/chevre/service/task/returnPayTransaction.d.ts +1 -1
  137. package/lib/chevre/service/task/returnPayTransaction.js +1 -1
  138. package/lib/chevre/service/task/returnPointAward.d.ts +1 -1
  139. package/lib/chevre/service/task/returnPointAward.js +1 -1
  140. package/lib/chevre/service/task/returnReserveTransaction.d.ts +1 -1
  141. package/lib/chevre/service/task/returnReserveTransaction.js +1 -1
  142. package/lib/chevre/service/task/sendEmailMessage.d.ts +1 -1
  143. package/lib/chevre/service/task/sendOrder.d.ts +1 -1
  144. package/lib/chevre/service/task/triggerWebhook.d.ts +1 -1
  145. package/lib/chevre/service/task/useReservation.d.ts +1 -1
  146. package/lib/chevre/service/task/voidMoneyTransferTransaction.d.ts +1 -1
  147. package/lib/chevre/service/task/voidPayTransaction.d.ts +1 -1
  148. package/lib/chevre/service/task/voidPayment.d.ts +1 -1
  149. package/lib/chevre/service/task/voidRegisterServiceTransaction.d.ts +1 -1
  150. package/lib/chevre/service/task/voidReserveTransaction.d.ts +1 -1
  151. package/lib/chevre/service/task/voidReserveTransaction.js +5 -4
  152. package/lib/chevre/service/task.d.ts +7 -29
  153. package/lib/chevre/service/task.js +9 -114
  154. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.d.ts +11 -0
  155. package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +105 -0
  156. package/lib/chevre/service/taskHandler/onOperationFailed.d.ts +17 -0
  157. package/lib/chevre/service/taskHandler/onOperationFailed.js +70 -0
  158. package/lib/chevre/service/taskHandler.d.ts +26 -0
  159. package/lib/chevre/service/taskHandler.js +97 -0
  160. package/lib/chevre/service/validation/validateEvent.d.ts +2 -2
  161. package/lib/chevre/service/validation/validateEvent.js +16 -10
  162. package/lib/chevre/service/validation/validateOrder.js +55 -37
  163. package/lib/chevre/service.d.ts +0 -4
  164. package/lib/chevre/service.js +10 -14
  165. package/lib/chevre/settings/aggregation.d.ts +6 -1
  166. package/lib/chevre/settings/aggregation.js +2 -1
  167. package/package.json +6 -4
  168. package/example/src/chevre/adminAuth/adminIdentity.ts +0 -38
  169. package/example/src/chevre/executeOneTask.ts +0 -41
  170. package/example/src/chevre/executeTaskIfExists.ts +0 -80
  171. package/example/src/chevre/findExecutableTask.ts +0 -50
  172. package/example/src/chevre/findSetting.ts +0 -79
  173. package/example/src/chevre/roles/addRoleMembers.ts +0 -75
  174. package/example/src/chevre/searchPermissions.ts +0 -46
  175. package/example/src/chevre/searchProductOffers.ts +0 -29
  176. package/example/src/chevre/stockHolder/checkIfConflicted.ts +0 -76
  177. package/example/src/chevre/stockHolder/checkRedisKeyCount.ts +0 -195
  178. package/example/src/chevre/stockHolder/migratePendingReservations.ts +0 -96
  179. package/example/src/chevre/stockHolder/playAroundStockHolder.ts +0 -256
  180. package/example/src/chevre/transactionNumber/publishConfimationNumber.ts +0 -37
  181. package/example/src/chevre/transactionNumber/publishOrderNumber.ts +0 -40
  182. package/example/src/chevre/upsertProductsByProductId.ts +0 -100
  183. package/lib/chevre/adminAuth.d.ts +0 -2
  184. package/lib/chevre/adminAuth.js +0 -6
@@ -18,11 +18,18 @@ function createAggregation(params: {
18
18
  }) => {
19
19
  const { order, orderDateGte, orderDateLte } = params;
20
20
 
21
- return repos.order.aggregateOrderOfCustomer({
22
- project: { id: { $eq: PROJECT_ID } },
23
- orderDate: { $gte: orderDateGte, $lte: orderDateLte },
24
- customer: { email: { $eq: String(order.customer.email) } }
25
- });
21
+ if (PROJECT_ID === '*') {
22
+ return repos.order.aggregateOrderOfCustomerGlobally({
23
+ orderDate: { $gte: orderDateGte, $lte: orderDateLte },
24
+ customer: { email: { $eq: String(order.customer.email) } }
25
+ });
26
+ } else {
27
+ return repos.order.aggregateOrderOfCustomerByProject({
28
+ project: { id: { $eq: PROJECT_ID } },
29
+ orderDate: { $gte: orderDateGte, $lte: orderDateLte },
30
+ customer: { email: { $eq: String(order.customer.email) } }
31
+ });
32
+ }
26
33
  };
27
34
  }
28
35
 
@@ -41,12 +48,16 @@ async function main() {
41
48
 
42
49
  const cursor = orderRepo.getCursor(
43
50
  {
44
- 'project.id': { $eq: PROJECT_ID },
51
+ ...(PROJECT_ID !== '*') ? { 'project.id': { $eq: PROJECT_ID } } : undefined,
45
52
  orderDate: {
46
53
  $gte: orderDateGte,
47
54
  $lte: orderDateLte
48
55
  },
49
- typeOf: { $eq: chevre.factory.order.OrderType.Order }
56
+ typeOf: { $eq: chevre.factory.order.OrderType.Order },
57
+ 'customer.id': { // exclude pos,tvm
58
+ $exists: true,
59
+ $in: []
60
+ }
50
61
  },
51
62
  {
52
63
  customer: 1,
@@ -79,11 +90,11 @@ async function main() {
79
90
  if (typeof email === 'string') {
80
91
  console.log(
81
92
  'aggregating...',
82
- order.project.id, order.orderNumber, order.orderDate, i);
93
+ order.project.id, order.orderNumber, email, order.orderDate, i);
83
94
  const aggregateResult = await createAggregation({ order, orderDateGte, orderDateLte })({ order: orderRepo });
84
95
  await aggregateOrderRepo.save(
85
96
  {
86
- project: order.project,
97
+ project: { id: PROJECT_ID, typeOf: chevre.factory.organizationType.Project },
87
98
  identifier: email,
88
99
  typeOf: chevre.factory.personType.Person
89
100
  },
@@ -92,7 +103,7 @@ async function main() {
92
103
  updateCount += 1;
93
104
  console.log(
94
105
  'aggregated.',
95
- order.project.id, order.orderNumber, order.orderDate, i);
106
+ order.project.id, order.orderNumber, email, order.orderDate, i);
96
107
 
97
108
  const sumGraceTime = (typeof aggregateResult.aggregation.sumGraceTime === 'number')
98
109
  ? aggregateResult.aggregation.sumGraceTime
@@ -0,0 +1,41 @@
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
+ // tslint:disable-next-line:max-func-body-length
8
+ async function main() {
9
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
10
+
11
+ const taskRepo = await chevre.repository.Task.createInstance(mongoose.connection);
12
+
13
+ const aggregateDate = new Date();
14
+ const runsFrom: Date = moment(aggregateDate)
15
+ .utc()
16
+ // .tz('Asia/Tokyo')
17
+ .add(-1, 'days')
18
+ .startOf('days')
19
+ .toDate();
20
+ const runsThrough: Date = moment(aggregateDate)
21
+ .utc()
22
+ // .tz('Asia/Tokyo')
23
+ .add(-1, 'days')
24
+ .endOf('days')
25
+ .toDate();
26
+
27
+ const result = await taskRepo.aggregateTask({
28
+ project: {
29
+ id: { $ne: 'sskts-development' }
30
+ },
31
+ runsFrom,
32
+ runsThrough
33
+ });
34
+ console.dir(result, { depth: null });
35
+ }
36
+
37
+ main()
38
+ .then(() => {
39
+ console.log('success!');
40
+ })
41
+ .catch(console.error);
@@ -19,7 +19,6 @@ async function main() {
19
19
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
20
20
 
21
21
  const transactionNumberRepo = await chevre.repository.TransactionNumber.createInstance({
22
- redisClient,
23
22
  connection: mongoose.connection
24
23
  });
25
24
  const assetTransactionRepo = await chevre.repository.AssetTransaction.createInstance(mongoose.connection);
@@ -0,0 +1,109 @@
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 MAX_LENGTH = 50;
9
+ const CHECK_DAYS = 60;
10
+
11
+ async function main() {
12
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
+
14
+ const orderRepo = await chevre.repository.Order.createInstance(mongoose.connection);
15
+
16
+ const cursor = orderRepo.getCursor(
17
+ {
18
+ typeOf: { $eq: chevre.factory.order.OrderType.Order },
19
+ orderDate: {
20
+ $gte: moment()
21
+ .add(-CHECK_DAYS, 'days')
22
+ .toDate()
23
+ }
24
+ // _id: { $eq: '67de46777ec0510590b68922' }
25
+ },
26
+ {
27
+ customer: 1,
28
+ project: 1,
29
+ orderDate: 1
30
+ }
31
+ );
32
+ console.log('docs found');
33
+
34
+ let i = 0;
35
+ let exceededCount = 0;
36
+ await cursor.eachAsync(async (doc) => {
37
+ i += 1;
38
+ const order: Pick<
39
+ chevre.factory.order.IOrder,
40
+ 'customer' | 'project' | 'orderDate'
41
+ > = doc.toObject();
42
+
43
+ const attributesNames: (keyof chevre.factory.order.ICustomer)[] = [
44
+ 'address',
45
+ 'age',
46
+ 'email',
47
+ 'givenName',
48
+ 'familyName',
49
+ 'gender',
50
+ 'name',
51
+ 'url',
52
+ 'telephone'
53
+ ];
54
+
55
+ const maxLengthNotExceeded = attributesNames.every((attributesName) => {
56
+ const attributesValue = order.customer[attributesName];
57
+ if (attributesValue === undefined) {
58
+ return true;
59
+ }
60
+ if (typeof attributesValue !== 'string') {
61
+ throw new Error(`${attributesName}: ${attributesValue} must be string. ${order.project.id}`);
62
+ }
63
+
64
+ return attributesValue.length <= MAX_LENGTH;
65
+ });
66
+
67
+ if (maxLengthNotExceeded) {
68
+ // no op
69
+ process.stdout.write('-');
70
+ } else {
71
+ exceededCount += 1;
72
+ console.log('\n');
73
+ console.log('maxLengthExceeded.', order.project.id, order.customer, order.orderDate, i);
74
+ }
75
+ });
76
+
77
+ console.log('\n');
78
+ console.log(i, 'docs checked');
79
+ console.log(exceededCount, 'docs exceeded');
80
+
81
+ // let result: any;
82
+ // const attributesNames = [
83
+ // // 'customer.address',
84
+ // // 'customer.age',
85
+ // 'customer.email',
86
+ // 'customer.givenName',
87
+ // 'customer.familyName'
88
+ // // 'customer.gender',
89
+ // // 'customer.name',
90
+ // // 'customer.url',
91
+ // ];
92
+ // for (const attributesName of attributesNames) {
93
+ // console.log('how is', attributesName, '?');
94
+ // result = await orderRepo.checkCustomerAttributesLength({
95
+ // attributesName,
96
+ // length: MAX_LENGTH
97
+ // });
98
+ // // tslint:disable-next-line:no-null-keyword
99
+ // console.dir(result, { depth: null });
100
+ // console.log('how is', attributesName, '?', result.length, 'results found');
101
+ // }
102
+ }
103
+
104
+ main()
105
+ .then(() => {
106
+ console.log('\n');
107
+ console.log('success!');
108
+ })
109
+ .catch(console.error);
@@ -30,7 +30,7 @@ async function main() {
30
30
  ]
31
31
  });
32
32
 
33
- const result = await (await chevre.service.task.createService()).notifyAbortedTasksByEmail({
33
+ const result = await (await chevre.service.notification.createService()).notifyAbortedTasksByEmail({
34
34
  dateAbortedGte: moment()
35
35
  // tslint:disable-next-line:no-magic-numbers
36
36
  .add(-10, 'days')
@@ -11,7 +11,7 @@ mongoose.Model.on('index', (...args) => {
11
11
  async function main() {
12
12
  await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
13
13
 
14
- await chevre.repository.Member.createInstance(mongoose.connection);
14
+ await chevre.repository.Task.createInstance(mongoose.connection);
15
15
  console.log('success!');
16
16
  }
17
17
 
@@ -0,0 +1,132 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ // tslint:disable-next-line:max-func-body-length
7
+ async function main() {
8
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
9
+
10
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
11
+
12
+ let roleNames = [
13
+ chevre.factory.role.organizationRole.RoleName.InventoryManager
14
+ ];
15
+ let permissions = [
16
+ 'admin.creativeWorks.*',
17
+ 'admin.sellers.eventSeries.*',
18
+ 'admin.customers.read',
19
+ 'admin.offers.read',
20
+ 'admin.offers.create',
21
+ 'admin.offerCatalogs.create',
22
+ 'admin.offerCatalogItems.read',
23
+ 'admin.offerCatalogItems.create',
24
+ 'admin.products.create',
25
+ 'admin.sellers.events.create',
26
+ 'admin.sellers.events.update'
27
+ ];
28
+ for (const roleName of roleNames) {
29
+ for (const permission of permissions) {
30
+ const result = await roleRepo.addPermissionIfNotExists({
31
+ roleName: { $eq: roleName },
32
+ permission
33
+ });
34
+ console.log('permission added.', result, roleName);
35
+ }
36
+ }
37
+
38
+ roleNames = [
39
+ chevre.factory.role.organizationRole.RoleName.SellersOwner
40
+ ];
41
+ permissions = [
42
+ 'admin.sellers.eventSeries.*',
43
+ 'admin.customers.read',
44
+ 'admin.offers.read',
45
+ 'admin.offerCatalogItems.read',
46
+ 'admin.sellers.events.create',
47
+ 'admin.sellers.events.update',
48
+ 'admin.sellers.orders.read',
49
+ 'admin.sellers.reservations.read',
50
+ 'admin.sellers.reservations.useActions.read',
51
+ 'admin.sellers.assetTransactions.cancelReservation.write'
52
+ ];
53
+ for (const roleName of roleNames) {
54
+ for (const permission of permissions) {
55
+ const result = await roleRepo.addPermissionIfNotExists({
56
+ roleName: { $eq: roleName },
57
+ permission
58
+ });
59
+ console.log('permission added.', result, roleName);
60
+ }
61
+ }
62
+
63
+ roleNames = [
64
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
65
+ ];
66
+ permissions = [
67
+ 'admin.sellers.eventSeries.*',
68
+ 'admin.customers.read',
69
+ 'admin.offers.read',
70
+ 'admin.offerCatalogItems.read',
71
+ 'admin.sellers.events.create',
72
+ 'admin.sellers.events.update'
73
+ ];
74
+ for (const roleName of roleNames) {
75
+ for (const permission of permissions) {
76
+ const result = await roleRepo.addPermissionIfNotExists({
77
+ roleName: { $eq: roleName },
78
+ permission
79
+ });
80
+ console.log('permission added.', result, roleName);
81
+ }
82
+ }
83
+
84
+ roleNames = [
85
+ chevre.factory.role.organizationRole.RoleName.TicketClerk
86
+ ];
87
+ permissions = [
88
+ 'admin.customers.read',
89
+ 'admin.offers.read',
90
+ 'admin.sellers.notes.create',
91
+ 'admin.sellers.notes.read',
92
+ 'admin.sellers.notes.update',
93
+ 'admin.sellers.orders.read',
94
+ 'admin.sellers.orders.update',
95
+ 'admin.sellers.reservations.read',
96
+ 'admin.sellers.reservations.useActions.read',
97
+ 'admin.sellers.reservations.useActions.create',
98
+ 'admin.sellers.assetTransactions.cancelReservation.write'
99
+ ];
100
+ for (const roleName of roleNames) {
101
+ for (const permission of permissions) {
102
+ const result = await roleRepo.addPermissionIfNotExists({
103
+ roleName: { $eq: roleName },
104
+ permission
105
+ });
106
+ console.log('permission added.', result, roleName);
107
+ }
108
+ }
109
+
110
+ roleNames = [
111
+ chevre.factory.role.organizationRole.RoleName.TicketCollector
112
+ ];
113
+ permissions = [
114
+ 'admin.sellers.reservations.read',
115
+ 'admin.sellers.reservations.useActions.read',
116
+ 'admin.sellers.reservations.useActions.create'
117
+ ];
118
+ for (const roleName of roleNames) {
119
+ for (const permission of permissions) {
120
+ const result = await roleRepo.addPermissionIfNotExists({
121
+ roleName: { $eq: roleName },
122
+ permission
123
+ });
124
+ console.log('permission added.', result, roleName);
125
+ }
126
+ }
127
+
128
+ }
129
+
130
+ main()
131
+ .then()
132
+ .catch(console.error);
@@ -0,0 +1,37 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ // tslint:disable-next-line:max-func-body-length
7
+ async function main() {
8
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
9
+
10
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
11
+
12
+ const roleNames = [
13
+ chevre.factory.role.organizationRole.RoleName.Customer,
14
+ chevre.factory.role.organizationRole.RoleName.InventoryManager,
15
+ chevre.factory.role.organizationRole.RoleName.POS,
16
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager,
17
+ chevre.factory.role.organizationRole.RoleName.SellersOwner,
18
+ chevre.factory.role.organizationRole.RoleName.TicketClerk,
19
+ chevre.factory.role.organizationRole.RoleName.User
20
+ ];
21
+ const permissions = [
22
+ 'db.primary.read'
23
+ ];
24
+ for (const roleName of roleNames) {
25
+ for (const permission of permissions) {
26
+ const result = await roleRepo.addPermissionIfNotExists({
27
+ roleName: { $eq: roleName },
28
+ permission
29
+ });
30
+ console.log('permission added.', result, roleName);
31
+ }
32
+ }
33
+ }
34
+
35
+ main()
36
+ .then()
37
+ .catch(console.error);
@@ -0,0 +1,27 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
15
+ ];
16
+ for (const roleName of roleNames) {
17
+ const result = await roleRepo.addPermissionIfNotExists({
18
+ roleName: { $eq: roleName },
19
+ permission: 'eventOffers.*'
20
+ });
21
+ console.log(result, roleName);
22
+ }
23
+ }
24
+
25
+ main()
26
+ .then()
27
+ .catch(console.error);
@@ -8,17 +8,50 @@ async function main() {
8
8
 
9
9
  const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
10
 
11
- const roleNames = [
11
+ // const roleNames = [
12
+ // chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
+ // chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
+ // chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
15
+ // ];
16
+ // for (const roleName of roleNames) {
17
+ // const result = await roleRepo.addPermissionIfNotExists({
18
+ // roleName: { $eq: roleName },
19
+ // permission: 'eventOffers.*'
20
+ // });
21
+ // console.log(result, roleName);
22
+ // }
23
+ let roleNames = [
24
+ chevre.factory.role.organizationRole.RoleName.InventoryManager
25
+ ];
26
+ let permissions = [
27
+ 'admin.creativeWorks.*'
28
+ ];
29
+ for (const roleName of roleNames) {
30
+ for (const permission of permissions) {
31
+ const result = await roleRepo.addPermissionIfNotExists({
32
+ roleName: { $eq: roleName },
33
+ permission
34
+ });
35
+ console.log('permission added.', result, roleName);
36
+ }
37
+ }
38
+
39
+ roleNames = [
12
40
  chevre.factory.role.organizationRole.RoleName.InventoryManager,
13
41
  chevre.factory.role.organizationRole.RoleName.SellersOwner,
14
42
  chevre.factory.role.organizationRole.RoleName.SellersInventoryManager
15
43
  ];
44
+ permissions = [
45
+ 'admin.sellers.eventSeries.*'
46
+ ];
16
47
  for (const roleName of roleNames) {
17
- const result = await roleRepo.addPermissionIfNotExists({
18
- roleName: { $eq: roleName },
19
- permission: 'eventOffers.*'
20
- });
21
- console.log(result, roleName);
48
+ for (const permission of permissions) {
49
+ const result = await roleRepo.addPermissionIfNotExists({
50
+ roleName: { $eq: roleName },
51
+ permission
52
+ });
53
+ console.log('permission added.', result, roleName);
54
+ }
22
55
  }
23
56
  }
24
57
 
@@ -0,0 +1,48 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ async function main() {
7
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
8
+
9
+ const roleRepo = await chevre.repository.Role.createInstance(mongoose.connection);
10
+
11
+ const roleNames = [
12
+ 'projectCreator'
13
+ ];
14
+ const permissions = [
15
+ 'aggregations.read',
16
+ 'projects.create'
17
+ ];
18
+ for (const roleName of roleNames) {
19
+ const existingRoles = await roleRepo.projectFields(
20
+ {
21
+ roleName: { $eq: roleName }
22
+ },
23
+ ['roleName']
24
+ );
25
+ if (existingRoles.length === 0) {
26
+ const createResult = await roleRepo.create({
27
+ roleName: <any>roleName,
28
+ member: { typeOf: chevre.factory.personType.Person },
29
+ memberOf: { typeOf: chevre.factory.organizationType.Project },
30
+ permissions: []
31
+ });
32
+ console.log('role created.', createResult);
33
+ }
34
+ for (const permission of permissions) {
35
+ const result = await roleRepo.addPermissionIfNotExists({
36
+ roleName: { $eq: <any>roleName },
37
+ permission
38
+ });
39
+ console.log('permission added.', result, roleName);
40
+ }
41
+ }
42
+ }
43
+
44
+ main()
45
+ .then(() => {
46
+ console.log('success!');
47
+ })
48
+ .catch(console.error);
@@ -0,0 +1,72 @@
1
+ // tslint:disable:no-console
2
+ import type { CognitoIdentityProvider as CognitoIdentityServiceProvider } from '@aws-sdk/client-cognito-identity-provider';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ import { IGlobalMember } from '../../../../lib/chevre/repo/mongoose/schemas/member/global';
6
+ import { chevre } from '../../../../lib/index';
7
+
8
+ const { PROJECT_CREATOR_SUB } = process.env;
9
+
10
+ let cognitoIdentityServiceProvider: CognitoIdentityServiceProvider | undefined;
11
+
12
+ async function main() {
13
+ if (typeof PROJECT_CREATOR_SUB !== 'string') {
14
+ throw new Error('PROJECT_CREATOR_SUB setting required');
15
+ }
16
+
17
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
18
+
19
+ const memberRepo = await chevre.repository.Member.createInstance(mongoose.connection);
20
+ const settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection);
21
+ const setting = await settingRepo.findOne({ project: { id: { $eq: '*' } } }, ['userPoolIdNew']);
22
+ if (typeof setting?.userPoolIdNew !== 'string') {
23
+ throw new chevre.factory.errors.NotFound('setting.userPoolIdNew');
24
+ }
25
+
26
+ let globalMember: IGlobalMember;
27
+
28
+ if (cognitoIdentityServiceProvider === undefined) {
29
+ const { CognitoIdentityProvider } = await import('@aws-sdk/client-cognito-identity-provider');
30
+ const { fromEnv } = await import('@aws-sdk/credential-providers');
31
+ cognitoIdentityServiceProvider = new CognitoIdentityProvider({
32
+ apiVersion: 'latest',
33
+ region: 'ap-northeast-1',
34
+ credentials: fromEnv()
35
+ });
36
+ }
37
+ const personRepo = await chevre.repository.Person.createInstance({
38
+ userPoolId: setting.userPoolIdNew,
39
+ cognitoIdentityServiceProvider
40
+ });
41
+ const profile = await personRepo.findById({ userId: PROJECT_CREATOR_SUB });
42
+ const memberName = (typeof profile.givenName === 'string' && typeof profile.familyName === 'string')
43
+ ? `${profile.givenName} ${profile.familyName}`
44
+ : profile.memberOf?.membershipNumber;
45
+
46
+ globalMember = {
47
+ typeOf: chevre.factory.role.RoleType.OrganizationRole,
48
+ member: {
49
+ typeOf: chevre.factory.personType.Person,
50
+ id: profile.id,
51
+ name: memberName,
52
+ username: profile.memberOf?.membershipNumber,
53
+ hasRole: [{
54
+ typeOf: chevre.factory.role.RoleType.OrganizationRole,
55
+ roleName: <any>'projectCreator'
56
+ }]
57
+ }
58
+ };
59
+ console.log(profile, globalMember);
60
+
61
+ const existingGlobalMemberRoles = await memberRepo.findGlobalRoleNamesByMember({ member: { id: { $eq: globalMember.member.id } } });
62
+ console.log('existingGlobalMemberRoles:', existingGlobalMemberRoles);
63
+
64
+ // 権限作成
65
+ await memberRepo.createGlobalMember([globalMember]);
66
+ }
67
+
68
+ main()
69
+ .then(() => {
70
+ console.log('success!');
71
+ })
72
+ .catch(console.error);