@drax/identity-back 0.0.22 → 0.0.25

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 (127) hide show
  1. package/dist/factory/RoleServiceFactory.js +0 -1
  2. package/dist/factory/TenantServiceFactory.js +0 -1
  3. package/dist/factory/UserServiceFactory.js +0 -1
  4. package/dist/graphql/resolvers/role.resolvers.js +2 -2
  5. package/dist/graphql/resolvers/tenant.resolvers.js +2 -2
  6. package/dist/graphql/resolvers/user.resolvers.js +2 -2
  7. package/dist/graphql/types/role.graphql +1 -1
  8. package/dist/graphql/types/tenant.graphql +1 -1
  9. package/dist/graphql/types/user.graphql +1 -1
  10. package/dist/models/UserModel.js +0 -1
  11. package/dist/repository/mongo/RoleMongoRepository.js +1 -1
  12. package/dist/repository/mongo/TenantMongoRepository.js +1 -1
  13. package/dist/repository/mongo/UserMongoRepository.js +1 -1
  14. package/dist/repository/sqlite/RoleSqliteRepository.js +33 -33
  15. package/dist/repository/sqlite/TenantSqliteRepository.js +1 -1
  16. package/dist/repository/sqlite/UserSqliteRepository.js +1 -1
  17. package/dist/routes/RoleRoutes.js +3 -1
  18. package/dist/routes/TenantRoutes.js +3 -1
  19. package/dist/routes/UserRoutes.js +3 -1
  20. package/dist/services/RoleService.js +2 -2
  21. package/dist/services/TenantService.js +2 -2
  22. package/dist/services/UserService.js +2 -2
  23. package/package.json +5 -2
  24. package/src/factory/RoleServiceFactory.ts +0 -1
  25. package/src/factory/TenantServiceFactory.ts +0 -1
  26. package/src/factory/UserServiceFactory.ts +0 -1
  27. package/src/graphql/resolvers/role.resolvers.ts +2 -2
  28. package/src/graphql/resolvers/tenant.resolvers.ts +2 -2
  29. package/src/graphql/resolvers/user.resolvers.ts +2 -2
  30. package/src/graphql/types/role.graphql +1 -1
  31. package/src/graphql/types/tenant.graphql +1 -1
  32. package/src/graphql/types/user.graphql +1 -1
  33. package/src/index.ts +6 -9
  34. package/src/interfaces/IRoleRepository.ts +5 -10
  35. package/src/interfaces/ITenantRepository.ts +4 -10
  36. package/src/interfaces/IUserRepository.ts +6 -12
  37. package/src/middleware/jwtMiddleware.ts +1 -1
  38. package/src/middleware/rbacMiddleware.ts +1 -2
  39. package/src/models/RoleModel.ts +1 -1
  40. package/src/models/TenantModel.ts +1 -1
  41. package/src/models/UserGroupModel.ts +1 -1
  42. package/src/models/UserModel.ts +1 -2
  43. package/src/rbac/Rbac.ts +1 -2
  44. package/src/repository/mongo/RoleMongoRepository.ts +14 -8
  45. package/src/repository/mongo/TenantMongoRepository.ts +14 -7
  46. package/src/repository/mongo/UserMongoRepository.ts +14 -9
  47. package/src/repository/sqlite/RoleSqliteRepository.ts +53 -44
  48. package/src/repository/sqlite/TenantSqliteRepository.ts +13 -8
  49. package/src/repository/sqlite/UserSqliteRepository.ts +15 -10
  50. package/src/routes/RoleRoutes.ts +7 -4
  51. package/src/routes/TenantRoutes.ts +7 -5
  52. package/src/routes/UserRoutes.ts +7 -4
  53. package/src/services/RoleService.ts +15 -8
  54. package/src/services/TenantService.ts +15 -9
  55. package/src/services/UserService.ts +13 -7
  56. package/src/setup/CreateOrUpdateRole.ts +2 -2
  57. package/src/setup/CreateUserIfNotExist.ts +1 -1
  58. package/test/data-obj/roles/admin-mongo-role.ts +1 -1
  59. package/test/initializers/RoleMongoInitializer.ts +1 -1
  60. package/test/initializers/RoleSqliteInitializer.ts +1 -1
  61. package/test/repository/mongo/role-mongo-repository.test.ts +1 -1
  62. package/test/repository/mongo/user-mongo-repository.test.ts +1 -1
  63. package/test/repository/sqlite/role-sqlite-repository.test.ts +1 -1
  64. package/test/repository/sqlite/user-sqlite-repository.test.ts +2 -2
  65. package/test/service/mock-service.test.ts +2 -2
  66. package/test/service/role-service.test.ts +2 -2
  67. package/test/service/user-service.test.ts +3 -3
  68. package/tsconfig.tsbuildinfo +1 -1
  69. package/types/factory/RoleServiceFactory.d.ts.map +1 -1
  70. package/types/factory/TenantServiceFactory.d.ts.map +1 -1
  71. package/types/factory/UserServiceFactory.d.ts.map +1 -1
  72. package/types/graphql/resolvers/role.resolvers.d.ts +10 -8
  73. package/types/graphql/resolvers/role.resolvers.d.ts.map +1 -1
  74. package/types/graphql/resolvers/tenant.resolvers.d.ts +10 -8
  75. package/types/graphql/resolvers/tenant.resolvers.d.ts.map +1 -1
  76. package/types/graphql/resolvers/user.resolvers.d.ts +8 -6
  77. package/types/graphql/resolvers/user.resolvers.d.ts.map +1 -1
  78. package/types/index.d.ts +3 -5
  79. package/types/index.d.ts.map +1 -1
  80. package/types/interfaces/IRoleRepository.d.ts +4 -10
  81. package/types/interfaces/IRoleRepository.d.ts.map +1 -1
  82. package/types/interfaces/ITenantRepository.d.ts +4 -10
  83. package/types/interfaces/ITenantRepository.d.ts.map +1 -1
  84. package/types/interfaces/IUserRepository.d.ts +5 -11
  85. package/types/interfaces/IUserRepository.d.ts.map +1 -1
  86. package/types/middleware/rbacMiddleware.d.ts.map +1 -1
  87. package/types/models/RoleModel.d.ts +1 -1
  88. package/types/models/RoleModel.d.ts.map +1 -1
  89. package/types/models/TenantModel.d.ts +1 -1
  90. package/types/models/TenantModel.d.ts.map +1 -1
  91. package/types/models/UserGroupModel.d.ts +1 -1
  92. package/types/models/UserGroupModel.d.ts.map +1 -1
  93. package/types/models/UserModel.d.ts +1 -1
  94. package/types/models/UserModel.d.ts.map +1 -1
  95. package/types/rbac/Rbac.d.ts +1 -2
  96. package/types/rbac/Rbac.d.ts.map +1 -1
  97. package/types/repository/mongo/RoleMongoRepository.d.ts +7 -8
  98. package/types/repository/mongo/RoleMongoRepository.d.ts.map +1 -1
  99. package/types/repository/mongo/TenantMongoRepository.d.ts +7 -8
  100. package/types/repository/mongo/TenantMongoRepository.d.ts.map +1 -1
  101. package/types/repository/mongo/UserMongoRepository.d.ts +7 -9
  102. package/types/repository/mongo/UserMongoRepository.d.ts.map +1 -1
  103. package/types/repository/sqlite/RoleSqliteRepository.d.ts +10 -11
  104. package/types/repository/sqlite/RoleSqliteRepository.d.ts.map +1 -1
  105. package/types/repository/sqlite/TenantSqliteRepository.d.ts +7 -8
  106. package/types/repository/sqlite/TenantSqliteRepository.d.ts.map +1 -1
  107. package/types/repository/sqlite/UserSqliteRepository.d.ts +9 -12
  108. package/types/repository/sqlite/UserSqliteRepository.d.ts.map +1 -1
  109. package/types/routes/RoleRoutes.d.ts.map +1 -1
  110. package/types/routes/TenantRoutes.d.ts.map +1 -1
  111. package/types/routes/UserRoutes.d.ts.map +1 -1
  112. package/types/services/RoleService.d.ts +7 -7
  113. package/types/services/RoleService.d.ts.map +1 -1
  114. package/types/services/TenantService.d.ts +7 -7
  115. package/types/services/TenantService.d.ts.map +1 -1
  116. package/types/services/UserService.d.ts +6 -6
  117. package/types/services/UserService.d.ts.map +1 -1
  118. package/types/setup/CreateOrUpdateRole.d.ts +2 -2
  119. package/types/setup/CreateOrUpdateRole.d.ts.map +1 -1
  120. package/types/setup/CreateUserIfNotExist.d.ts +1 -1
  121. package/types/setup/CreateUserIfNotExist.d.ts.map +1 -1
  122. package/src/interfaces/IID.ts +0 -5
  123. package/src/interfaces/IJwtUser.ts +0 -7
  124. package/src/interfaces/IRole.ts +0 -21
  125. package/src/interfaces/ITenant.ts +0 -9
  126. package/src/interfaces/IUser.ts +0 -48
  127. package/src/interfaces/IUserGroup.ts +0 -11
@@ -14,7 +14,6 @@ const RoleServiceFactory = (verbose = false) => {
14
14
  case DbEngine.Sqlite:
15
15
  console.log("RoleServiceFactory DB ENGINE SQLITE");
16
16
  roleRepository = new RoleSqliteRepository(DbSetupUtils.getDbConfig(), verbose);
17
- roleRepository.table();
18
17
  break;
19
18
  }
20
19
  roleService = new RoleService(roleRepository);
@@ -14,7 +14,6 @@ const TenantServiceFactory = (verbose = false) => {
14
14
  case DbEngine.Sqlite:
15
15
  console.log("TenantServiceFactory DB ENGINE SQLITE");
16
16
  tenantRepository = new TenantSqliteRepository(DbSetupUtils.getDbConfig(), verbose);
17
- tenantRepository.table();
18
17
  break;
19
18
  }
20
19
  tenantService = new TenantService(tenantRepository);
@@ -14,7 +14,6 @@ const UserServiceFactory = (verbose = false) => {
14
14
  case DbEngine.Sqlite:
15
15
  console.log("UserServiceFactory DB ENGINE SQLITE");
16
16
  userRepository = new UserSqliteRepository(DbSetupUtils.getDbConfig(), verbose);
17
- userRepository.table();
18
17
  break;
19
18
  }
20
19
  userService = new UserService(userRepository);
@@ -64,11 +64,11 @@ export default {
64
64
  throw new GraphQLError('error.server');
65
65
  }
66
66
  },
67
- paginateRole: async (_, { page, limit, seach }, { rbac }) => {
67
+ paginateRole: async (_, { page, limit, orderBy, orderDesc, search }, { rbac }) => {
68
68
  try {
69
69
  rbac.assertPermission(IdentityPermissions.ViewRole);
70
70
  const roleService = RoleServiceFactory();
71
- return await roleService.paginate(page, limit, seach);
71
+ return await roleService.paginate({ page, limit, orderBy, orderDesc, search });
72
72
  }
73
73
  catch (e) {
74
74
  console.error("paginateRole", e);
@@ -50,11 +50,11 @@ export default {
50
50
  throw new GraphQLError('error.server');
51
51
  }
52
52
  },
53
- paginateTenant: async (_, { page, limit, seach }, { rbac }) => {
53
+ paginateTenant: async (_, { page, limit, orderBy, orderDesc, search }, { rbac }) => {
54
54
  try {
55
55
  rbac.assertPermission(IdentityPermissions.ViewTenant);
56
56
  const tenantService = TenantServiceFactory();
57
- return await tenantService.paginate(page, limit, seach);
57
+ return await tenantService.paginate({ page, limit, orderBy, orderDesc, search });
58
58
  }
59
59
  catch (e) {
60
60
  console.error("paginateTenant", e);
@@ -34,14 +34,14 @@ export default {
34
34
  throw new GraphQLError('error.server');
35
35
  }
36
36
  },
37
- paginateUser: async (_, { page, limit, search, filters = [] }, { rbac }) => {
37
+ paginateUser: async (_, { page, limit, orderBy, orderDesc, search, filters = [] }, { rbac }) => {
38
38
  try {
39
39
  rbac.assertPermission(IdentityPermissions.ViewUser);
40
40
  let userService = UserServiceFactory();
41
41
  if (rbac.getAuthUser.tenantId) {
42
42
  filters.push({ field: 'tenant', operator: '$eq', value: rbac.getAuthUser.tenantId });
43
43
  }
44
- return await userService.paginate(page, limit, search, filters);
44
+ return await userService.paginate({ page, limit, orderBy, orderDesc, search, filters });
45
45
  }
46
46
  catch (e) {
47
47
  if (e instanceof UnauthorizedError) {
@@ -14,7 +14,7 @@ type RolePaginated{
14
14
  }
15
15
 
16
16
  type Query{
17
- paginateRole(page:Int, limit:Int, search:String): RolePaginated
17
+ paginateRole(options: PaginateOptions): RolePaginated
18
18
  fetchRole: [Role]
19
19
  fetchPermissions: [String]
20
20
  findRoleById(id: ID): Role
@@ -11,7 +11,7 @@ type TenantPaginated{
11
11
  }
12
12
 
13
13
  type Query{
14
- paginateTenant(page:Int, limit:Int, search:String): TenantPaginated
14
+ paginateTenant(options: PaginateOptions): TenantPaginated
15
15
  fetchTenant: [Tenant]
16
16
  findTenantById(id: ID): Tenant
17
17
  findTenantByName(name: String!): Tenant
@@ -21,7 +21,7 @@ type Query{
21
21
  me: User
22
22
  findUserByUsername(username: String!): User
23
23
  findUserById(id: ID!): User
24
- paginateUser(page: Int, limit: Int, search: String): UserPaginated
24
+ paginateUser(options: PaginateOptions): UserPaginated
25
25
  }
26
26
 
27
27
  input UserCreateInput{
@@ -30,7 +30,6 @@ const UserSchema = new mongoose.Schema({
30
30
  }
31
31
  },
32
32
  password: { type: String, required: true, index: false },
33
- code: { type: String, required: false, index: false },
34
33
  name: { type: String, required: false, index: false },
35
34
  active: { type: Boolean, required: true, default: false, index: false },
36
35
  phone: {
@@ -26,7 +26,7 @@ class RoleMongoRepository {
26
26
  const roles = await RoleModel.find().populate('childRoles').exec();
27
27
  return roles;
28
28
  }
29
- async paginate(page = 1, limit = 5, search) {
29
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
30
30
  const query = {};
31
31
  if (search) {
32
32
  query['$or'] = [
@@ -25,7 +25,7 @@ class TenantMongoRepository {
25
25
  const tenants = await TenantModel.find().exec();
26
26
  return tenants;
27
27
  }
28
- async paginate(page = 1, limit = 5, search) {
28
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
29
29
  const query = {};
30
30
  if (search) {
31
31
  query['$or'] = [
@@ -50,7 +50,7 @@ class UserMongoRepository {
50
50
  const user = await UserModel.findOne({ username: username }).populate(['role', 'tenant']).exec();
51
51
  return user;
52
52
  }
53
- async paginate(page = 1, limit = 5, search, filters) {
53
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
54
54
  const query = {};
55
55
  if (search) {
56
56
  query['$or'] = [
@@ -53,22 +53,6 @@ class RoleSqliteRepository {
53
53
  throw SqliteErrorToValidationError(e, roleData);
54
54
  }
55
55
  }
56
- async findById(id) {
57
- const role = this.db.prepare('SELECT * FROM roles WHERE id = ?').get(id);
58
- if (role) {
59
- await this.populateRole(role);
60
- return role;
61
- }
62
- return undefined;
63
- }
64
- async findByName(name) {
65
- const role = this.db.prepare('SELECT * FROM roles WHERE name = ?').get(name);
66
- if (role) {
67
- await this.populateRole(role);
68
- return role;
69
- }
70
- return undefined;
71
- }
72
56
  async update(id, roleData) {
73
57
  try {
74
58
  this.normalizeData(roleData);
@@ -85,6 +69,24 @@ class RoleSqliteRepository {
85
69
  throw SqliteErrorToValidationError(e, roleData);
86
70
  }
87
71
  }
72
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
73
+ const offset = page > 1 ? (page - 1) * limit : 0;
74
+ let where = "";
75
+ if (search) {
76
+ where = ` WHERE name LIKE '%${search}%'`;
77
+ }
78
+ const rCount = this.db.prepare('SELECT COUNT(*) as count FROM roles' + where).get();
79
+ const roles = this.db.prepare('SELECT * FROM roles LIMIT ? OFFSET ?' + where).all([limit, offset]);
80
+ for (const role of roles) {
81
+ await this.populateRole(role);
82
+ }
83
+ return {
84
+ page: page,
85
+ limit: limit,
86
+ total: rCount.count,
87
+ items: roles
88
+ };
89
+ }
88
90
  async delete(id) {
89
91
  const stmt = this.db.prepare('DELETE FROM roles WHERE id = ?');
90
92
  stmt.run(id);
@@ -95,30 +97,28 @@ class RoleSqliteRepository {
95
97
  stmt.run();
96
98
  return true;
97
99
  }
98
- async fetchAll() {
99
- const roles = this.db.prepare('SELECT * FROM roles').all();
100
- for (const role of roles) {
100
+ async findById(id) {
101
+ const role = this.db.prepare('SELECT * FROM roles WHERE id = ?').get(id);
102
+ if (role) {
101
103
  await this.populateRole(role);
104
+ return role;
102
105
  }
103
- return roles;
106
+ return undefined;
104
107
  }
105
- async paginate(page = 1, limit = 5, search = "") {
106
- const offset = page > 1 ? (page - 1) * limit : 0;
107
- let where = "";
108
- if (search) {
109
- where = ` WHERE name LIKE '%${search}%'`;
108
+ async findByName(name) {
109
+ const role = this.db.prepare('SELECT * FROM roles WHERE name = ?').get(name);
110
+ if (role) {
111
+ await this.populateRole(role);
112
+ return role;
110
113
  }
111
- const rCount = this.db.prepare('SELECT COUNT(*) as count FROM roles' + where).get();
112
- const roles = this.db.prepare('SELECT * FROM roles LIMIT ? OFFSET ?' + where).all([limit, offset]);
114
+ return undefined;
115
+ }
116
+ async fetchAll() {
117
+ const roles = this.db.prepare('SELECT * FROM roles').all();
113
118
  for (const role of roles) {
114
119
  await this.populateRole(role);
115
120
  }
116
- return {
117
- page: page,
118
- limit: limit,
119
- total: rCount.count,
120
- items: roles
121
- };
121
+ return roles;
122
122
  }
123
123
  async findWithoutPopulateById(id) {
124
124
  const role = this.db.prepare('SELECT * FROM roles WHERE id = ?').get(id);
@@ -76,7 +76,7 @@ class TenantSqliteRepository {
76
76
  }
77
77
  return tenants;
78
78
  }
79
- async paginate(page = 1, limit = 5, search = "") {
79
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
80
80
  const offset = page > 1 ? (page - 1) * limit : 0;
81
81
  let where = "";
82
82
  if (search) {
@@ -107,7 +107,7 @@ class UserSqliteRepository {
107
107
  user.tenant = await this.findTenantById(user.tenant);
108
108
  return user;
109
109
  }
110
- async paginate(page = 1, limit = 5, search = "", filters = []) {
110
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
111
111
  const offset = page > 1 ? (page - 1) * limit : 0;
112
112
  let where = "";
113
113
  if (search) {
@@ -103,9 +103,11 @@ async function RoleRoutes(fastify, options) {
103
103
  request.rbac.assertPermission(IdentityPermissions.ViewRole);
104
104
  const page = request.query.page;
105
105
  const limit = request.query.limit;
106
+ const orderBy = request.query.orderBy;
107
+ const orderDesc = request.query.orderDesc;
106
108
  const search = request.query.search;
107
109
  const roleService = RoleServiceFactory();
108
- let paginateResult = await roleService.paginate(page, limit, search);
110
+ let paginateResult = await roleService.paginate({ page, limit, search, orderBy, orderDesc });
109
111
  return paginateResult;
110
112
  }
111
113
  catch (e) {
@@ -84,9 +84,11 @@ async function TenantRoutes(fastify, options) {
84
84
  request.rbac.assertPermission(IdentityPermissions.ViewTenant);
85
85
  const page = request.query.page;
86
86
  const limit = request.query.limit;
87
+ const orderBy = request.query.orderBy;
88
+ const orderDesc = request.query.orderDesc;
87
89
  const search = request.query.search;
88
90
  const tenantService = TenantServiceFactory();
89
- let paginateResult = await tenantService.paginate(page, limit, search);
91
+ let paginateResult = await tenantService.paginate({ page, limit, orderBy, orderDesc, search });
90
92
  return paginateResult;
91
93
  }
92
94
  catch (e) {
@@ -53,13 +53,15 @@ async function UserRoutes(fastify, options) {
53
53
  request.rbac.assertPermission(IdentityPermissions.ViewUser);
54
54
  const page = request.query.page;
55
55
  const limit = request.query.limit;
56
+ const orderBy = request.query.orderBy;
57
+ const orderDesc = request.query.orderDesc;
56
58
  const search = request.query.search;
57
59
  const userService = UserServiceFactory();
58
60
  const filters = [];
59
61
  if (request.rbac.getAuthUser.tenantId) {
60
62
  filters.push({ field: 'tenant', operator: '$eq', value: request.rbac.getAuthUser.tenantId });
61
63
  }
62
- let paginateResult = await userService.paginate(page, limit, search, filters);
64
+ let paginateResult = await userService.paginate({ page, limit, orderBy, orderDesc, search, filters });
63
65
  return paginateResult;
64
66
  }
65
67
  catch (e) {
@@ -50,8 +50,8 @@ class RoleService {
50
50
  const roles = await this._repository.fetchAll();
51
51
  return roles;
52
52
  }
53
- async paginate(page = 1, limit = 5, search, filters) {
54
- const pagination = await this._repository.paginate(page, limit, search, filters);
53
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
54
+ const pagination = await this._repository.paginate({ page, limit, orderBy, orderDesc, search, filters });
55
55
  return pagination;
56
56
  }
57
57
  }
@@ -51,8 +51,8 @@ class TenantService {
51
51
  const tenants = await this._repository.fetchAll();
52
52
  return tenants;
53
53
  }
54
- async paginate(page = 1, limit = 5, search, filters) {
55
- const pagination = await this._repository.paginate(page, limit, search, filters);
54
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
55
+ const pagination = await this._repository.paginate({ page, limit, orderBy, orderDesc, search, filters });
56
56
  return pagination;
57
57
  }
58
58
  }
@@ -96,8 +96,8 @@ class UserService {
96
96
  const user = await this._repository.findByUsername(username);
97
97
  return user;
98
98
  }
99
- async paginate(page = 1, limit = 10, search, filters) {
100
- const pagination = await this._repository.paginate(page, limit, search, filters);
99
+ async paginate({ page = 1, limit = 5, orderBy = '', orderDesc = false, search = '', filters = [] }) {
100
+ const pagination = await this._repository.paginate({ page, limit, orderBy, orderDesc, search, filters });
101
101
  return pagination;
102
102
  }
103
103
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.0.22",
6
+ "version": "0.0.25",
7
7
  "description": "Identity module for user management, authentication and authorization.",
8
8
  "main": "dist/index.js",
9
9
  "types": "types/index.d.ts",
@@ -26,6 +26,9 @@
26
26
  "author": "Cristian Incarnato & Drax Team",
27
27
  "license": "ISC",
28
28
  "dependencies": {
29
+ "@drax/common-back": "^0.0.25",
30
+ "@drax/common-share": "^0.0.25",
31
+ "@drax/identity-share": "^0.0.25",
29
32
  "bcryptjs": "^2.4.3",
30
33
  "express-jwt": "^8.4.1",
31
34
  "graphql": "^16.8.2",
@@ -56,5 +59,5 @@
56
59
  "debug": "0"
57
60
  }
58
61
  },
59
- "gitHead": "2ff21dad6e1e9cc9119bf3c3095c3b291d850e53"
62
+ "gitHead": "606497ae64684b17c757a72ed57a4a7dda0f1f8e"
60
63
  }
@@ -20,7 +20,6 @@ const RoleServiceFactory = (verbose: boolean = false) : RoleService => {
20
20
  case DbEngine.Sqlite:
21
21
  console.log("RoleServiceFactory DB ENGINE SQLITE")
22
22
  roleRepository = new RoleSqliteRepository(DbSetupUtils.getDbConfig(), verbose)
23
- roleRepository.table()
24
23
  break;
25
24
  }
26
25
 
@@ -20,7 +20,6 @@ const TenantServiceFactory = (verbose: boolean = false) : TenantService => {
20
20
  case DbEngine.Sqlite:
21
21
  console.log("TenantServiceFactory DB ENGINE SQLITE")
22
22
  tenantRepository = new TenantSqliteRepository(DbSetupUtils.getDbConfig(), verbose)
23
- tenantRepository.table()
24
23
  break;
25
24
  }
26
25
 
@@ -17,7 +17,6 @@ const UserServiceFactory = (verbose:boolean = false) : UserService => {
17
17
  case DbEngine.Sqlite:
18
18
  console.log("UserServiceFactory DB ENGINE SQLITE")
19
19
  userRepository = new UserSqliteRepository(DbSetupUtils.getDbConfig(),verbose)
20
- userRepository.table()
21
20
  break;
22
21
  }
23
22
 
@@ -62,11 +62,11 @@ export default {
62
62
  throw new GraphQLError('error.server')
63
63
  }
64
64
  },
65
- paginateRole: async (_, {page, limit, seach}, {rbac}) => {
65
+ paginateRole: async (_, {page, limit, orderBy, orderDesc, search}, {rbac}) => {
66
66
  try {
67
67
  rbac.assertPermission(IdentityPermissions.ViewRole)
68
68
  const roleService = RoleServiceFactory()
69
- return await roleService.paginate(page, limit, seach)
69
+ return await roleService.paginate({page, limit, orderBy, orderDesc, search})
70
70
  } catch (e) {
71
71
  console.error("paginateRole",e)
72
72
  if (e instanceof UnauthorizedError) {
@@ -50,11 +50,11 @@ export default {
50
50
  throw new GraphQLError('error.server')
51
51
  }
52
52
  },
53
- paginateTenant: async (_, {page, limit, seach}, {rbac}) => {
53
+ paginateTenant: async (_, {page, limit, orderBy, orderDesc, search}, {rbac}) => {
54
54
  try {
55
55
  rbac.assertPermission(IdentityPermissions.ViewTenant)
56
56
  const tenantService = TenantServiceFactory()
57
- return await tenantService.paginate(page, limit, seach)
57
+ return await tenantService.paginate({page, limit, orderBy, orderDesc, search})
58
58
  } catch (e) {
59
59
  console.error("paginateTenant",e)
60
60
  if (e instanceof UnauthorizedError) {
@@ -35,14 +35,14 @@ export default {
35
35
  }
36
36
 
37
37
  },
38
- paginateUser: async (_, {page, limit, search, filters = []}, {rbac}) => {
38
+ paginateUser: async (_, {page, limit, orderBy, orderDesc, search, filters = []}, {rbac}) => {
39
39
  try {
40
40
  rbac.assertPermission(IdentityPermissions.ViewUser)
41
41
  let userService= UserServiceFactory()
42
42
  if(rbac.getAuthUser.tenantId){
43
43
  filters.push({field: 'tenant', operator: '$eq', value: rbac.getAuthUser.tenantId})
44
44
  }
45
- return await userService.paginate(page, limit, search, filters)
45
+ return await userService.paginate({page, limit, orderBy, orderDesc, search, filters})
46
46
  } catch (e) {
47
47
  if (e instanceof UnauthorizedError) {
48
48
  throw new GraphQLError(e.message)
@@ -14,7 +14,7 @@ type RolePaginated{
14
14
  }
15
15
 
16
16
  type Query{
17
- paginateRole(page:Int, limit:Int, search:String): RolePaginated
17
+ paginateRole(options: PaginateOptions): RolePaginated
18
18
  fetchRole: [Role]
19
19
  fetchPermissions: [String]
20
20
  findRoleById(id: ID): Role
@@ -11,7 +11,7 @@ type TenantPaginated{
11
11
  }
12
12
 
13
13
  type Query{
14
- paginateTenant(page:Int, limit:Int, search:String): TenantPaginated
14
+ paginateTenant(options: PaginateOptions): TenantPaginated
15
15
  fetchTenant: [Tenant]
16
16
  findTenantById(id: ID): Tenant
17
17
  findTenantByName(name: String!): Tenant
@@ -21,7 +21,7 @@ type Query{
21
21
  me: User
22
22
  findUserByUsername(username: String!): User
23
23
  findUserById(id: ID!): User
24
- paginateUser(page: Int, limit: Int, search: String): UserPaginated
24
+ paginateUser(options: PaginateOptions): UserPaginated
25
25
  }
26
26
 
27
27
  input UserCreateInput{
package/src/index.ts CHANGED
@@ -25,23 +25,20 @@ import LoadPermissions from "./setup/LoadPermissions.js";
25
25
  import LoadIdentityConfigFromEnv from "./setup/LoadIdentityConfigFromEnv.js";
26
26
  import RecoveryUserPassword from "./setup/RecoveryUserPassword.js";
27
27
 
28
- import type {IJwtUser} from "./interfaces/IJwtUser";
29
- import type {IRole, IRoleBase} from "./interfaces/IRole";
30
- import type {IUser, IUserCreate, IUserUpdate} from "./interfaces/IUser";
31
- import type {IUserRepository} from "./interfaces/IUserRepository";
32
28
  import type {IRoleRepository} from "./interfaces/IRoleRepository";
29
+ import type {ITenantRepository} from "./interfaces/ITenantRepository";
30
+ import type {IUserRepository} from "./interfaces/IUserRepository";
31
+
33
32
 
34
33
  const graphqlMergeResult = await GraphqlMerge()
35
34
  const identityTypeDefs = await graphqlMergeResult.typeDefs;
36
35
  const identityResolvers = await graphqlMergeResult.resolvers;
37
36
 
37
+
38
38
  export type {
39
- IJwtUser,
40
- IRole,
41
- IRoleBase,
42
39
  IRoleRepository,
43
- IUser, IUserCreate, IUserUpdate,
44
- IUserRepository
40
+ ITenantRepository,
41
+ IUserRepository,
45
42
  }
46
43
 
47
44
  export {
@@ -1,15 +1,10 @@
1
- import {IRole} from './IRole'
2
- import {IPaginateFilter, IPaginateResult} from "@drax/common-back";
3
- import {IID} from "./IID";
4
- interface IRoleRepository{
5
- create(role: IRole): Promise<IRole>;
6
- update(id: IID, updatedRole: IRole): Promise<IRole | null>;
7
- delete(id: IID): Promise<boolean>;
8
- findById(id: IID): Promise<IRole | null>;
1
+ import {IRole, IRoleBase} from "@drax/identity-share";
2
+ import {IDraxCrud} from "@drax/common-share";
3
+
4
+ interface IRoleRepository extends IDraxCrud<IRole, IRoleBase, IRoleBase> {
5
+ findById(id: string): Promise<IRole | null>;
9
6
  findByName(name: string): Promise<IRole | null>;
10
7
  fetchAll(): Promise<IRole[]>;
11
- paginate(page?: number, limit?: number, search?:string, filters?: IPaginateFilter[]): Promise<IPaginateResult>;
12
- table?():void
13
8
  }
14
9
 
15
10
  export {IRoleRepository}
@@ -1,15 +1,9 @@
1
- import {ITenant} from './ITenant'
2
- import {IPaginateFilter, IPaginateResult} from "@drax/common-back";
3
- import {IID} from "./IID";
4
- interface ITenantRepository{
5
- create(role: ITenant): Promise<ITenant>;
6
- update(id: IID, updatedRole: ITenant): Promise<ITenant | null>;
7
- delete(id: IID): Promise<boolean>;
8
- findById(id: IID): Promise<ITenant | null>;
1
+ import {ITenant, ITenantBase} from '@drax/identity-share'
2
+ import {IDraxCrud} from "@drax/common-share";
3
+ interface ITenantRepository extends IDraxCrud<ITenant,ITenantBase,ITenantBase>{
4
+ findById(id: string): Promise<ITenant | null>;
9
5
  findByName(name: string): Promise<ITenant | null>;
10
6
  fetchAll(): Promise<ITenant[]>;
11
- paginate(page?: number, limit?: number, search?:string, filters?: IPaginateFilter[]): Promise<IPaginateResult>;
12
- table?():void
13
7
  }
14
8
 
15
9
  export {ITenantRepository}
@@ -1,16 +1,10 @@
1
- import {IUser, IUserCreate, IUserUpdate} from './IUser'
2
- import {IPaginateFilter, IPaginateResult} from "@drax/common-back";
3
- import {IID} from "./IID";
4
- interface IUserRepository{
5
- create(role: IUserCreate): Promise<IUser>;
6
- update(id: IID, updatedRole: IUserUpdate): Promise<IUser | null>;
7
- delete(id: IID): Promise<boolean>;
8
- findById(id: IID): Promise<IUser | null>;
9
- findByUsername(username: string): Promise<IUser | null>;
10
- paginate(page?: number, limit?: number, search?: string, filters?: IPaginateFilter[]): Promise<IPaginateResult>;
11
- changePassword(id: IID, password:string):Promise<Boolean>;
12
- table?():void
1
+ import {IUser, IUserCreate, IUserUpdate} from '@drax/identity-share'
2
+ import {IDraxCrud} from "@drax/common-share";
13
3
 
4
+ interface IUserRepository extends IDraxCrud<IUser, IUserCreate, IUserUpdate>{
5
+ findById(id: string): Promise<IUser | null>;
6
+ findByUsername(username: string): Promise<IUser | null>;
7
+ changePassword(id: string, password:string):Promise<Boolean>;
14
8
  }
15
9
 
16
10
  export {IUserRepository}
@@ -1,5 +1,5 @@
1
1
  import AuthUtils from "../utils/AuthUtils.js";
2
- import {IJwtUser} from "../interfaces/IJwtUser";
2
+ import {IJwtUser} from "@drax/identity-share";
3
3
 
4
4
  function jwtMiddleware (request, reply, done) {
5
5
  try{
@@ -1,5 +1,4 @@
1
- import type {IJwtUser} from "../interfaces/IJwtUser";
2
- import type {IRole} from "../interfaces/IRole";
1
+ import {IJwtUser, IRole} from "@drax/identity-share";
3
2
  import {DraxCache, DraxConfig} from "@drax/common-back";
4
3
  import RoleServiceFactory from "../factory/RoleServiceFactory.js";
5
4
  import Rbac from "../rbac/Rbac.js";
@@ -1,7 +1,7 @@
1
1
  import {mongoose, MongooseSoftDelete} from '@drax/common-back';
2
2
  import uniqueValidator from 'mongoose-unique-validator';
3
3
  import mongoosePaginate from 'mongoose-paginate-v2'
4
- import {IRole} from '../interfaces/IRole'
4
+ import {IRole} from '@drax/identity-share'
5
5
  const Schema = mongoose.Schema
6
6
  import {PaginateModel} from "mongoose";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import {mongoose, MongooseSoftDelete} from '@drax/common-back';
2
2
  import uniqueValidator from 'mongoose-unique-validator';
3
3
  import mongoosePaginate from 'mongoose-paginate-v2'
4
- import {ITenant} from '../interfaces/ITenant'
4
+ import {ITenant} from '@drax/identity-share'
5
5
  const Schema = mongoose.Schema
6
6
  import {PaginateModel} from "mongoose";
7
7
 
@@ -1,5 +1,5 @@
1
1
  import {mongoose, MongooseSoftDelete} from '@drax/common-back';
2
- import {IUserGroup} from "../interfaces/IUserGroup";
2
+ import {IUserGroup} from "@drax/identity-share";
3
3
  import uniqueValidator from 'mongoose-unique-validator';
4
4
  import mongoosePaginate from 'mongoose-paginate-v2'
5
5
  import {PaginateModel} from "mongoose";
@@ -1,5 +1,5 @@
1
1
  import {mongoose, MongooseSoftDelete} from '@drax/common-back';
2
- import {IUser} from "../interfaces/IUser";
2
+ import {IUser} from "@drax/identity-share";
3
3
  import uniqueValidator from 'mongoose-unique-validator';
4
4
  import mongoosePaginate from 'mongoose-paginate-v2'
5
5
  import {PaginateModel} from "mongoose";
@@ -34,7 +34,6 @@ const UserSchema = new mongoose.Schema<IUser>({
34
34
  }
35
35
  },
36
36
  password: {type: String, required: true, index: false},
37
- code: {type: String, required: false, index: false},
38
37
  name: {type: String, required: false, index: false},
39
38
  active: {type: Boolean, required: true, default: false, index: false},
40
39
  phone: {