Servicio - SebaUSM/GRUPO02-2025-PROYINF GitHub Wiki
Documentación de la API manual
Descripción de la utilidad de la API al proyecto: Esta API manual permite gestionar boletines y manejar la autenticación de usuarios con roles definidos, permitiendo realizar operaciones de creación, consulta y visualización de boletines, con restricciones basadas en los roles de "admin" y "maestro".
1. Inicio de sesión
- URI:
/auth/login
- Método:
POST
- Descripción: Permite a los usuarios iniciar sesión con sus credenciales. La ruta está conectada con el archivo
authController.js
y utiliza Knex para validar a los usuario en la base de datos.
Parámetros de Entrada
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
username |
string | Sí | Nombre del usuario en el sistema. |
password |
string | Sí | Contraseña correspondiente al usuario. |
Respuesta
- Código 200: Éxito. Devuelve el rol del usuario.
- Código 401: Credenciales incorrectas.
- Código 500: Error interno del servidor.
Ejemplo de Respuesta Exitosa:
{
"role": "admin"
}
2. Subir un boletín
- URI:
/upload
- Método:
POST
- Descripción: Permite a los usuarios con el rol de maestro subir un boletín en formato PDF.
Restricciones
- Solo aquellos usuarios que tengan el rol de "maestro" pueden acceder a este endpoint.
Parámetros de Entrada
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
title |
string | Sí | Título del boletín. |
pdf |
file | Sí | Archivo PDF del boletín. |
Respuesta
- Código 200: Éxito. Devuelve un mensaje confirmando la subida.
- Código 500: Error al subir el archivo.
Ejemplo de Respuesta Exitosa:
{
"message": "Archivo subido con éxito",
"pdf": {
"id": 3,
"title": "Boletín de Prueba"
}
}
3. Obtener todos los boletines
- URI:
/pdfs
- Método:
GET
- Descripción: Recupera un listado de todos los boletines almacenados.
Parámetros de Entrada
Este endpoint no requiere parámetros de entrada.
Respuesta
- Código 200: Éxito. Devuelve una lista de boletines con su ID y título.
- Código 500: Error al obtener los boletines.
Ejemplo de Respuesta Exitosa
{
"id": 1,
"title": "Boletín Agrícola 2024"
},
{
"id": 2,
"title": "Reporte Clima Q1"
}
4. Descargar un boletín por ID
- URI:
/pdf/:id
- Método:
GET
- Descripción: Permite descargar un boletín específico por su ID.
Parámetros de Entrada
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
id |
int | Sí | ID del boletín requerido |
Respuesta
- Código 200: Éxito. Devuelve el archivo PDF correspondiente.
- Código 404: No se encontró un boletín con el ID proporcionado.
- Código 500: Error al obtener el archivo.
Ejemplo de Respuesta Exitosa
{
"error": "Archivo no encontrado"
}
5. Rutas protegidas para vistas
- URI:
/dashboard/admin
: Vista para administradores./dashboard/maestro
: Vista para maestros (Bibliotecólogas).
- Método:
GET
- Descripción: Carga las vistas protegidas correspondientes.
Restricciones
- Solo usuarios con el rol adecuado ("admin" o "maestro") pueden acceder a estas rutas.
Respuesta
- Código 200: Éxito. Devuelve la vista correspondiente.
- Código 403: Acceso denegado para los usuarios sin el rol adecuado.
Nota: Estas rutas están protegidas por un middleware que verifica los roles de los usuarios.