Saltar a contenido

Asignar estudiantes a un evento

✅ PUT /api/v2/registration/assign-students-to-event

Método/Ruta: PUT /api/v2/registration/assign-students-to-event
Auth: Bearer JWT (rol: admin/user)

Descripción: Asigna o desasigna estudiantes a un evento (clase del calendario).

Validación importante: No permite asignar estudiantes con matrícula en estado pending. Los estudiantes con matrícula pendiente serán rechazados y reportados en la respuesta. Sí permite quitar estudiantes sin importar su estado de matrícula.

Params

No aplica (usa body)

Body

{
  "eventId": 1271,
  "employeeId": "40",
  "subjectId": 1,
  "centerId": 1,
  "idsStudents": [1341, 1350]
}
Campo Tipo Requerido Descripción
eventId number ID del evento del calendario
employeeId string/number ID del empleado (profesor)
subjectId number ID de la materia
centerId number ID del centro
idsStudents number[] Array de IDs de estudiantes a asignar

cURL

curl -X PUT "http://localhost:7001/api/v2/registration/assign-students-to-event" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <TOKEN>" \
  -d '{
    "eventId": 1271,
    "employeeId": "40",
    "subjectId": 1,
    "centerId": 1,
    "idsStudents": [1341, 1350]
  }'

Response (200 OK)

{
  "status": "success",
  "data": {
    "assignedStudents": [1341],
    "removedStudents": [1355],
    "rejectedStudents": [
      {
        "studentId": 1350,
        "reason": "Registration status is pending"
      }
    ]
  }
}
Campo Descripción
assignedStudents IDs de estudiantes que fueron asignados exitosamente
removedStudents IDs de estudiantes que fueron removidos del evento
rejectedStudents Estudiantes rechazados con el motivo (matrícula pending)

Response con estudiantes rechazados por matrícula pending

Cuando se intenta asignar estudiantes con matrícula en estado pending, el endpoint no falla pero reporta cuáles fueron rechazados:

{
  "status": "success",
  "data": {
    "assignedStudents": [],
    "removedStudents": [],
    "rejectedStudents": [
      {
        "studentId": 1350,
        "reason": "Registration status is pending"
      },
      {
        "studentId": 1352,
        "reason": "Registration status is pending"
      }
    ]
  }
}

Importante: - El endpoint siempre devuelve 200 OK aunque haya estudiantes rechazados - El frontend debe revisar el array rejectedStudents para informar al usuario - Si rejectedStudents.length > 0, mostrar mensaje indicando qué estudiantes no pudieron ser asignados y por qué

Errors

400 Bad Request - Parámetros faltantes

{
  "status": "error",
  "message": "eventId is required"
}

401 Unauthorized - Token inválido o expirado

{
  "status": "error",
  "message": "Invalid or expired token"
}

Notas

  • Este endpoint reemplaza a PUT /api/v1/registration/update
  • Nueva validación: No permite asignar estudiantes con matrícula pending
  • Sí permite quitar estudiantes sin importar su estado de matrícula
  • Actualiza automáticamente el employeeId en las matrículas de los estudiantes asignados
  • Quita el employeeId de las matrículas de los estudiantes removidos
  • Actualiza la relación Employee-Subject automáticamente

Relacionado

  • GET /api/v2/registration/students-by-subject-and-center - Obtener estudiantes disponibles (con estado de matrícula)
  • GET /api/v2/registration/students-assigned-to-event - Ver estudiantes ya asignados a un evento