feat: add role user modules and shared table updates
This commit is contained in:
@@ -6,3 +6,6 @@ export * from './video.service';
|
||||
export * from './detection.service';
|
||||
export * from './session.service';
|
||||
export { projectDataService } from './project.service';
|
||||
export * from './permission.service';
|
||||
export * from './role.service';
|
||||
export * from './user.service';
|
||||
|
||||
9
src/services/api/permission.service.ts
Normal file
9
src/services/api/permission.service.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import axiosClient from '../axios/axios';
|
||||
import type { PermissionResponse } from '@/types';
|
||||
|
||||
export const permissionService = {
|
||||
getPermissions: async (): Promise<PermissionResponse> => {
|
||||
const response = await axiosClient.get<PermissionResponse>('api/permissions/my-permissions');
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
42
src/services/api/role.service.ts
Normal file
42
src/services/api/role.service.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import axiosClient from '../axios/axios';
|
||||
import type { Role, RoleListParams, RoleListResponse, RoleRequest } from '@/types';
|
||||
|
||||
const ROLES_ENDPOINT = 'api/roles';
|
||||
|
||||
export const roleService = {
|
||||
getRoles: async (params?: RoleListParams): Promise<RoleListResponse> => {
|
||||
const response = await axiosClient.get<RoleListResponse>(ROLES_ENDPOINT, {
|
||||
params: {
|
||||
skip: params?.skip ?? 0,
|
||||
limit: params?.limit ?? 10,
|
||||
search_term: params?.search_term,
|
||||
name: params?.name,
|
||||
display_name: params?.display_name,
|
||||
description: params?.description,
|
||||
effective_status: params?.effective_status,
|
||||
sort_by: params?.sort_by,
|
||||
sort_order: params?.sort_order,
|
||||
},
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
|
||||
getRoleById: async (id: number): Promise<Role> => {
|
||||
const response = await axiosClient.get<Role>(`${ROLES_ENDPOINT}/${id}`);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
saveRole: async (payload: RoleRequest): Promise<Role> => {
|
||||
const response = payload.id
|
||||
? await axiosClient.put<Role>(ROLES_ENDPOINT, payload)
|
||||
: await axiosClient.post<Role>(ROLES_ENDPOINT, payload);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
updateRoleStatus: async (id: number, isActive: boolean): Promise<Role> => {
|
||||
const response = await axiosClient.patch<Role>(`${ROLES_ENDPOINT}/${id}/status`, {
|
||||
is_active: isActive,
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
41
src/services/api/user.service.ts
Normal file
41
src/services/api/user.service.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import axiosClient from '../axios/axios';
|
||||
import type { AdministrationUser, UserListParams, UserListResponse, UserRequest } from '@/types';
|
||||
|
||||
const USERS_ENDPOINT = 'api/users';
|
||||
|
||||
export const userService = {
|
||||
getUsers: async (params?: UserListParams): Promise<UserListResponse> => {
|
||||
const response = await axiosClient.get<UserListResponse>(USERS_ENDPOINT, {
|
||||
params: {
|
||||
skip: params?.skip ?? 0,
|
||||
limit: params?.limit ?? 10,
|
||||
search_term: params?.search_term,
|
||||
userName: params?.userName,
|
||||
first_name: params?.first_name,
|
||||
phone_number: params?.phone_number,
|
||||
roles: params?.roles,
|
||||
effective_status: params?.effective_status,
|
||||
sort_by: params?.sort_by,
|
||||
sort_order: params?.sort_order,
|
||||
},
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
|
||||
saveUser: async (payload: UserRequest): Promise<AdministrationUser> => {
|
||||
const response = payload.id
|
||||
? await axiosClient.put<AdministrationUser>(USERS_ENDPOINT, payload)
|
||||
: await axiosClient.post<AdministrationUser>(USERS_ENDPOINT, payload);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
updateUserStatus: async (
|
||||
id: number,
|
||||
status: 'active' | 'inactive',
|
||||
): Promise<AdministrationUser> => {
|
||||
const response = await axiosClient.patch<AdministrationUser>(`${USERS_ENDPOINT}/${id}/status`, {
|
||||
status,
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user