Saltar a contenido

Obtener Todos los Cursos Escolares

GET /api/v2/school-courses

Auth: Bearer JWT (rol: admin)

Descripción: Obtiene todos los cursos escolares del sistema, ordenados del más reciente al más antiguo. Incluye un flag canDelete que indica si el curso puede ser eliminado de forma segura.

cURL

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

Response (200)

{
  "ok": true,
  "data": [
    {
      "id": 5,
      "name": "Curso 2026/2027",
      "isCurrent": true,
      "canDelete": false
    },
    {
      "id": 4,
      "name": "Curso 2025/2026",
      "isCurrent": false,
      "canDelete": false
    },
    {
      "id": 3,
      "name": "Curso 2024/2025",
      "isCurrent": false,
      "canDelete": false
    },
    {
      "id": 2,
      "name": "Curso Test",
      "isCurrent": false,
      "canDelete": true
    }
  ]
}

Campos de Respuesta

Campo Tipo Descripción
id number ID único del curso
name string Nombre del curso (ej: "Curso 2026/2027")
isCurrent boolean Si es el curso actual activo
canDelete boolean Si el curso puede ser eliminado de forma segura

Flag canDelete

El flag canDelete es true solo si: - ❌ No es el curso actual (isCurrent: false) - ❌ No tiene registros asociados (fichajes, matrículas, calificaciones, etc.)

Casos donde canDelete: false: - Curso actual del sistema - Curso con estudiantes matriculados - Curso con fichajes de empleados - Curso con calificaciones registradas - Curso con eventos/horarios - Curso con nóminas

Errores

Código Descripción Ejemplo
401 Token inválido o expirado { "message": "Unauthorized" }
403 Usuario sin permisos de admin { "message": "Forbidden" }

Notas

  • Los cursos se ordenan del más reciente al más antiguo
  • El flag canDelete permite al frontend mostrar/ocultar el botón de eliminar
  • Solo los cursos con canDelete: true pueden ser eliminados vía DELETE /api/v2/school-courses/:id

Relacionado