Buscar en la documentación

Conversación del incidente

Escribir y leer mensajes en un incidente, borrar el propio durante 5 minutos y cómo llegan a los demás participantes.

Módulo incidents1 min de lecturaVer en GitHub

Cada incidente tiene un chat. Quien lo puede ver lo lee; quien tiene incidents.comment (todos los roles) escribe, también en incidentes terminados, porque un mensaje no cambia el estado. Los mensajes no se editan: el propio se puede borrar durante 5 minutos, para corregir un error sin cambiar lo que otros ya leyeron.

Diagrama6 carriles · 12 pasos · 3 salidas de error
SíNoSíNoSíNoAbre el chat delincidente1Pide GET/incidents/{id}/comments2Escribe y pulsaEnter3Envía POST/incidents/{id}/comments4¿Menos de 20mensajes en elminuto?5Responde 429¿Lo ve, noestá eliminadoy puedecomentar?6Responde 404 o403Guarda el mensaje7Emiteincident.commentedy crea avisos8El mensaje apareceen sus pantallas yen la campana9Borra un mensajepropio10¿Es suyo, noestá borrado ytiene menos de5 min?11Responde 403 o409Lo marca comoborrado12
Los números coinciden con el paso a paso. En pantallas pequeñas el diagrama se desliza de lado.

Paso a paso

  1. PersonaAbre el chat del incidente

    Botón "Chat (N)" en la ficha del detalle, o un mensaje del historial (abre el chat en ese mensaje). ?conversacion=1 también lo abre. Mientras está abierto, los avisos de mensajes de ese incidente se dan por leídos.

  2. NavegadorPide GET /incidents/{id}/comments

    50 por página, del más reciente hacia atrás; "Ver anteriores" pide la página siguiente con before.

  3. PersonaEscribe y pulsa Enter

    Hasta 2.000 caracteres. Shift + Enter hace un salto de línea.

  4. NavegadorEnvía POST /incidents/{id}/comments
  5. API¿Menos de 20 mensajes en el minuto?

    Límite comments: 20 por minuto por persona.

  6. API¿Lo ve, no está eliminado y puede comentar?
  7. Base de datosGuarda el mensaje

    En incident_comments, con FK al incidente y a quien escribe. El detalle cuenta los mensajes (comments_count).

  8. Cola y avisosEmite incident.commented y crea avisos

    Tras confirmar. Recibe el aviso quien creó el incidente, el asignado y quienes ya escribieron, nunca quien escribió. Hay un solo aviso de mensajes sin leer por incidente y persona: si ya existe, sube su contador.

  9. ParticipantesEl mensaje aparece en sus pantallas y en la campana
  10. PersonaBorra un mensaje propio

    El botón solo aparece en los propios y durante 5 minutos (la API lo dice en actions de cada mensaje).

  11. API¿Es suyo, no está borrado y tiene menos de 5 min?
  12. Base de datosLo marca como borrado

    El texto se vacía y queda la fecha de borrado; un CHECK de la tabla exige que un mensaje tenga texto o esté borrado, nunca ambos.

Borrar un mensaje (pasos 10 a 12) es un camino aparte, con su propio inicio en la segunda fila del carril Persona. El borrado también se avisa en tiempo real, para que desaparezca de las pantallas abiertas.

Qué ve la persona en cada error

CódigoHTTPCuándoMensaje en pantalla
TOO_MANY_REQUESTS429Más de 20 mensajes en un minutoHiciste demasiados intentos seguidos. Espera {wait} y vuelve a intentarlo.
COMMENT_NOT_OWN403Se intenta borrar un mensaje de otra personaSolo quien escribió un mensaje puede borrarlo.
COMMENT_DELETE_EXPIRED409Pasaron más de 5 minutosYa pasaron más de 5 minutos desde que escribiste este mensaje, así que no se puede borrar. Si hace falta, escribe una aclaración.
COMMENT_ALREADY_DELETED409El mensaje ya estaba borradoEste mensaje ya estaba borrado.
RESOURCE_NOT_FOUND404No puede ver el incidente o está eliminadoNo encontramos lo que buscas. Puede que se haya eliminado o que no tengas acceso.

Dónde está en el código