POST /api/v2/incident/:id/thread
Añade un mensaje al hilo de una incidencia de fichaje. Solo el empleado dueño de la incidencia puede añadir mensajes.
Autenticación
Authorization: Bearer <token>
Path Parameters
| Parámetro |
Tipo |
Obligatorio |
Descripción |
id |
number |
Sí |
ID de la incidencia |
Body (JSON)
| Campo |
Tipo |
Obligatorio |
Descripción |
response |
string |
Sí |
Contenido del mensaje |
Ejemplo de petición
curl -X POST "$HOST/api/v2/incident/123/thread" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"response": "Mi justificación para esta incidencia"
}'
Respuesta exitosa (201)
{
"status": "success",
"data": {
"thread": {
"id": 45,
"incidentId": 123,
"employeeId": 40,
"response": "Mi justificación para esta incidencia",
"senderType": "user",
"createdAt": "2025-01-15T10:00:00.000Z",
"employee": {
"id": 40,
"name": "Juan",
"lastName": "Pérez"
}
}
}
}
Campos del thread
| Campo |
Tipo |
Descripción |
id |
number |
ID único del mensaje |
incidentId |
number |
ID de la incidencia |
employeeId |
number |
ID del empleado que envió el mensaje |
response |
string |
Contenido del mensaje |
senderType |
string |
Siempre "user" en este endpoint |
createdAt |
string |
Fecha de creación (ISO 8601) |
employee |
object |
Datos del empleado |
Errores
| Código |
Mensaje |
Descripción |
| 400 |
employeeId missing from token |
Token inválido |
| 400 |
Invalid incident id |
ID no válido |
| 400 |
response is required |
Mensaje vacío o no proporcionado |
| 400 |
Cannot add thread to a closed incident |
La incidencia ya está cerrada |
| 403 |
Incident does not belong to this employee |
La incidencia no pertenece al empleado |
| 404 |
Incident not found |
Incidencia no existe |
| 401 |
Unauthorized |
Token no proporcionado o expirado |
Eventos de Socket
Al crear un mensaje, se emiten los siguientes eventos:
- incident_{incidentId}: con el objeto thread creado
- listen_notify_update_all: notificación general de nuevo mensaje