Usuario

Documentación detallada del módulo de Usuario para la gestión de usuarios y perfiles en RedCollege.

Introducción

El módulo UsuarioModule proporciona métodos para gestionar usuarios en el sistema RedCollege, permitiendo actualizar información personal, gestionar avatares y obtener datos de colaboradores. Este módulo es fundamental para el manejo de identidades y perfiles de usuario en la plataforma.

Métodos

actualizarAvatar

Actualiza la imagen de avatar de un usuario.

Parámetros:

NombreTipoDescripciónRequerido
fileFileArchivo de imagen para el avatar

Retorna:

  • Promise con un objeto { url: string } que contiene la URL del avatar actualizado

Ejemplo de uso:

const { auth } = useNuxtApp().$apis
const fileInput = document.querySelector('input[type="file"]')
const file = fileInput.files[0]
const resultado = await auth.usuario.actualizarAvatar(file)
const avatarUrl = resultado.url

obtenerColaboradorById

Obtiene información detallada de un colaborador específico por su ID.

Parámetros:

NombreTipoDescripciónRequerido
usuarioIdnumberID del usuario/colaborador

Retorna:

  • Promise con un objeto IUsuario con los detalles completos del colaborador

Ejemplo de uso:

const { auth } = useNuxtApp().$apis
const colaborador = await auth.usuario.obtenerColaboradorById(123)

actualizarUsuarioById

Actualiza la información de un usuario específico por su ID.

Parámetros:

NombreTipoDescripciónRequerido
usuarioIdnumberID del usuario a actualizar
usuarioIUsuarioUpdateDatos actualizados del usuario

Propiedades de IUsuarioUpdate:

PropiedadTipoDescripciónRequerido
nombrestringPrimer nombre del usuario
segundoNombrestringSegundo nombre del usuario
apellidoPaternostringApellido paterno
apellidoMaternostringApellido materno
rutstringRUT o documento de identidad
correostringCorreo electrónico
especialidadesIdsnumberArray de IDs de especialidades

Retorna:

  • Promise con un objeto IUsuario con los datos actualizados

Ejemplo de uso:

const { auth } = useNuxtApp().$apis
const usuarioActualizado = await auth.usuario.actualizarUsuarioById(123, {
  nombre: 'Juan',
  segundoNombre: 'Carlos',
  apellidoPaterno: 'Pérez',
  apellidoMaterno: 'González',
  rut: '12345678-9',
  correo: 'juan.perez@ejemplo.com',
  especialidadesIds: [1, 3]
})

Consideraciones importantes

  • La mayoría de los métodos requieren autenticación previa en el sistema.
  • Para actualizar el avatar, el archivo debe ser una imagen válida (JPEG, PNG, etc.) y no exceder el tamaño máximo permitido.
  • La actualización de información de usuarios requiere permisos especiales, generalmente limitados a administradores o al propio usuario.
  • El formato del RUT debe seguir el estándar chileno (números-dígito verificador).
  • Las especialidades deben existir previamente en el sistema para poder asociarlas a un usuario.

Errores comunes

  • 404 Not Found: El usuario solicitado no existe
  • 403 Forbidden: El usuario actual no tiene permisos para actualizar la información
  • 400 Bad Request: Datos enviados incorrectos o incompletos
  • 413 Payload Too Large: Tamaño de archivo de avatar excede el límite
  • 415 Unsupported Media Type: Formato de archivo no soportado
  • 500 Internal Server Error: Error en el servidor, intentar más tarde

Interfaces relacionadas

Las principales interfaces utilizadas por este módulo son:

  • IUsuario: Representa un usuario completo con todas sus relaciones y propiedades
    • id: Identificador único del usuario
    • correo: Correo electrónico (también usado para inicio de sesión)
    • clave: Contraseña (encriptada)
    • rut: Documento de identidad
    • nombre: Primer nombre
    • cargo: Cargo o posición en la institución
    • segundoNombre: Segundo nombre
    • apellidoPaterno: Apellido paterno
    • apellidoMaterno: Apellido materno
    • avatarUrl: URL de la imagen de perfil
    • telefono: Número de teléfono
    • createdAt: Fecha de creación
    • updatedAt: Fecha de última actualización
    • establecimientos: Array de establecimientos asociados
    • perfil: Información adicional del perfil
    • roles: Array de roles asociados
    • cursos: Array de cursos asociados
    • matriculas: Array de matrículas asociadas
    • especialidades: Array de especialidades asociadas
    • apoderados: Array de relaciones como apoderado
    • nombreCompleto: Nombre completo formateado
    • iniciales: Iniciales del nombre
  • IUsuarioUpdate: Formato para actualizar información de usuarios