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, default0pageSize— tamaño de página, default20orderBy— campo de ordenamiento, default"createdAt"sortDirection— dirección del orden, defaultSortDirection#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
| Campo | Tipo | Restricciones | Descripción |
|---|---|---|---|
casoId | String | Opcional | UUID del caso |
pagination | PaginationRequest | Opcional | Paginació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:
sortDirection—SortDirection#ASCoSortDirection#DESC
Retorna: Este builder para encadenamiento
build()
Valida y finaliza la construcción del filtro.
Retorna: Este mismo objeto configurado
Lanza:
ValidationException— sicasoIdno 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.