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¶
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
canDeletepermite al frontend mostrar/ocultar el botón de eliminar - Solo los cursos con
canDelete: truepueden ser eliminados víaDELETE /api/v2/school-courses/:id
Relacionado¶
- Crear Curso Escolar -
POST /api/v2/school-courses - Eliminar Curso Escolar -
DELETE /api/v2/school-courses/:id