Añadir Mensaje al Hilo
POST /api/v2/blocks/student-block/:id/thread
Añade un nuevo mensaje al hilo de conversación de un bloque.
| Header |
Tipo |
Requerido |
Descripción |
| Authorization |
Bearer Token |
Sí |
Token JWT del usuario autenticado |
Nota: El employeeId del remitente se obtiene automáticamente del token JWT. No es necesario enviarlo en el body.
Parámetros de URL
| Parámetro |
Tipo |
Descripción |
| id |
number |
ID del student_block |
Body
{
"message": "string",
"senderType": "employee" | "admin"
}
| Campo |
Tipo |
Requerido |
Descripción |
| message |
string |
Sí |
Contenido del mensaje |
| senderType |
string |
Sí |
Tipo de remitente: "employee" (profesor) o "admin" |
Respuesta Exitosa (201)
{
"ok": true,
"threadMessage": {
"id": 3,
"studentBlockId": 14,
"employeeId": 4,
"message": "Ya he añadido el contenido faltante.",
"senderType": "employee",
"createdAt": "2025-12-03T15:00:00.000Z"
}
}
Campos de respuesta
| Campo |
Tipo |
Descripción |
| ok |
boolean |
Indica éxito |
| threadMessage |
object |
Mensaje creado |
Campos del mensaje
| Campo |
Tipo |
Descripción |
| id |
number |
ID del mensaje |
| studentBlockId |
number |
ID del student_block |
| employeeId |
number |
ID del empleado que envió |
| message |
string |
Contenido del mensaje |
| senderType |
string |
"admin" o "employee" |
| createdAt |
string |
Fecha de creación (ISO 8601) |
Errores
| Código |
Mensaje |
Descripción |
| 400 |
message is required |
Falta el mensaje |
| 401 |
Unauthorized |
Token inválido o faltante |
| 404 |
StudentBlock not found |
No se encontró el registro |
Ejemplo
Profesor responde
curl -X POST 'http://localhost:7001/api/v2/blocks/student-block/14/thread' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"message": "Ya he completado los contenidos faltantes.",
"senderType": "employee"
}'
Admin responde
curl -X POST 'http://localhost:7001/api/v2/blocks/student-block/14/thread' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"message": "Perfecto, voy a revisar de nuevo.",
"senderType": "admin"
}'
Notas
¿Cómo se identifica al remitente?
employeeId: Se extrae automáticamente del token JWT (campo employeeId del payload)
senderType: Debe enviarse en el body según el rol del usuario:
"admin" → si el usuario tiene rol de administrador
"employee" → si el usuario es profesor
Notificaciones
- Si
senderType: "admin" → se envía email al profesor notificando el nuevo mensaje
- Si
senderType: "employee" → no se envía email (el admin verá el mensaje en el sistema)