Saltar a contenido

GET /api/v2/blocks/completed

✅ Obtener bloques completados por curso escolar

Método/Ruta: GET /api/v2/blocks/completed
Auth: Bearer JWT (rol: admin/profesor)

Descripción: Obtiene los bloques que han sido marcados como closed (completados/finalizados) filtrados por curso escolar. Soporta filtrado opcional por rango de fechas y paginación.


Params

Parámetro Tipo Requerido Descripción Ejemplo
schoolCourseId query, number No ID del curso escolar (default: último registrado) 2025
from query, string (ISO date) No Fecha inicio del rango 2025-01-01
to query, string (ISO date) No Fecha fin del rango 2025-06-30
page query, number No Número de página (default: 1) 1
limit query, number No Resultados por página (default: 20, max: 100) 20

cURL

Ejemplo básico (sin parámetros, usa último curso)

curl -X GET "http://localhost:7001/api/v2/blocks/completed" \
  -H "Authorization: Bearer <TOKEN>"

Ejemplo con schoolCourseId específico

curl -X GET "http://localhost:7001/api/v2/blocks/completed?schoolCourseId=2025" \
  -H "Authorization: Bearer <TOKEN>"

Ejemplo con filtro de fechas

curl -X GET "http://localhost:7001/api/v2/blocks/completed?schoolCourseId=2025&from=2025-01-01&to=2025-06-30" \
  -H "Authorization: Bearer <TOKEN>"

Ejemplo con paginación

curl -X GET "http://localhost:7001/api/v2/blocks/completed?schoolCourseId=2025&page=2&limit=10" \
  -H "Authorization: Bearer <TOKEN>"

Ejemplo completo

curl -X GET "http://localhost:7001/api/v2/blocks/completed?schoolCourseId=2025&from=2025-01-01&to=2025-06-30&page=1&limit=20" \
  -H "Authorization: Bearer <TOKEN>"

Response (200 OK)

{
  "ok": true,
  "data": [
    {
      "studentBlockId": 42,
      "blockId": 28,
      "blockName": "Bloque 1",
      "studentId": 123,
      "studentName": "Juan Pérez",
      "subjectId": 5,
      "subjectName": "Piano",
      "grade": 8.5,
      "closedAt": "2025-06-15T10:30:00.000Z",
      "closedByEmployeeName": "María García"
    },
    {
      "studentBlockId": 43,
      "blockId": 29,
      "blockName": "Bloque 2",
      "studentId": 456,
      "studentName": "Ana López",
      "subjectId": 5,
      "subjectName": "Piano",
      "grade": 9.0,
      "closedAt": "2025-06-14T15:45:00.000Z",
      "closedByEmployeeName": "Carlos Ruiz"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "totalPages": 8
  }
}

Errors

400 Bad Request - No hay cursos escolares

{
  "error": "No school course available"
}

400 Bad Request - schoolCourseId inválido

{
  "error": "schoolCourseId must be a valid number"
}

400 Bad Request - Fecha inválida

{
  "error": "from must be a valid ISO date"
}

400 Bad Request - Paginación inválida

{
  "error": "page must be a positive number"
}

401 Unauthorized

{
  "error": "Unauthorized"
}

Notas

  • Filtro por curso escolar: Se obtienen los estudiantes registrados en el curso escolar especificado y se filtran sus bloques con status closed.
  • Filtro de fechas: Se aplica sobre el campo closedAt (fecha en que el bloque pasó a estado closed).
  • Ordenamiento: Los resultados se ordenan por closedAt descendente (más recientes primero).
  • Límite máximo: El parámetro limit tiene un máximo de 100 para evitar respuestas muy grandes.

Relacionado