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 Nombre del usuario en el sistema.
password string 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 Título del boletín.
pdf file 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 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.