Consultas

Conekta provee una interfaz simple de consultas para obtener recursos del API. La consulta provee un conjunto de operaciones básicas de comparación para filtrar recursos como operaciones de ordenación y de paginado.

Tipos de Consultas

Las consultas pueden ser procesadas usando peticiones GET en el URL de tu recurso. Para cargos, puedes hacer una consulta como la siguiente:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges'
charges = Conekta::Charge.where
$charges = Conekta_Charge::where();
charges = conekta.Charge.where()
conekta.Charge.where(hash, successCallback, failureCallback);
ConektaObject charges = Charge.where();
Charge[] charges = new Charge ().where ();

Puedes filtrar los resultados especificando conjuntos de campos de nombre y valor dentro del string de la consulta. Todos los atributos de los recursos pueden estar en las peticiones. Consulta las definiciones de objeto del api para una lista completa de campos que puedes utilizar en la consulta. Un ejemplo de una consulta de un cargo con un filtro de status podría ser el siguiente:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?amount=20000'
charges = Conekta::Charge.where({amount: 20000})
$charges = Conekta_Charge::where(array('amount'=>20000));
charges = conekta.Charge.where({amount: 20000})
conekta.Charge.where({amount: 20000}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'amount'=>'20000',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""amount"": "20000"}");

Además de hacer una comparación exacta de valores, puedes usar otros tipos de operadores sobre los campos para consultas más complejas. La interfaz de consultas de Conekta soporta las siguientes operaciones:

Mayor qué (gt):

La operación de ‘mayor qué’ restringe la consulta a números y fechas mayores que el valor especificado. Este operador es útil para filtrar recursos en un rango de números y fechas. Puedes filtrar los cargos por medio del monto de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?amount.gt=20000'
charges = Conekta::Charge.where({'amount.gt' => 20000})
$charges = Conekta_Charge::where(array('amount.gt'=>20000));
charges = conekta.Charge.where({'amount.gt' => 20000})
conekta.Charge.where({'amount.gt': 20000}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'amount.gt'=>'20000',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""amount.gt"": "20000"}");

Mayor qué o igual (gte):

La operación de ‘mayor qué o igual’ restringe la consulta a números y fechas mayores que o igual a un valor especificado. Este valor es útil cuando se filtra el recurso en un rango de números y fechas. Puedes filtrar cargos por medio del monto de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?amount.gte=20000'
charges = Conekta::Charge.where({'amount.gte' => 20000})
$charges = Conekta_Charge::where(array('amount.gte'=>20000));
charges = conekta.Charge.where({'amount.gte' => 20000})
conekta.Charge.where({'amount.gte': 20000}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'amount.gte'=>'20000',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""amount.gte"": "20000"}");

Menor qué (lt):

La operación de ‘menor qué’ restringe la consulta a números y fechas menores a un valor especificado. Este valor es útil cuando se filtra el recurso en un rango de números y fechas. Puedes filtrar cargos por medio del monto de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?amount.lt=20000'
charges = Conekta::Charge.where({'amount.lt' => 20000})
$charges = Conekta_Charge::where(array('amount.lt'=>20000));
charges = conekta.Charge.where({'amount.lt' => 20000})
conekta.Charge.where({'amount.lt': 20000}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'amount.lt'=>'20000',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""amount.lt"": "20000"}");

Menor qué o igual (lte):

La operación de ‘menor qué o igual’ restringe la consulta a números y fechas menores que o igual a un valor especificado. Este valor es útil cuando se filtra el recurso en un rango de números y fechas. Puedes filtrar cargos por medio del monto de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?amount.lte=20000'
charges = Conekta::Charge.where({'amount.lte' => 20000})
$charges = Conekta_Charge::where(array('amount.lte'=>20000));
charges = conekta.Charge.where({'amount.lte' => 20000})
conekta.Charge.where({'amount.lte': 20000}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'amount.lte'=>'20000',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""amount.lte"": "20000"}");

No igual (ne):

La operación de ‘no igual’ restringe la consulta anúmeros y fechas diferentes a un valor especificado. Puedes filtrar todos los pagos que han sido pagados de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?status.ne=paid'
charges = Conekta::Charge.where({'status.ne' => 'paid'})
$charges = Conekta_Charge::where(array('status.ne' => 'paid'));
charges = conekta.Charge.where({'status.ne' => 'paid'})
conekta.Charge.where({'status.ne': 'paid'}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'status.ne'=>'20000',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""status.ne"": ""paid""}");

En (in):

La operación de ‘en’ permite que encuentres campos en un conjunto de valores. Puedes encontrar todos los cargos que han sido pagados o devueltos de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?status.in[]=pending_payment&status.in[]=refunded'
charges = Conekta::Charge.where({'status.in' => ['pending_payment','refunded']})
$charges = Conekta_Charge::where(array('status.in' => array('pending_payment','refunded')));
charges = conekta.Charge.where({'status.in' => ['pending_payment','refunded']})
conekta.Charge.where({'status.in': ['pending_payment', 'refunded']}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'status.in'=>'[\"pending_payment\", \"refund\"]',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""status.in"": ""['paid', 'refunded']""}");

No en (nin):

La operación ‘no en’ excluye campos de un conjunto de valores. Puedes encontrar todos los cargos que no están pendientes ni devueltos de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?status.nin[]=pending_payment&status.nin[]=refunded'
charges = Conekta::Charge.where({'status.nin' => ['pending_payment','refunded']})
$charges = Conekta_Charge::where(array('status.nin' => array('pending_payment','refunded')));
charges = conekta.Charge.where({'status.nin' => ['pending_payment','refunded']})
conekta.Charge.where({'status.nin': ['pending_payment', 'refunded']}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'status.nin'=>'[\"pending_payment\", \"refund\"]',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""status.nin"": ""['paid', 'refunded']""}");

Regex (regex):

La operación ‘regex’ permite encontrar strings que coinciden con un regex. Puedes encontrar todos los cargos que contengan una descripción de ‘pancakes’ de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?description.regex=pancakes'
charges = Conekta::Charge.where({'description.regex' => 'pancakes'})
$charges = Conekta_Charge::where(array('description.regex' => 'pancakes'));
charges = conekta.Charge.where({'description.regex' => 'pancakes'})
conekta.Charge.where({'description.regexs': 'pancakes'}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'description.regexps'=>'pancakes',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""description.regexs"": ""pancakes""}");

Ajustando tamaños de consultas:

Además de filtrar consultas, es comunmente deseable limitar el número de resultados. Puedes hacerlo agregando el parámetro de ‘limit’ a tus llamadas. La siguiente consulta limita el número de cargos regresados a 1.

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?limit=1'
charges = Conekta::Charge.where({limit: 1})
$charges = Conekta_Charge::where(array('limit' => 1));
charges = conekta.Charge.where({limit: 1})
conekta.Charge.where({limit: 1}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'limit'=>'1',"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""limit"": "1"}");

Paginación de consultas

Paginando los conjuntos de resultados puede ser realizado especificando un offset en los resultados de tus consultas. La siguiente consulta regresará los cargos 10-20.

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?limit=10&offset=10'
charges = Conekta::Charge.where({limit: 10, offset: 10})
$charges = Conekta_Charge::where(array('limit' => 1, 'offset' => 10));
charges = conekta.Charge.where({limit: 10, offset: 10})
conekta.Charge.where({limit: 1, offset: 10}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'limit'=>'2',"
+ "'offset'=>'10'"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""limit"": "1", ""offset"": "10"}");

Ordenar consultas

El ordenar los resultados de una consulta es realizado por medio de la especificación de un campo y una dirección, o un arreglo de campos y direcciones con los cuales ordenas tus resultados. Puedes ordenar los cargos por monto de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?sort=amount.desc'
charges = Conekta::Charge.where({sort: 'amount.desc'})
$charges = Conekta_Charge::where(array('sort' => 'amount.desc'));
charges = conekta.Charge.where({sort: 'amount.desc'})
conekta.Charge.where({sort: 'amount.desc'}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'sort'=>'amount.desc'"
+ "}"
);
Charge[] charges = new Charge ().where (@"{""sort"": ""amount.desc""}");

Puedes ordenar resultados por monto y también por fecha de creación de esta manera:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?sort[]=amount.desc&sort[]=created_at.desc'
charges = Conekta::Charge.where({sort: ['amount.desc', 'created_at.desc']})
$charges = Conekta_Charge::where(array('sort' => array('amount.desc', 'created_at.desc')));
charges = conekta.Charge.where({sort: ['amount.desc', 'created_at.desc']})
conekta.Charge.where({sort: ['amount.desc', 'created_at.desc']}, successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'amount.desc'=>'created_at.desc'"
+ "}"
);

Todo en uno

Operaciones, limites, offsets y ordenado pueden ser utilizados en conjunto para obtener consultas. Este es un ejemplo de una consulta regresando dos cargos con un monto mayor a 20000, una descripción que coincide con ‘pancakes’, offset de 10 y ordenados por monto:

curl -H "Accept: application/vnd.conekta-v{global_api_version}+json" \
     -u {global_api_key}: \
     'https://api.conekta.io/charges?amount.gt=20000&description.regex=pancakes&limit=2&offset=10'
charges = Conekta::Charge.where({
  'amount.gt' => 20000, 
  'description.regex'=> 'pancakes', 
  'limit'=> 2, 
  'offset'=>10, 
  'sort'=>'amount.desc'
})
$charges = Conekta_Charge::where(array(
  'amount.gt' => 20000, 
  'description.regex'=> 'pancakes', 
  'limit' => 2, 
  'offset' => 10, 
  'sort' => 'amount.desc'
));
charges = conekta.Charge.where({
  'amount.gt' => 20000, 
  'description.regex'=> 'pancakes', 
  'limit'=> 2, 
  'offset'=>10, 
  'sort'=>'amount.desc'
})
charges = conekta.Charge.where({
  'amount.gt': 20000,
  'description.regex': 'pancakes',
  'limit': 2,
  'offset': 10,
  'sort': 'amount.desc'
} ,successCallback, failureCallback);
ConektaObject charges = Charge.where("{"
+ "'amount.gt'=>'20000',"
+ "'offset'=>'10',"
+ "'limit'=>'2',"
+ "'description.regex'=>'pancakes',"
+ "'sort'=>'amount.desc'"
+ "}"
);