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('/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(`/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(`/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; } } };