60 lines
2.4 KiB
TypeScript
60 lines
2.4 KiB
TypeScript
import api from "../../../services/api"
|
|
import type {
|
|
PermissionTypesResponse,
|
|
RolePermissionsResponse,
|
|
UpdateRolePermissionsData,
|
|
UpdateRolePermissionsResponse
|
|
} from '../types/permissions'
|
|
|
|
export const permissionsService = {
|
|
/**
|
|
* Obtiene todos los tipos de permisos con sus permisos asociados
|
|
* @returns Promise con la respuesta de la API conteniendo los tipos de permisos y permisos
|
|
*/
|
|
async getAllPermissionTypes() {
|
|
try {
|
|
console.log('Obteniendo todos los tipos de permisos...');
|
|
const response = await api.get<PermissionTypesResponse>('/api/permission-types/all-with-permissions');
|
|
console.log('Tipos de permisos obtenidos:', response.data);
|
|
return response;
|
|
} catch (error) {
|
|
console.error('Error al obtener tipos de permisos:', error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Obtiene los permisos asignados a un rol específico
|
|
* @param roleId - ID del rol del cual obtener los permisos
|
|
* @returns Promise con la respuesta de la API conteniendo los permisos del rol
|
|
*/
|
|
async getRolePermissions(roleId: number) {
|
|
try {
|
|
console.log(`Obteniendo permisos del rol ${roleId}...`);
|
|
const response = await api.get<RolePermissionsResponse>(`/api/admin/roles/${roleId}/permissions`);
|
|
console.log(`Permisos del rol ${roleId} obtenidos:`, response.data);
|
|
return response;
|
|
} catch (error) {
|
|
console.error(`Error al obtener permisos del rol ${roleId}:`, error);
|
|
throw error;
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Actualiza los permisos asignados a un rol específico
|
|
* @param roleId - ID del rol al cual asignar los permisos
|
|
* @param data - Objeto con el array de IDs de permisos a asignar
|
|
* @returns Promise con la respuesta de la API
|
|
*/
|
|
async updateRolePermissions(roleId: number, data: UpdateRolePermissionsData) {
|
|
try {
|
|
console.log(`Actualizando permisos del rol ${roleId}...`, data);
|
|
const response = await api.put<UpdateRolePermissionsResponse>(`/api/admin/roles/${roleId}/permissions`, data);
|
|
console.log(`Permisos del rol ${roleId} actualizados:`, response.data);
|
|
return response;
|
|
} catch (error) {
|
|
console.error(`Error al actualizar permisos del rol ${roleId}:`, error);
|
|
throw error;
|
|
}
|
|
}
|
|
}; |