Revisar Bloque (Aprobar/Rechazar)¶
POST /api/v2/blocks/student-block/:id/review
Permite aprobar o rechazar un bloque que está en estado pending.
Headers¶
| Header | Tipo | Requerido | Descripción |
|---|---|---|---|
| Authorization | Bearer Token | Sí | Token JWT del administrador |
Parámetros de URL¶
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | number | ID del student_block a revisar |
Body¶
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| action | string | Sí | "approve" o "reject" |
| reason | string | Solo si reject | Motivo del rechazo |
Respuestas¶
Aprobar (200)¶
{
"ok": true,
"studentBlockId": 14,
"blockId": 5,
"studentId": 10,
"previousStatus": "pending",
"newStatus": "closed",
"action": "approve",
"message": "Bloque aprobado correctamente. Estado cambiado a 'closed'."
}
Rechazar (200)¶
{
"ok": true,
"studentBlockId": 14,
"blockId": 5,
"studentId": 10,
"previousStatus": "pending",
"newStatus": "rejected",
"action": "reject",
"threadMessageId": 1,
"message": "Bloque rechazado. Estado cambiado a 'rejected'. Se ha iniciado un hilo de conversación."
}
Errores¶
| Código | Mensaje | Descripción |
|---|---|---|
| 400 | action must be 'approve' or 'reject' | Acción inválida |
| 400 | reason is required when rejecting | Falta el motivo del rechazo |
| 400 | Block can only be reviewed when status is 'pending' | El bloque no está en estado pending |
| 401 | Unauthorized | Token inválido o faltante |
| 404 | StudentBlock not found | No se encontró el registro |
Ejemplo¶
Aprobar¶
curl -X POST 'http://localhost:7001/api/v2/blocks/student-block/14/review' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{"action": "approve"}'
Rechazar¶
curl -X POST 'http://localhost:7001/api/v2/blocks/student-block/14/review' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"action": "reject",
"reason": "El bloque no tiene suficientes contenidos evaluados."
}'
Notas¶
- Al aprobar, el estado cambia de
pendingaclosed - Al rechazar, el estado cambia de
pendingarejected - Al rechazar se crea automáticamente el primer mensaje del hilo de conversación
- Se envía email de notificación al profesor en ambos casos