Por medio de un request GET puede obtenerse una lista filtrada, paginada y ordenada de cualquier endpoint que implemente la librería filters-util. Los diferentes criterios de búsqueda se pasan como query string parameters en la URL.

En este apartado explicaremos cómo construir una URL compatible con el uso de esta librería.

Tipos de parámetro

El servicio de búsqueda está preparado para recibir los siguientes parámetros en la URL, todos opcionales:

Construido en semejanza a un array de objetos, contiene a los campos por los cuáles realizar la búsqueda y sus valores. Por cada elemento se esperan los siguientes atributos:

Es otro array de las mismas características que contiene los criterios de ordenamiento. Sus claves son:

Indica la cantidad de registros por página

Indica el número de página a obtener


https://api.paypertic.com/pagos?filters[0]field=status&filters[0]operation=EQUAL&filters[0]value=approved&filters[1]field=request_date&filters[1]operation=GREATER_THAN_OR_EQUAL_TO&filters[1]value=20191006T060000-0000&sorts[0]collector_id=ascending&limit=10&page=1

En el ejemplo se piden aquellos pagos cuyo estado sea aprobado y su fecha de envío sea igual o mayor al 06/10/2019 6:00. La lista se ordena por collector_id de forma ascendente y se solicita la primer página. Los pagos obtenidos se agrupan de a 10 registros por página.

Resultado

El cuerpo del response obtenido luego de una operación exitosa será un objeto JSON con la siguiente estructura:


{
  "page": 1,
  "limit": 10,
  "size": 23,
  "rows": [
    {
      "id": "11111111-1111-1111-1111-111111111111",
      "external_transaction_id": "123456789",
      "collector_id": "999",
      "collector_detail": {
        "name": "PRUEBA"
      },
	  "status": "approved",
	  "request_date": "2019-10-06T06:01:30+0000",
      (...)
    },
    {
      "id": "22222222-2222-2222-2222-222222222222",
      "external_transaction_id": "987654321",
      "collector_id": "1000",
      "collector_detail": {
        "name": "PRUEBA"
      },
	  "status": "approved",
      "request_date": "2019-10-07T11:21:10+0000",
      (...)
    },
	(...)
	]
} 

Operaciones disponibles

OperaciónValor esperadoDescripción
EXISTS
Boolean (true / false)Consulta si el campo proporcionado existe o no en el objeto
EQUAL
Texto, Número o FechaCompara por igualdad
NOT_EQUAL
Texto, Número o FechaCompara por desigualdad
GREATER_THAN
Texto, Número o FechaCompara por mayor estricto
GREATER_THAN_OR_EQUAL_TO
Texto, Número o FechaCompara por mayor o igual
LESS_THAN
Texto, Número o FechaCompara por menor estricto
LESS_THAN_OR_EQUAL_TO
Texto, Número o FechaCompara por menor o igual
IN
Lista [valor1,valor2,...]

Consulta si el valor del campo está incluído dentro del conjunto proporcionado. Incluir corchetes.

NOT_IN
Lista [valor1,valor2,...]Consulta si el valor del campo no está incluído dentro del conjunto proporcionado. Incluir corchetes.
CONTAINS
StringConsulta si el valor del campo tiene como subcadena al valor proporcionado
STARTS_WITH
StringConsulta si el valor del campo comienza con el valor proporcionado
ENDS_WITH
StringConsulta si el valor del campo finaliza con el valor proporcionado


Cada campo es asociado a un conjunto limitado de operaciones. En caso de error, por favor comunicarse con el equipo de soporte para conocer las operaciones disponibles del campo en cuestión.

Errores esperados


{
  "code": 400,
  "message": "<nombre del campo> can not be filter.",
  "extended_code": 4601
}


{
  "code": 400,
  "message": "Invalid field \"<nombre del campo>\".",
  "extended_code": 4601
}


{
  "code": 400,
  "message": "No enum constant com.paypertic.filter.util.enums.Operation.<OPERACIÓN>",
  "extended_code": 4601
}


{
  "code": 400,
  "message": "<nombre_del campo> can not be filtered with <OPERACIÓN>.",
  "extended_code": 4601
}