Endpoints usuarios - E7-I/conectados GitHub Wiki

CRUD Usuarios

POST /api/users/register

Descripción

Registra un nuevo usuario en el sistema. El tipo de cuenta se determina mediante el campo role. Si el rol es professional, se pueden incluir datos adicionales opcionales relacionados con su perfil profesional.

Parámetros de entrada

Tipo: application/json

Nombre Tipo Descripción Opcional
id number Identificador único del usuario (RUT) No
username string Nombre de usuario único No
name string Nombre completo del usuario No
email string Correo electrónico único No
password string Contraseña del usuario (será hasheada antes de guardar) No
  • username debe tener entre 3 y 30 caracteres
  • name debe tener entre 1 y 50 caracteres
  • email debe ser un correo electrónico válido
  • password debe tener entre 6 y 20 caracteres, el username no debe estar contenido de contraseña

Ejemplo de solicitud

{
  "id": 12345678,
  "username": "juanperez",
  "name": "Juan Pérez",
  "email": "[email protected]",
  "password": "secreta123"
}

Respuesta

Código: 201 Created
Tipo: application/json

{
  "message": "User registered successfully",
  "user": {
    "id": 12345678,
    "username": "juanperez",
    "name": "Juan Pérez",
    "email": "[email protected]",
    "role": "client",
    "profile": {
      "bio": "",
      "photoUrl": "",
      "contactInfo": []
    },
    "location": {
      "lat": 0,
      "lng": 0
    }
  }
}

Errores comunes

  • 400 Bad Request: Faltan campos requeridos o datos inválidos.
  • 409 Conflict: El nombre de usuario o correo ya están registrados.

POST /api/users/login

Descripción

Login de un usuario existente en el sistema. Se requiere el nombre de usuario (o correo electrónico) y la contraseña. Devuelve un JSON con parte de la información del usuario y un token JWT para autenticación en futuras solicitudes.

Parámetros de entrada

Tipo: application/json

Nombre Tipo Descripción Opcional
username string Nombre de usuario único *Sí
email string Correo electrónico único *Sí
password string Contraseña del usuario (será hasheada antes de guardar) No

* al menos uno de los campos username o email debe ser proporcionado.

Ejemplo de solicitud

{
  "username": "juanperez",
  "password": "secreta123",
}

Respuesta

Código: 201 Created
Tipo: application/json

{
  "message": "Login successful",
  "user": {
    "id": 14298637,
    "username": "juanperez",
    "name": "Juan Pérez",
    "email": "[email protected]",
    "role": "client",
    "profile": {
      "bio": "",
      "photoUrl": "",
      "contactInfo": []
    },
    "location": {
      "lat": 0,
      "lng": 0
    },
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
  }
}

Errores comunes

  • 400 Bad Request: Faltan campos requeridos o datos inválidos.
  • 401 Unauthorized: Credenciales incorrectas.