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/prestamos gestionan el ciclo completo de préstamo de materiales: alta, devolución y actualización de mora. El servidor aplica reglas de negocio en orden antes de confirmar cualquier operación. La fecha de devolución esperada se calcula automáticamente a 30 días desde la fecha del préstamo (DIAS_PRESTAMO = 30). El estado del socio y el material se actualizan transaccionalmente junto con el registro del préstamo.
Todas las rutas de este recurso requieren autenticación mediante Bearer token. Incluye la cabecera
Authorization: Bearer <token> en cada solicitud. Un token inválido o ausente devuelve 401 Unauthorized.GET /api/prestamos
Devuelve una lista paginada de préstamos. Cada elemento incluye los datos del socio (id, nombre, apellido, dni) y del material (id, titulo, tipo, isbn) de forma anidada. Los resultados se ordenan del más reciente al más antiguo.
Query Parameters
Número de página a recuperar.
Cantidad de registros por página.
Filtra por estado del préstamo. Valores aceptados:
ACTIVO, DEVUELTO, MORA.Devuelve únicamente los préstamos del socio con ese ID.
Devuelve únicamente los préstamos asociados al material con ese ID.
Response
GET /api/prestamos/:id
Devuelve el detalle completo de un préstamo por su ID. Incluye el objetosocio completo y el objeto material con sus relaciones autor y categoria anidadas.
Path Parameters
ID numérico único del préstamo.
Response
404 Not Found si el ID no corresponde a ningún préstamo registrado.
POST /api/prestamos
Crea un nuevo préstamo. El servidor ejecuta tres validaciones de negocio en orden antes de persistir el registro. Si alguna falla, la operación se cancela por completo. La fecha de devolución esperada se asigna automáticamente a 30 días desde el momento de la creación (DIAS_PRESTAMO = 30).
Al crear el préstamo, si todos los ejemplares del material quedan prestados, su estado se actualiza automáticamente a PRESTADO dentro de la misma transacción.
Body Parameters
ID numérico del socio que realiza el préstamo. Debe ser un entero mayor o igual a
1.ID numérico del material a prestar. Debe ser un entero mayor o igual a
1.Notas opcionales sobre el préstamo. El valor se recorta de espacios en los extremos antes de guardarse.
Response 201 Created
Error Responses
| Código | Motivo |
|---|---|
400 Bad Request | Falta socioId o materialId, o alguno no es un entero válido mayor o igual a 1. |
404 Not Found | El socio o el material no existen en el sistema. |
409 Conflict | El socio está MOROSO o SUSPENDIDO, ya alcanzó el límite de 3 préstamos activos o en mora, o el material no está DISPONIBLE / no tiene ejemplares libres. |
PATCH /api/prestamos/:id/devolver
Registra la devolución de un préstamo. El servidor actualiza el estado del préstamo aDEVUELTO, asigna la fechaDevReal con la fecha y hora actuales, y restaura el estado del material a DISPONIBLE. Si el socio ya no tiene préstamos en mora tras esta devolución, su estado también vuelve a ACTIVO automáticamente.
Esta operación no requiere cuerpo en la petición.
Path Parameters
ID numérico del préstamo a devolver.
Response
Error Responses
| Código | Motivo |
|---|---|
404 Not Found | El ID no corresponde a ningún préstamo. |
409 Conflict | El préstamo ya tiene estado DEVUELTO. |
PATCH /api/prestamos/actualizar-mora
Recorre todos los préstamos con estadoACTIVO cuya fechaDevolucion sea anterior a la fecha y hora actuales, los marca como MORA y actualiza el estado de los socios afectados a MOROSO. La actualización se ejecuta en una única transacción atómica.
Este endpoint no requiere cuerpo en la petición y devuelve el número de préstamos actualizados.
Se recomienda llamar a este endpoint antes de generar reportes de socios morosos o listados de préstamos vencidos, para asegurar que la información está al día. Puede integrarse en un job programado (cron) o invocarse manualmente desde el panel de administración.