Los endpoints bajoDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/camiloivcode/biblioteca-la-palabra/llms.txt
Use this file to discover all available pages before exploring further.
/api/socios permiten gestionar el padrón completo de socios de la biblioteca: consultar, registrar, actualizar y eliminar socios, además de acceder al historial de préstamos de cada uno. Todos los endpoints aplican el middleware de autenticación a nivel de router — no existe ninguna ruta pública dentro de este grupo.
Todos los endpoints requieren el encabezado
Authorization: Bearer <accessToken>. Obtén el token a través de POST /api/auth/login.Formato de respuesta estándar
Los endpoints de listado utilizan la envoltura paginada:GET /api/socios
Autenticación requerida: Sí Devuelve la lista paginada de todos los socios registrados. Admite búsqueda de texto libre sobrenombre, apellido, dni y email. Los resultados se ordenan alfabéticamente por apellido. Cada socio en el listado incluye el conteo total de sus préstamos (_count.prestamos).
Query params
Número de página a recuperar. Por defecto
1.Cantidad de socios por página. Por defecto
20.Texto libre para filtrar. Busca coincidencias parciales en
nombre, apellido, dni y email.Filtra socios por estado (p. ej.
ACTIVO, INACTIVO). Si se omite, devuelve socios de todos los estados.Response
true si la operación fue exitosa."Datos obtenidos correctamente"Array de objetos socio. Ver estructura en el ejemplo.
Ejemplo
Errores
| Código | Motivo |
|---|---|
401 | Token ausente, inválido o expirado. |
GET /api/socios/:id
Autenticación requerida: Sí Devuelve el detalle completo de un socio por su ID. Incluye los últimos 10 préstamos del socio (con el título del material asociado a cada uno) y el conteo total de préstamos.Path params
ID numérico del socio.
Response
true si el socio fue encontrado."Operación exitosa"Ejemplo
Errores
| Código | Motivo |
|---|---|
401 | Token ausente, inválido o expirado. |
404 | No existe ningún socio con el ID indicado. |
GET /api/socios/:id/prestamos
Autenticación requerida: Sí Devuelve el historial completo de préstamos de un socio, ordenados porfechaPrestamo de forma descendente (el más reciente primero). A diferencia de GET /api/socios/:id, aquí no hay límite de 10 registros. Cada préstamo incluye el titulo y tipo del material asociado.
Path params
ID numérico del socio.
Response
true si la operación fue exitosa."Operación exitosa"Array con todos los préstamos del socio. Cada objeto incluye los campos del préstamo y el objeto
material con titulo y tipo.Ejemplo
Errores
| Código | Motivo |
|---|---|
401 | Token ausente, inválido o expirado. |
404 | No existe ningún socio con el ID indicado. |
POST /api/socios
Autenticación requerida: Sí Registra un nuevo socio en el sistema. Eldni debe ser único — si ya existe un socio con ese documento, la operación falla con 409 Conflict. HTTP 201 Created se devuelve al crear el socio exitosamente.
Request body
Nombre del socio. No puede estar vacío. Se aplica trim automático.
Apellido del socio. No puede estar vacío. Se aplica trim automático.
Documento Nacional de Identidad del socio. Debe ser único en el sistema. Se aplica trim automático.
Correo electrónico del socio. Opcional. Si se provee, debe ser un email válido. Se normaliza automáticamente. Los valores falsy (
"", null) son tratados como ausentes.Teléfono de contacto. Opcional. Se aplica trim automático.
Domicilio del socio. Opcional. Se aplica trim automático.
Response
HTTP201 Created
true si el socio fue creado exitosamente."Socio registrado correctamente"Objeto del socio recién creado con todos sus campos.
Ejemplo
Errores
| Código | Motivo |
|---|---|
401 | Token ausente, inválido o expirado. |
409 | Ya existe un socio registrado con el mismo DNI. |
422 | Faltan campos requeridos (nombre, apellido, dni) o el email tiene formato inválido. |
PUT /api/socios/:id
Autenticación requerida: Sí Actualiza los datos de un socio existente. Todos los campos del body son opcionales — solo se modifican los campos que se envíen. La validación de ruta cubre únicamentenombre, apellido y email: si se incluyen, no pueden ser cadenas vacías (nombre, apellido) y el email debe ser válido.
Path params
ID numérico del socio a actualizar.
Request body
Nuevo nombre del socio. Opcional. Si se incluye, no puede estar vacío. Se aplica trim automático.
Nuevo apellido del socio. Opcional. Si se incluye, no puede estar vacío. Se aplica trim automático.
Nuevo email del socio. Opcional. Si se incluye, debe ser un email válido. Los valores falsy son tratados como ausentes.
Response
true si el socio fue actualizado."Socio actualizado correctamente"Objeto del socio actualizado con todos sus campos persistidos.
Ejemplo
Errores
| Código | Motivo |
|---|---|
401 | Token ausente, inválido o expirado. |
404 | No existe ningún socio con el ID indicado. |
422 | nombre o apellido están vacíos, o el email tiene formato inválido. |
DELETE /api/socios/:id
Autenticación requerida: Sí Elimina un socio del sistema de forma permanente. La operación falla con409 Conflict si el socio tiene préstamos con estado ACTIVO en ese momento — el socio debe devolver todos los materiales antes de poder ser eliminado.
Path params
ID numérico del socio a eliminar.
Response
true si el socio fue eliminado."Operación exitosa"Ejemplo
Errores
| Código | Motivo |
|---|---|
401 | Token ausente, inválido o expirado. |
404 | No existe ningún socio con el ID indicado. |
409 | El socio tiene uno o más préstamos con estado ACTIVO. Debe devolver los materiales antes de poder ser eliminado. |