@drax/identity-front 0.0.15 → 0.0.17

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.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.0.15",
6
+ "version": "0.0.17",
7
7
  "type": "module",
8
8
  "main": "./src/index.ts",
9
9
  "module": "./src/index.ts",
@@ -24,7 +24,7 @@
24
24
  "format": "prettier --write src/"
25
25
  },
26
26
  "dependencies": {
27
- "@drax/common-front": "^0.0.15"
27
+ "@drax/common-front": "^0.0.17"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@rushstack/eslint-patch": "^1.8.0",
@@ -46,5 +46,5 @@
46
46
  "vite-plugin-dts": "^3.9.1",
47
47
  "vitest": "^1.4.0"
48
48
  },
49
- "gitHead": "141cd8b418596b7a16d4baf7f5f0b8b7587ec546"
49
+ "gitHead": "10c296881a942de671414c7494afecb7c2614e7d"
50
50
  }
@@ -3,38 +3,54 @@ const messages = {
3
3
  permission: {
4
4
  'user':'User',
5
5
  'role':'Role',
6
+ 'tenant':'Tenant',
6
7
  'permissions': 'Permissions',
7
8
  'user:view': 'View User',
8
9
  'user:create': 'Create User',
9
10
  'user:update': 'Edit User',
10
11
  'user:delete': 'Delete User',
11
12
  'user:manage': 'Manage User',
13
+
12
14
  'role:view': 'View Role',
13
15
  'role:create': 'Create Role',
14
- 'role:edit': 'Edit Role',
16
+ 'role:update': 'Edit Role',
15
17
  'role:delete': 'Delete Role',
16
18
  'role:manage': 'Manage Role',
17
19
  'role:permissions': 'Permissions',
18
20
 
21
+ 'tenant:view': 'View Tenant',
22
+ 'tenant:create': 'Create Tenant',
23
+ 'tenant:update': 'Edit Tenant',
24
+ 'tenant:delete': 'Delete Tenant',
25
+ 'tenant:manage': 'Manage Tenant',
26
+
19
27
  }
20
28
  },
21
29
  es: {
22
30
  permission: {
23
31
  'user':'Usuario',
24
32
  'role':'Rol',
33
+ 'tenant':'Tenant',
25
34
  'permissions': 'Permisos',
26
35
  'user:view': 'Ver Usuario',
27
36
  'user:create': 'Crear Usuario',
28
37
  'user:update': 'Editar Usuario',
29
38
  'user:delete': 'Eliminar Usuario',
30
39
  'user:manage': 'Administrar Usuario',
40
+
31
41
  'role:view': 'Ver Rol',
32
42
  'role:create': 'Crear Rol',
33
- 'role:edit': 'Editar Rol',
43
+ 'role:update': 'Editar Rol',
34
44
  'role:delete': 'Eliminar Rol',
35
45
  'role:manage': 'Administrar Rol',
36
46
  'role:permissions': 'Permisos',
37
47
 
48
+ 'tenant:view': 'Ver Tenant',
49
+ 'tenant:create': 'Crear Tenant',
50
+ 'tenant:update': 'Editar Tenant',
51
+ 'tenant:delete': 'Eliminar Tenant',
52
+ 'tenant:manage': 'Administrar Tenant',
53
+
38
54
  }
39
55
  }
40
56
  }
@@ -3,6 +3,7 @@ const messages = {
3
3
  role: {
4
4
  name: "Name",
5
5
  permissions: "Username",
6
+ childRoles: "ChildRoles",
6
7
  readonly: "Read Only",
7
8
  updating: "Updating Role",
8
9
  creating: "Creating Role",
@@ -14,6 +15,7 @@ const messages = {
14
15
  role:{
15
16
  name: "Nombre",
16
17
  permissions: "Permisos",
18
+ childRoles: "Roles gestionados",
17
19
  readonly: "Solo lectura",
18
20
  updating: "Actualizando Rol",
19
21
  creating: "Creando Rol",
@@ -0,0 +1,23 @@
1
+ const messages = {
2
+ en: {
3
+ tenant: {
4
+ name: "Name",
5
+ updating: "Updating Tenant",
6
+ creating: "Creating Tenant",
7
+ deleting: "Deleting Tenant",
8
+ managing: 'Managing Tenant',
9
+ }
10
+ },
11
+ es: {
12
+ tenant:{
13
+ name: "Nombre",
14
+ updating: "Actualizando Tenant",
15
+ creating: "Creando Tenant",
16
+ deleting: "Eliminando Tenant",
17
+ managing: 'Gestionando Tenant',
18
+ }
19
+ }
20
+ }
21
+
22
+
23
+ export default messages
@@ -8,6 +8,7 @@ const messages = {
8
8
  phone: "Phone",
9
9
  avatar: "Avatar",
10
10
  role: "Role",
11
+ tenant: "Tenant",
11
12
  active: "Active",
12
13
  groups: "Groups",
13
14
  code: "Code",
@@ -35,6 +36,7 @@ const messages = {
35
36
  phone: "Télefono",
36
37
  avatar: "Avatar",
37
38
  role: "Rol",
39
+ tenant: "Tenant",
38
40
  active: "Activo",
39
41
  groups: "Grupos",
40
42
  code: "Codigo",
package/src/i18n/index.ts CHANGED
@@ -3,8 +3,9 @@ import identityValidationI18n from "./identity-validation-i18n.js";
3
3
  import identityPermissionI18n from "./identity-permissions-i18n.js";
4
4
  import identityUserI18n from "./identity-user-i18n.js";
5
5
  import identityRoleI18n from "./identity-role-i18n.js";
6
+ import identityTenantI18n from "./identity-tenant-i18n.js";
6
7
 
7
- const IdentityI18nMessages = merge.all([identityValidationI18n, identityUserI18n, identityRoleI18n, identityPermissionI18n])
8
+ const IdentityI18nMessages = merge.all([identityValidationI18n, identityUserI18n, identityRoleI18n, identityTenantI18n, identityPermissionI18n])
8
9
 
9
10
  export default IdentityI18nMessages
10
11
  export {IdentityI18nMessages}
package/src/index.ts CHANGED
@@ -1,38 +1,50 @@
1
- import AuthSystem from "./system/AuthSystem.js"
2
- import UserSystem from "./system/UserSystem.js"
3
- import RoleSystem from "./system/RoleSystem.js"
4
1
  import {AuthHelper} from "./helpers/AuthHelper.js"
5
2
  import {jwtDecodeHelper} from "./helpers/JwtDecodeHelper.js"
6
3
 
7
4
  import AuthRestProvider from "./providers/rest/AuthRestProvider.js";
8
5
  import AuthGqlProvider from "./providers/gql/AuthGqlProvider.js";
6
+ import AuthSystem from "./system/AuthSystem.js"
7
+
9
8
 
10
9
  import UserRestProvider from "./providers/rest/UserRestProvider.js";
11
10
  import UserGqlProvider from "./providers/gql/UserGqlProvider.js";
11
+ import UserSystem from "./system/UserSystem.js"
12
+
12
13
 
13
14
  import RoleRestProvider from "./providers/rest/RoleRestProvider.js";
14
15
  import RoleGqlProvider from "./providers/gql/RoleGqlProvider.js";
16
+ import RoleSystem from "./system/RoleSystem.js"
17
+
18
+
19
+ import TenantRestProvider from "./providers/rest/TenantRestProvider.js";
20
+ import TenantGqlProvider from "./providers/gql/TenantGqlProvider.js";
21
+ import TenantSystem from "./system/TenantSystem.js"
22
+
15
23
 
16
24
  import {IdentityI18nMessages} from "./i18n/index.js"
17
25
 
18
26
  import type {IAuthProvider} from "./interfaces/IAuthProvider"
19
27
  import type {IUserProvider} from "./interfaces/IUserProvider"
20
28
  import type {IRoleProvider} from "./interfaces/IRoleProvider"
29
+ import type {ITenantProvider} from "./interfaces/ITenantProvider"
21
30
  import type {IAuthUser} from "./interfaces/IAuthUser"
22
31
  import type {IUser, IUserCreate, IUserUpdate, IUserPassword} from "./interfaces/IUser"
23
32
  import type {IRole} from "./interfaces/IRole"
33
+ import type {ITenant} from "./interfaces/ITenant"
24
34
  import type {ILoginResponse} from "./interfaces/ILoginResponse"
25
35
 
26
36
  export type {
27
37
  IAuthProvider,
28
38
  IUserProvider,
29
39
  IRoleProvider,
40
+ ITenantProvider,
30
41
  IAuthUser,
31
42
  IUser,
32
43
  IUserCreate,
33
44
  IUserUpdate,
34
45
  IUserPassword,
35
46
  IRole,
47
+ ITenant,
36
48
  ILoginResponse
37
49
  }
38
50
 
@@ -47,10 +59,14 @@ export {
47
59
  RoleGqlProvider,
48
60
  RoleRestProvider,
49
61
 
62
+ TenantGqlProvider,
63
+ TenantRestProvider,
64
+
50
65
  //Systems
51
66
  AuthSystem,
52
67
  UserSystem,
53
68
  RoleSystem,
69
+ TenantSystem,
54
70
 
55
71
  //Helpers
56
72
  AuthHelper,
@@ -1,4 +1,4 @@
1
- import type {IRole} from "@/interfaces/IRole";
1
+ import type {IRole} from "./IRole";
2
2
  import type {IPaginateClient} from "@drax/common-front";
3
3
 
4
4
  interface IRoleProvider {
@@ -0,0 +1,7 @@
1
+
2
+ interface ITenant{
3
+ id ?: string
4
+ name: string
5
+ }
6
+
7
+ export type {ITenant}
@@ -0,0 +1,12 @@
1
+ import type {ITenant} from "./ITenant";
2
+ import type {IPaginateClient} from "@drax/common-front";
3
+
4
+ interface ITenantProvider {
5
+ fetchTenant(): Promise<any>
6
+ paginateTenant(page: number, limit: number, search:string): Promise<IPaginateClient>
7
+ createTenant(input: ITenant): Promise<any>
8
+ editTenant(id: string, input: ITenant): Promise<ITenant>
9
+ deleteTenant(id: string): Promise<any>
10
+ }
11
+
12
+ export type {ITenantProvider}
@@ -1,4 +1,5 @@
1
1
  import type {IRole} from "@/interfaces/IRole";
2
+ import type {ITenant} from "@/interfaces/ITenant";
2
3
 
3
4
  interface IUser {
4
5
  id: string
@@ -9,7 +10,7 @@ interface IUser {
9
10
  phone: string
10
11
  avatar: string
11
12
  role: IRole
12
-
13
+ tenant: ITenant
13
14
  }
14
15
 
15
16
  interface IUserCreate {
@@ -20,6 +21,7 @@ interface IUserCreate {
20
21
  active: boolean
21
22
  phone: string
22
23
  role: string
24
+ tenant: string
23
25
  }
24
26
 
25
27
  interface IUserUpdate {
@@ -29,6 +31,7 @@ interface IUserUpdate {
29
31
  active: boolean
30
32
  phone: string
31
33
  role: string
34
+ tenant: string
32
35
  }
33
36
 
34
37
  interface IUserPassword {
@@ -27,7 +27,7 @@ class RoleGqlProvider implements IRoleProvider {
27
27
  }
28
28
 
29
29
  async fetchRole(): Promise<any> {
30
- const query: string = `query fetchRole { fetchRole { id name permissions readonly } }`
30
+ const query: string = `query fetchRole { fetchRole { id name permissions childRoles{id name} readonly } }`
31
31
  const variables = {}
32
32
  let data = await this.gqlClient.query(query, variables)
33
33
  return data.fetchRole
@@ -35,7 +35,7 @@ class RoleGqlProvider implements IRoleProvider {
35
35
 
36
36
  async createRole(payload: IRole): Promise<any> {
37
37
  const query: string = `mutation createRole($input: RoleInput) {
38
- createRole(input: $input) {id name permissions readonly }
38
+ createRole(input: $input) {id name permissions childRoles{id name} readonly }
39
39
  }`
40
40
  const variables = {input: payload}
41
41
  let data = await this.gqlClient.mutation(query, variables)
@@ -44,7 +44,7 @@ class RoleGqlProvider implements IRoleProvider {
44
44
 
45
45
  async editRole(id: string, payload: IRole): Promise<IRole> {
46
46
  const query: string = `mutation updateRole($id: ID!, $input: RoleInput) { updateRole(id: $id, input: $input) {
47
- id name permissions readonly } }`
47
+ id name permissions childRoles{id name} readonly } }`
48
48
  const variables = {id, input: payload}
49
49
  let data = await this.gqlClient.mutation(query, variables)
50
50
  return data.createRole
@@ -60,7 +60,7 @@ class RoleGqlProvider implements IRoleProvider {
60
60
  async paginateRole(page: number, limit: number, search:string = ""): Promise<IPaginateClient> {
61
61
  const query: string = `query paginateRole($page: Int, $limit: Int, $search:String) {
62
62
  paginateRole(page: $page, limit: $limit, search: $search) {
63
- total, page, limit, items{id, name , permissions, readonly }
63
+ total, page, limit, items{id name permissions childRoles{id name} readonly }
64
64
  }
65
65
  }`
66
66
  const variables = {page, limit,search}
@@ -0,0 +1,68 @@
1
+ import type {IGqlClient, IPaginateClient} from '@drax/common-front'
2
+ import type {ITenantProvider} from "../../interfaces/ITenantProvider";
3
+ import type {ITenant} from "../../interfaces/ITenant";
4
+
5
+
6
+ class TenantGqlProvider implements ITenantProvider {
7
+
8
+ gqlClient: IGqlClient
9
+
10
+ constructor(gqlClient: IGqlClient) {
11
+ this.gqlClient = gqlClient
12
+ }
13
+
14
+ setHttpClientToken(token: string): void {
15
+ this.gqlClient.addHeader('Authorization', `Bearer ${token}`)
16
+ }
17
+
18
+ removeHttpClientToken(): void {
19
+ this.gqlClient.removeHeader('Authorization')
20
+ }
21
+
22
+
23
+ async fetchTenant(): Promise<any> {
24
+ const query: string = `query fetchTenant { fetchTenant { id name } }`
25
+ const variables = {}
26
+ let data = await this.gqlClient.query(query, variables)
27
+ return data.fetchTenant
28
+ }
29
+
30
+ async createTenant(payload: ITenant): Promise<any> {
31
+ const query: string = `mutation createTenant($input: TenantInput) {
32
+ createTenant(input: $input) {id name }
33
+ }`
34
+ const variables = {input: payload}
35
+ let data = await this.gqlClient.mutation(query, variables)
36
+ return data.createTenant
37
+ }
38
+
39
+ async editTenant(id: string, payload: ITenant): Promise<ITenant> {
40
+ const query: string = `mutation updateTenant($id: ID!, $input: TenantInput) { updateTenant(id: $id, input: $input) {
41
+ id name } }`
42
+ const variables = {id, input: payload}
43
+ let data = await this.gqlClient.mutation(query, variables)
44
+ return data.createTenant
45
+ }
46
+
47
+ async deleteTenant(id: string): Promise<any> {
48
+ const query: string = `mutation deleteTenant($id: ID!) { deleteTenant(id: $id) }`
49
+ const variables = {id: id}
50
+ let data = await this.gqlClient.mutation(query, variables)
51
+ return data.createTenant
52
+ }
53
+
54
+ async paginateTenant(page: number, limit: number, search:string = ""): Promise<IPaginateClient> {
55
+ const query: string = `query paginateTenant($page: Int, $limit: Int, $search:String) {
56
+ paginateTenant(page: $page, limit: $limit, search: $search) {
57
+ total, page, limit, items{id, name }
58
+ }
59
+ }`
60
+ const variables = {page, limit,search}
61
+ let data = await this.gqlClient.query(query, variables)
62
+ return data.paginateTenant
63
+ }
64
+
65
+
66
+ }
67
+
68
+ export default TenantGqlProvider
@@ -20,7 +20,7 @@ class UserGqlProvider implements IUserProvider {
20
20
 
21
21
  async createUser(payload: IUserCreate): Promise<IUser> {
22
22
  const query: string = `mutation createUser($input: UserCreateInput) { createUser(input: $input) {
23
- id username name email phone active role{id name} } }`
23
+ id username name email phone active role{id name} tenant{id name} } }`
24
24
  const variables = {input: payload}
25
25
  let data = await this.gqlClient.mutation(query, variables)
26
26
  return data.createUser
@@ -28,7 +28,7 @@ class UserGqlProvider implements IUserProvider {
28
28
 
29
29
  async editUser(id: string, payload: IUserUpdate): Promise<IUser> {
30
30
  const query: string = `mutation updateUser($id: ID!, $input: UserUpdateInput) { updateUser(id: $id, input: $input) {
31
- id username name email phone active role{id name} } }`
31
+ id username name email phone active role{id name} tenant{id name} } }`
32
32
  const variables = {id, input: payload}
33
33
  let data = await this.gqlClient.mutation(query, variables)
34
34
  return data.createUser
@@ -51,7 +51,7 @@ class UserGqlProvider implements IUserProvider {
51
51
  async paginateUser(page: number, limit: number, search:string = ""): Promise<IPaginateClient> {
52
52
  const query: string = `query paginateUser($page: Int, $limit: Int, $search:String) {
53
53
  paginateUser(page: $page, limit: $limit, search: $search) {
54
- total, page, limit, items{ id, name username, email, phone, active, role{id, name} }
54
+ total, page, limit, items{ id, name username, email, phone, active, role{id, name} tenant{id name} }
55
55
  }
56
56
  }`
57
57
  const variables = {page, limit, search}
@@ -0,0 +1,56 @@
1
+ import type {IHttpClient, IPaginateClient} from '@drax/common-front'
2
+ import type {ITenantProvider} from "../../interfaces/ITenantProvider.ts";
3
+ import type {ITenant} from "../../interfaces/ITenant";
4
+
5
+ class TenantRestProvider implements ITenantProvider {
6
+
7
+ httpClient: IHttpClient
8
+
9
+ constructor(httpClient: IHttpClient) {
10
+ this.httpClient = httpClient
11
+ }
12
+
13
+ setHttpClientToken(token: string): void {
14
+ this.httpClient.addHeader('Authorization', `Bearer ${token}`)
15
+ }
16
+
17
+ removeHttpClientToken(): void {
18
+ this.httpClient.removeHeader('Authorization')
19
+ }
20
+
21
+
22
+ async fetchTenant(): Promise<any> {
23
+ const url = '/api/tenants/all'
24
+ let tenant = await this.httpClient.get(url)
25
+ return tenant
26
+ }
27
+
28
+ async createTenant(data: ITenant): Promise<any> {
29
+ const url = '/api/tenants'
30
+ let tenant = await this.httpClient.post(url, data)
31
+ return tenant
32
+ }
33
+ async editTenant(id: string, data: ITenant): Promise<ITenant> {
34
+ const url = '/api/tenants/' + id
35
+ let user = await this.httpClient.put(url, data)
36
+ return user as ITenant
37
+ }
38
+
39
+ async deleteTenant(id: string): Promise<any> {
40
+ const url = '/api/tenants/' + id
41
+ let user = await this.httpClient.delete(url)
42
+ return user
43
+ }
44
+
45
+ async paginateTenant(page: number = 1, limit: number = 5, search:string=""): Promise<IPaginateClient> {
46
+ const url = '/api/tenants'
47
+ const params = {page, limit, search}
48
+ let paginatedTenants = await this.httpClient.get(url, {params})
49
+ return paginatedTenants as IPaginateClient
50
+
51
+ }
52
+
53
+
54
+ }
55
+
56
+ export default TenantRestProvider
@@ -0,0 +1,39 @@
1
+ import type {ITenantProvider} from "@/interfaces/ITenantProvider";
2
+ import type {ITenant} from "@/interfaces/ITenant";
3
+ import type {IPaginateClient} from "@drax/common-front";
4
+
5
+
6
+ class TenantSystem {
7
+
8
+ _provider: ITenantProvider
9
+ prototype: string;
10
+
11
+ constructor(provider: ITenantProvider) {
12
+ this._provider = provider;
13
+ this.prototype = 'TenantSystem'
14
+ }
15
+
16
+ fetchTenant():Promise<any> {
17
+ return this._provider.fetchTenant()
18
+ }
19
+
20
+ async paginateTenant(page:number = 1, perPage:number = 5, search:string=""):Promise<IPaginateClient> {
21
+ return this._provider.paginateTenant(page, perPage,search)
22
+ }
23
+
24
+ async createTenant(userPayload: ITenant):Promise<ITenant> {
25
+ return this._provider.createTenant(userPayload)
26
+ }
27
+
28
+ async editTenant(id:string, userPayload: ITenant):Promise<ITenant> {
29
+ return this._provider.editTenant(id, userPayload)
30
+ }
31
+
32
+ async deleteTenant(id: string):Promise<any> {
33
+ return this._provider.deleteTenant(id)
34
+ }
35
+
36
+ }
37
+
38
+ export default TenantSystem
39
+ export {TenantSystem}