@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 +3 -3
- package/src/i18n/identity-permissions-i18n.ts +18 -2
- package/src/i18n/identity-role-i18n.ts +2 -0
- package/src/i18n/identity-tenant-i18n.ts +23 -0
- package/src/i18n/identity-user-i18n.ts +2 -0
- package/src/i18n/index.ts +2 -1
- package/src/index.ts +19 -3
- package/src/interfaces/IRoleProvider.ts +1 -1
- package/src/interfaces/ITenant.ts +7 -0
- package/src/interfaces/ITenantProvider.ts +12 -0
- package/src/interfaces/IUser.ts +4 -1
- package/src/providers/gql/RoleGqlProvider.ts +4 -4
- package/src/providers/gql/TenantGqlProvider.ts +68 -0
- package/src/providers/gql/UserGqlProvider.ts +3 -3
- package/src/providers/rest/TenantRestProvider.ts +56 -0
- package/src/system/TenantSystem.ts +39 -0
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.0.
|
|
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.
|
|
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": "
|
|
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:
|
|
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:
|
|
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,
|
|
@@ -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}
|
package/src/interfaces/IUser.ts
CHANGED
|
@@ -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
|
|
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}
|