Saltar al contenido principal

CommentFilter

Builder fluido para búsqueda de comentarios de un caso en Shori.

Permite buscar los comentarios registrados en un caso, con soporte de filtrado por UUID del caso, paginación y ordenamiento.

Se usa con client.caso().comment().search(filter).

Campos requeridos

casoId — UUID del caso cuyos comentarios se quieren buscar. Obligatorio: #build() lanza com.nttdata.shori.exception.ValidationException si no se especifica.

Operadores disponibles para casoId

FilterOperator.EQ // Igual
FilterOperator.NE // Diferente
FilterOperator.GT // Mayor que
FilterOperator.GE // Mayor o igual
FilterOperator.LT // Menor que
FilterOperator.LE // Menor o igual
FilterOperator.IN // Lista de valores
FilterOperator.NOT_IN // No en la lista
FilterOperator.BETWEEN // Rango
FilterOperator.LIKE // Contiene
FilterOperator.LIKE_AFTER // Empieza con
FilterOperator.LIKE_BEFORE // Termina con
FilterOperator.IS_NULL // Es nulo
FilterOperator.IS_NOT_NULL // No es nulo

Campos opcionales

  • pageNumber — número de página, default 0
  • pageSize — tamaño de página, default 20
  • orderBy — campo de ordenamiento, default "createdAt"
  • sortDirection — dirección del orden, default SortDirection#DESC

Uso básico

// Obtener comentarios de un caso (orden descendente por defecto)
CommentSearchResult resultado = client.caso().comment().search(
CommentFilter.builder()
.casoId("caso-documentId")
.build()
);

Filtrado por fecha de creación

CommentSearchResult resultado = client.caso().comment().search(
CommentFilter.builder()
.casoId("caso-documentId")
.pageSize(50)
.build()
);

Con paginación y ordenamiento

CommentSearchResult resultado = client.caso().comment().search(
CommentFilter.builder()
.casoId("caso-documentId")
.pageNumber(0)
.pageSize(10)
.orderBy("createdAt")
.sortDirection("desc")
.build()
);

Campos

CampoTipoRestriccionesDescripción
casoIdStringOpcionalUUID del caso
paginationPaginationRequestOpcionalPaginación

Metodos

builder()

Crea un nuevo builder de filtros de comentarios.

CommentFilter filter = CommentFilter.builder()
.casoId("caso-documentId")
.pageSize(20)
.build();

Retorna: Nueva instancia de CommentFilter lista para configurar


casoId(String casoId)

Establece el ID del caso cuyos comentarios se quieren buscar (requerido).

Parametros:

  • casoId — UUID del caso

Retorna: Este builder para encadenamiento


pageNumber(int pageNumber)

Configura el número de página. Por defecto: 0.

filter.pageNumber(0);

Parametros:

  • pageNumber — número de página basado en cero.

Retorna: la misma instancia del filtro.


pageSize(int pageSize)

Establece el tamaño de página. Por defecto: 20.

filter.pageSize(50);

Parametros:

  • pageSize — cantidad de registros por página

Retorna: la misma instancia del filtro.


orderBy(String orderBy)

Establece el campo por el que se ordenan los comentarios. Por defecto: "createdAt".

Parametros:

  • orderBy — nombre del campo de ordenamiento

Retorna: Este builder para encadenamiento


sortDirection(SortDirection sortDirection)

Establece la dirección del ordenamiento. Por defecto: SortDirection#DESC (más recientes primero).

// Comentarios más antiguos primero
.sortDirection(SortDirection.ASC)

Parametros:

  • sortDirectionSortDirection#ASC o SortDirection#DESC

Retorna: Este builder para encadenamiento


build()

Valida y finaliza la construcción del filtro.

Retorna: Este mismo objeto configurado

Lanza:

  • ValidationException — si casoId no fue especificado

applyDefaultInOperators()

Aplica el operador "in:" al casoId si no tiene ya un operador. Llamado internamente por CaseCommentModule antes de enviar al API.


nextPage()

Avanza a la siguiente página.


copyForNextPage()

Retorna una copia para paginación recursiva.