Saltar a contenido

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.


Headers

Header Tipo Requerido Descripción
Authorization Bearer Token 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 Contenido del mensaje
senderType string 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?

  1. employeeId: Se extrae automáticamente del token JWT (campo employeeId del payload)
  2. senderType: Debe enviarse en el body según el rol del usuario:
  3. "admin" → si el usuario tiene rol de administrador
  4. "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)