@chevre/domain 22.11.0-alpha.0 → 22.11.0-alpha.10

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 (68) hide show
  1. package/example/src/chevre/assetTransaction/processReserve.ts +0 -1
  2. package/example/src/chevre/checkProjectMembers.ts +55 -0
  3. package/example/src/chevre/orders/searchWithUnwoundAcceptedOffers.ts +73 -0
  4. package/example/src/chevre/reIndex.ts +1 -1
  5. package/example/src/chevre/roles/addAdminInventoryManagerRole.ts +50 -0
  6. package/example/src/chevre/roles/addAdminPermissionIfNotExists.ts +132 -0
  7. package/example/src/chevre/roles/addDefaultPermissionIfNotExists.ts +37 -0
  8. package/example/src/chevre/roles/addEventOfferPermissionIfNotExists.ts +27 -0
  9. package/example/src/chevre/roles/addPermissionIfNotExists.ts +39 -6
  10. package/example/src/chevre/roles/removeConsolePermissionIfExists.ts +38 -0
  11. package/example/src/chevre/roles/removePermissionFromAPIRoles.ts +46 -0
  12. package/example/src/chevre/roles/removePermissionIfExists.ts +39 -0
  13. package/example/src/chevre/settings/addSettings.ts +32 -0
  14. package/example/src/chevre/stockHolder/checkRedisKeyCount.ts +11 -20
  15. package/example/src/chevre/unsetUnnecessaryFields.ts +8 -5
  16. package/lib/chevre/index.d.ts +0 -2
  17. package/lib/chevre/index.js +0 -10
  18. package/lib/chevre/repo/acceptedOffer.d.ts +3 -1
  19. package/lib/chevre/repo/acceptedOffer.js +11 -3
  20. package/lib/chevre/repo/confirmationNumber.d.ts +0 -11
  21. package/lib/chevre/repo/confirmationNumber.js +15 -54
  22. package/lib/chevre/repo/identity.d.ts +11 -33
  23. package/lib/chevre/repo/identity.js +10 -15
  24. package/lib/chevre/repo/mongoose/schemas/identity.d.ts +1 -1
  25. package/lib/chevre/repo/mongoose/schemas/member.d.ts +1 -1
  26. package/lib/chevre/repo/mongoose/schemas/member.js +26 -10
  27. package/lib/chevre/repo/orderNumber.d.ts +0 -11
  28. package/lib/chevre/repo/orderNumber.js +13 -51
  29. package/lib/chevre/repo/role.d.ts +11 -0
  30. package/lib/chevre/repo/role.js +36 -0
  31. package/lib/chevre/repo/serviceOutputIdentifier.d.ts +0 -4
  32. package/lib/chevre/repo/serviceOutputIdentifier.js +13 -38
  33. package/lib/chevre/repo/setting.d.ts +14 -1
  34. package/lib/chevre/repo/setting.js +15 -0
  35. package/lib/chevre/repo/stockHolder.js +0 -11
  36. package/lib/chevre/repo/transactionNumber.d.ts +0 -11
  37. package/lib/chevre/repo/transactionNumber.js +13 -51
  38. package/lib/chevre/repo/transactionNumberCounter.d.ts +0 -10
  39. package/lib/chevre/repo/transactionNumberCounter.js +34 -29
  40. package/lib/chevre/service/code.d.ts +5 -28
  41. package/lib/chevre/service/code.js +3 -79
  42. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +22 -14
  43. package/lib/chevre/service/task/acceptCOAOffer.js +6 -5
  44. package/lib/chevre/service/task/authorizePayment.js +7 -6
  45. package/lib/chevre/service/task/checkMovieTicket.js +4 -3
  46. package/lib/chevre/service/task/givePointAward.js +1 -1
  47. package/lib/chevre/service/task/moneyTransfer.js +1 -1
  48. package/lib/chevre/service/task/publishPaymentUrl.js +6 -7
  49. package/lib/chevre/service/task/refund.js +1 -1
  50. package/lib/chevre/service/task/returnMoneyTransfer.js +1 -1
  51. package/lib/chevre/service/task/returnPayTransaction.js +1 -1
  52. package/lib/chevre/service/task/returnPointAward.js +1 -1
  53. package/lib/chevre/service/task/returnReserveTransaction.js +1 -1
  54. package/lib/chevre/service/task/voidReserveTransaction.js +4 -3
  55. package/lib/chevre/service/validation/validateOrder.js +55 -37
  56. package/lib/chevre/service.d.ts +0 -4
  57. package/lib/chevre/service.js +10 -14
  58. package/package.json +3 -3
  59. package/example/src/chevre/adminAuth/adminIdentity.ts +0 -38
  60. package/example/src/chevre/checkActions.ts +0 -65
  61. package/example/src/chevre/roles/addRoleMembers.ts +0 -75
  62. package/example/src/chevre/transactionNumber/publishConfimationNumber.ts +0 -37
  63. package/example/src/chevre/transactionNumber/publishOrderNumber.ts +0 -40
  64. package/example/src/chevre/transactionNumber/setUseMongo4confirmationNumberFrom.ts +0 -45
  65. package/example/src/chevre/transactionNumber/setUseMongo4orderNumberFrom.ts +0 -41
  66. package/example/src/chevre/transactionNumber/setUseMongo4transactionNumberFrom.ts +0 -41
  67. package/lib/chevre/adminAuth.d.ts +0 -2
  68. package/lib/chevre/adminAuth.js +0 -6
@@ -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,55 @@
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 memberRepo = await chevre.repository.Member.createInstance(mongoose.connection);
11
+
12
+ const cursor = memberRepo.getCursor(
13
+ {
14
+ 'member.memberOf.typeOf': { $eq: 'Project' },
15
+ 'member.typeOf': { $eq: 'Person' }
16
+ },
17
+ {
18
+ _id: 1,
19
+ member: 1,
20
+ project: 1
21
+ }
22
+ );
23
+ console.log('docs found');
24
+
25
+ let i = 0;
26
+ let sellerMemberCount = 0;
27
+ await cursor.eachAsync(async (doc) => {
28
+ i += 1;
29
+ const member = <Pick<chevre.factory.iam.IMember, 'member' | 'project'>>doc.toObject();
30
+
31
+ console.log('checking...', member.project.id, member.member?.id, i);
32
+ const sellerMembers = await memberRepo.projectFieldsByProjectId(
33
+ { id: member.project.id },
34
+ {
35
+ member: {
36
+ id: { $eq: member.member.id },
37
+ typeOf: { $eq: 'Person' },
38
+ memberOf: { typeOf: { $eq: chevre.factory.organizationType.Corporation } }
39
+ }
40
+ },
41
+ ['member']
42
+ );
43
+ console.log(sellerMembers.length, 'sellerMember found', member.project.id, member.member?.id, i);
44
+ if (sellerMembers.length > 0) {
45
+ sellerMemberCount += 1;
46
+ }
47
+ });
48
+
49
+ console.log(i, 'docs checked');
50
+ console.log(sellerMemberCount, 'members sellerMember');
51
+ }
52
+
53
+ main()
54
+ .then()
55
+ .catch(console.error);
@@ -0,0 +1,73 @@
1
+ // tslint:disable:no-console
2
+ import * as mongoose from 'mongoose';
3
+
4
+ import { chevre } from '../../../../lib/index';
5
+
6
+ const formatter = new Intl.NumberFormat('ja-JP');
7
+
8
+ const project = { id: String(process.env.PROJECT_ID) };
9
+
10
+ async function main() {
11
+ let startTime: [number, number] = process.hrtime();
12
+ let diff: [number, number] = process.hrtime(startTime);
13
+
14
+ await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
15
+
16
+ const acceptedOfferRepo = await chevre.repository.AcceptedOffer.createInstance(mongoose.connection);
17
+
18
+ startTime = process.hrtime();
19
+ const result = await acceptedOfferRepo.searchWithUnwoundAcceptedOffers(
20
+ {
21
+ project: { id: { $eq: project.id } },
22
+ limit: 20,
23
+ page: 12,
24
+ sort: {
25
+ orderDate: chevre.factory.sortType.Descending
26
+ },
27
+ orderStatuses: [chevre.factory.orderStatus.OrderDelivered],
28
+ orderDate: {
29
+ $gte: new Date('2025-06-07T15:00:00.000Z'),
30
+ $lte: new Date('2025-07-08T01:42:34.654Z')
31
+ },
32
+ acceptedOffers: {
33
+ itemOffered: {
34
+ issuedThrough: { typeOf: { $eq: chevre.factory.product.ProductType.EventService } },
35
+ reservationFor: {
36
+ inSessionFrom: new Date('2025-07-07T15:00:00.000Z'),
37
+ inSessionThrough: new Date('2025-07-08T15:00:00.000Z'),
38
+ superEvent: {
39
+ location: { branchCodes: ['p006'] }
40
+ }
41
+ }
42
+ }
43
+ },
44
+ seller: { ids: ['62568df4138ef5000b18c8c0'] },
45
+ provider: { id: { $eq: '62568df4138ef5000b18c8c0' } }
46
+ // // req.seller.idを考慮(2023-07-19~)
47
+ // ...(typeof req.seller?.id === 'string') ? { provider: { id: { $eq: req.seller.id } } } : undefined
48
+ },
49
+ {
50
+ confirmationNumber: 1,
51
+ customer: 1,
52
+ dateReturned: 1,
53
+ orderDate: 1,
54
+ orderNumber: 1,
55
+ orderStatus: 1,
56
+ paymentMethods: 1,
57
+ price: 1,
58
+ priceCurrency: 1,
59
+ project: 1,
60
+ seller: 1
61
+ },
62
+ { useLimitAfterSkip: false }
63
+ // { useLimitAfterSkip: true }
64
+ );
65
+ diff = process.hrtime(startTime);
66
+ console.log(result.map(({ orderNumber, orderDate }) => `${orderDate} ${orderNumber}`));
67
+ console.log(result.length);
68
+ console.log('diff:', [diff[0], formatter.format(diff[1])]);
69
+ }
70
+
71
+ main()
72
+ .then(console.log)
73
+ .catch(console.error);
@@ -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.Issuer.createInstance(mongoose.connection);
14
+ await chevre.repository.Member.createInstance(mongoose.connection);
15
15
  console.log('success!');
16
16
  }
17
17
 
@@ -0,0 +1,50 @@
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.AdminInventoryManager
13
+ ];
14
+ const permissions = [
15
+ 'iam.members.me.read',
16
+ 'admin.creativeWorks.*',
17
+ 'admin.sellers.eventSeries.*',
18
+ 'admin.sellers.read'
19
+ ];
20
+ for (const roleName of roleNames) {
21
+ const existingRoles = await roleRepo.projectFields(
22
+ {
23
+ roleName: { $eq: roleName }
24
+ },
25
+ ['roleName']
26
+ );
27
+ if (existingRoles.length === 0) {
28
+ const createResult = await roleRepo.create({
29
+ roleName: roleName,
30
+ member: { typeOf: chevre.factory.creativeWorkType.SoftwareApplication },
31
+ memberOf: { typeOf: chevre.factory.organizationType.Project },
32
+ permissions: []
33
+ });
34
+ console.log('role created.', createResult);
35
+ }
36
+ for (const permission of permissions) {
37
+ const result = await roleRepo.addPermissionIfNotExists({
38
+ roleName: { $eq: roleName },
39
+ permission
40
+ });
41
+ console.log('permission added.', result, roleName);
42
+ }
43
+ }
44
+ }
45
+
46
+ main()
47
+ .then(() => {
48
+ console.log('success!');
49
+ })
50
+ .catch(console.error);
@@ -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,38 @@
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 permissions = [
12
+ 'assetTransactions.cancelReservation.write',
13
+ 'orders.read',
14
+ 'orders.update',
15
+ 'reservations.attended',
16
+ 'reservations.read'
17
+ ];
18
+ for (const permission of permissions) {
19
+ const roles = await roleRepo.projectFields(
20
+ {
21
+ permissions: { $eq: permission }
22
+ },
23
+ ['roleName']
24
+ );
25
+ console.log(roles, permission);
26
+ for (const { roleName } of roles) {
27
+ const result = await roleRepo.removePermissionIfExists({
28
+ roleName: { $eq: roleName },
29
+ permission
30
+ });
31
+ console.log('permission removed.', permission, result, roleName);
32
+ }
33
+ }
34
+ }
35
+
36
+ main()
37
+ .then()
38
+ .catch(console.error);
@@ -0,0 +1,46 @@
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 permissions = [
12
+ 'categoryCodes.read',
13
+ 'creativeWorks.read',
14
+ 'events.read',
15
+ 'places.read',
16
+ 'products.read',
17
+ 'sellers.read'
18
+ ];
19
+ for (const permission of permissions) {
20
+ const roles = await roleRepo.projectFields(
21
+ {
22
+ permissions: { $eq: permission },
23
+ roleName: {
24
+ $in: [
25
+ chevre.factory.role.organizationRole.RoleName.Customer,
26
+ chevre.factory.role.organizationRole.RoleName.POS,
27
+ chevre.factory.role.organizationRole.RoleName.EventsViewer
28
+ ]
29
+ }
30
+ },
31
+ ['roleName']
32
+ );
33
+ console.log('roles found.', roles, permission);
34
+ for (const { roleName } of roles) {
35
+ const result = await roleRepo.removePermissionIfExists({
36
+ roleName: { $eq: roleName },
37
+ permission
38
+ });
39
+ console.log('permission removed.', permission, result, roleName);
40
+ }
41
+ }
42
+ }
43
+
44
+ main()
45
+ .then()
46
+ .catch(console.error);
@@ -0,0 +1,39 @@
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 permissions = [
12
+ 'tokens',
13
+ 'authorizations.create',
14
+ 'permits.read',
15
+ 'tasks.read',
16
+ 'transactionNumbers.write',
17
+ 'chevre.admin'
18
+ ];
19
+ for (const permission of permissions) {
20
+ const roles = await roleRepo.projectFields(
21
+ {
22
+ permissions: { $eq: permission }
23
+ },
24
+ ['roleName']
25
+ );
26
+ console.log(roles, permission);
27
+ for (const { roleName } of roles) {
28
+ const result = await roleRepo.removePermissionIfExists({
29
+ roleName: { $eq: roleName },
30
+ permission
31
+ });
32
+ console.log('permission removed.', permission, result, roleName);
33
+ }
34
+ }
35
+ }
36
+
37
+ main()
38
+ .then()
39
+ .catch(console.error);
@@ -0,0 +1,32 @@
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 settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection);
10
+
11
+ const setting = await settingRepo.findOne({ project: { id: { $eq: '*' } } }, ['onOrderStatusChanged']);
12
+ const useInformReturnAction = (<any>setting)?.onOrderStatusChanged?.useInformReturnAction === true;
13
+ if (useInformReturnAction) {
14
+ console.log('already useInformReturnAction:true');
15
+ } else {
16
+ // update
17
+ await settingRepo.updateByProject4migration(
18
+ { project: { id: { $eq: '*' } } },
19
+ {
20
+ $set: {
21
+ 'onOrderStatusChanged.useInformReturnAction': true
22
+ }
23
+ }
24
+ );
25
+ console.log('updated.');
26
+ }
27
+
28
+ }
29
+
30
+ main()
31
+ .then()
32
+ .catch(console.error);
@@ -38,7 +38,6 @@ function countRedisKeyByProject(params: {
38
38
  {
39
39
  'project.id': {
40
40
  $eq: params.project.id
41
- // $in: useMongoAsStockHolderProjects
42
41
  },
43
42
  // startDate: {
44
43
  // $gte: params.now
@@ -93,30 +92,22 @@ function countRedisKeyByProject(params: {
93
92
  async function main() {
94
93
  const eventRepo = await chevre.repository.Event.createInstance(mongoose.connection);
95
94
  const projectRepo = await chevre.repository.Project.createInstance(mongoose.connection);
96
- const settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection);
95
+ // const settingRepo = await chevre.repository.Setting.createInstance(mongoose.connection);
97
96
  const stockHolderRepo = await chevre.repository.StockHolder.createInstance(
98
97
  client,
99
98
  mongoose.connection
100
99
  );
101
100
 
102
- const setting = await settingRepo.findOne(
103
- { project: { id: { $eq: '*' } } },
104
- ['useMongoAsStockHolderProjects', 'useMongoAsStockHolder']
105
- );
106
- const useMongoAsStockHolder = setting?.useMongoAsStockHolder === true;
107
- let useMongoAsStockHolderProjects =
108
- (Array.isArray(setting?.useMongoAsStockHolderProjects)) ? setting?.useMongoAsStockHolderProjects : [];
109
- if (useMongoAsStockHolder) {
110
- // 全プロジェクト
111
- useMongoAsStockHolderProjects = (await projectRepo.projectFields(
112
- {
113
- // id: { $eq: 'xxx' }
114
- },
115
- ['id']
116
- )).map(({ id }) => id);
117
- }
101
+ let checkingProjects: string[] = [];
102
+ // 全プロジェクト
103
+ checkingProjects = (await projectRepo.projectFields(
104
+ {
105
+ // id: { $eq: 'xxx' }
106
+ },
107
+ ['id']
108
+ )).map(({ id }) => id);
118
109
 
119
- useMongoAsStockHolderProjects = useMongoAsStockHolderProjects.filter((id) => id.slice(0, 6) !== 'sskts-');
110
+ checkingProjects = checkingProjects.filter((id) => id.slice(0, 6) !== 'sskts-');
120
111
 
121
112
  const results: {
122
113
  project: { id: string };
@@ -127,7 +118,7 @@ async function main() {
127
118
  const now = moment()
128
119
  .add(0, 'days')
129
120
  .toDate();
130
- for (const projectId of useMongoAsStockHolderProjects) {
121
+ for (const projectId of checkingProjects) {
131
122
  const { checkedCount, redisKeyCount } = await countRedisKeyByProject({
132
123
  project: { id: projectId },
133
124
  now