Servicio de Usuario
Este servicio maneja operaciones relacionadas con usuarios y empresas en la aplicación.
Permite obtener información, actualizar datos y subir fotos de perfil.
🔍 Ubicación
src/services/userService.ts
📌 Propósito
Facilitar la interacción con la API para la gestión de usuarios y empresas, incluyendo:
- Consultar información de empresas por su ID.
- Consultar información de usuarios por su ID.
- Actualizar datos de usuario.
- Subir fotos de perfil.
🧰 Funciones exportadas
🔹 getEmpresaById(id: number)
Obtiene la información de una empresa mediante su ID.
Parámetros:
id(number): ID de la empresa.
Retorna:
UserDTO→ Datos de la empresa.
🔹 getUserById(id: number)
Obtiene la información de un usuario por su ID.
Parámetros:
id(number): ID del usuario.
Retorna:
UserDTO→ Datos del usuario.
🔹 updateUsuario(id: number, data: Partial<UserDTO>)
Actualiza los datos de un usuario existente.
Parámetros:
id(number): ID del usuario.data(Partial<UserDTO>): Campos a actualizar.
Retorna:
{ message: string }→ Mensaje de confirmación.
🔹 subirFotoPerfil(userId: number, foto: File)
Sube una nueva foto de perfil de usuario utilizando Cloudinary como proveedor de almacenamiento.
Parámetros:
userId(number): ID del usuario.foto(File): Archivo de imagen a subir.
Retorna:
- Respuesta de la API con la nueva URL de la foto y un mensaje.
Notas:
- Utiliza
multipart/form-datapara enviar el archivo. - Requiere token JWT almacenado en
localStorage.
📌 Ejemplo de uso
import { getUserById, updateUsuario, subirFotoPerfil } from "../services/userService";
// Obtener usuario
const usuario = await getUserById(5);
// Actualizar datos del usuario
await updateUsuario(5, { nombre: "Carlos Pérez" });
// Subir foto de perfil
const file = document.querySelector<HTMLInputElement>("#foto")?.files?.[0];
if (file) {
await subirFotoPerfil(5, file);
}
🔗 Dependencias
axiosInstance→ Cliente Axios configurado para consumir la API.UserDTO→ Definición de tipo para los datos de usuario.