Skip to content

Fix: los comentarios normales de instancia eliminados o editados dejan marca en el listado

belen.varsi requested to merge pft/fix/marca-comentarios-editados-eliminados into dev

Mantis 0044483, 0044484

Qué

El listado de comentarios normales de una instancia ahora incluye los comentarios eliminados, sin su texto, e informa si un comentario fue editado. Acompaña a los Mantis 0044483 y 0044484 (editar y eliminar comentarios normales desde el frontend).

Por qué

Al habilitar editar y eliminar en la pantalla, un comentario eliminado desaparecía del seguimiento sin dejar rastro visible, y uno editado no se distinguía del original. La información seguía en la base y en la auditoría, pero quien lee el seguimiento no tenía forma de saber que faltaba o había cambiado algo. Con la marca, el propio listado lo muestra y la auditoría queda para el detalle.

Cambios

  • ComentarioNormalInstanciaService.listarPorInstancia: devuelve los comentarios ACTIVO y ELIMINADO. En los ELIMINADO, contenido va en null.
  • ComentarioNormalInstanciaResponseDTO: nuevo campo editado. Se calcula comparando updated_at con created_at (con un margen de 1 segundo, porque al crear las dos fechas pueden diferir en milisegundos). En un comentario eliminado, updatedAt es la fecha de eliminación.
  • ComentarioNormalInstanciaController: el listado se ordena por createdAt por defecto, para que un comentario editado o eliminado no cambie de posición.
  • ComentarioNormalInstanciaService.editar: usa saveAndFlush para que la respuesta ya traiga la fecha de la edición.
  • ComentarioNormalInstanciaRepository: findByInstancia_CodInstanciaAndEstadoIn reemplaza a findByInstancia_CodInstanciaAndEstado, que quedaba sin uso.
  • Tests del service: 3 casos nuevos (eliminado sin contenido, editado, recién creado no editado) y ajuste de los de listar y editar.

No cambia: obtener por id, editar y eliminar siguen operando solo sobre comentarios activos. No hay reactivación de comentarios. Los comentarios confidenciales no se tocan.

Cómo probar

  1. GET /instancias/{id}/comentarios-normales en una instancia con comentarios: cada uno trae editado: false.
  2. Editar uno con PUT /instancias/{id}/comentarios-normales/{idComentario} y volver a listar: trae editado: true, updatedAt con la fecha de la edición, y sigue en la misma posición.
  3. Eliminar uno con DELETE y volver a listar: sigue en la lista con estado: "ELIMINADO" y contenido: null.
  4. GET, PUT o DELETE sobre el comentario eliminado por id: 404, como antes.

Tests: ./mvnw test -Dtest='ComentarioNormalInstancia*Test'

Cambios en BD

Ninguno.

A tener en cuenta

Mergear junto con el MR de frontend fix/eliminar-comentario-normal-instancia: el frontend actual no conoce el estado ELIMINADO y mostraría esos comentarios como una fila sin texto.

Merge request reports

Loading