Skip to content

Fix: los listados de instancias e incidencias aceptan varios estados en una consulta

Mantis 0044467

Qué

GET /instancias y GET /incidencias aceptan varios estados separados por coma en el parámetro estado (por ejemplo estado=ACTIVO,INACTIVO) y los resuelven en una sola consulta paginada. Es la parte de backend del Mantis 0044467.

Por qué

Para mostrar "Estado: Todos", el frontend pedía las activas y las inactivas por separado y las combinaba, porque el endpoint solo aceptaba un estado. Cada mitad paginaba por su cuenta: la página podía traer más de 20 filas y el rango del pie quedaba mal ("1-21 de 25"). Con los dos estados en una sola consulta, la paginación la resuelve el backend.

Cambios

  • InstanciaComunController.listar e IncidenciaController.listar: el parámetro estado pasa de EstadoLogico a List<EstadoLogico>.
  • InstanciaComunService.listar e IncidenciaService.listar: reciben la lista de estados; si viene vacía o no viene, usan ACTIVO.
  • InstanciaComunSpecs e IncidenciaSpecs: estados(Collection<EstadoLogico>) reemplaza a estado(EstadoLogico).
  • Tests: un caso nuevo en cada controller (varios estados separados por coma) y ajuste de los existentes, incluidos los de integración, a la nueva firma.

Es compatible con el uso anterior: estado=INACTIVO funciona igual, y sin el parámetro se siguen devolviendo solo las activas.

Cómo probar

  1. GET /instancias?estado=ACTIVO,INACTIVO: devuelve activas e inactivas juntas, ordenadas por fecha, de a 20 por página, con totalElements igual a la suma de ambas.
  2. GET /instancias?estado=INACTIVO: solo inactivas, como antes.
  3. GET /instancias: solo activas, como antes.
  4. Repetir con /incidencias.

Tests: ./mvnw test -Dtest='InstanciaComun*Test,Incidencia*Test'

Los tests de integración (InstanciaBusquedaIT, IncidenciaBusquedaIT) se adaptaron a la nueva firma y compilan, pero no se corrieron localmente.

Cambios en BD

Ninguno.

A tener en cuenta

Mergear antes o junto con el MR de frontend fix/paginacion-listado-instancias-e-incidencias, que depende de este cambio.

Merge request reports

Loading