Creditario::Client

Instalación

Solo añade a tu Gemfile:

gem "creditario-client", git: "git@github.com:creditario/creditario-client.git"

Uso

Ruby on Rails

5.2+

Si utilizas Ruby on Rails en su versión 5.2, hay 2 cosas que debes hacer, la primera es:

$ bundle exec rails g creditario:install

Y la segunda es editar tu archivo de credenciales, para añadir el api_key de tu Organización:

$ EDITOR=vim bundle exec rails credentials:edit

Dentro de tu archivo de credenciales, debes agregar lo siguiente:

creditario:
  development:
    api_key: BMBE96Wva8NaYMmVx4RavpXSy6Y6HKFe
  production:
    api_key: v48mbFLupTLWGvYnLVjDqaeEUJEYHmAM # Your production api_key

¡Listo! Ya tienes el cliente para la API de creditar.io totalmente configurado.

< 5.2

En caso de que tu aplicación de Rails no utilice el archivo de credenciales, tal vez prefieras utilizar variables de entorno para configurar el api_key y el api_base del cliente para la API de creditar.io

Todo lo que tienes que hacer es ejecutar:

$ bundle exec rails g creditario:install

Y actualizar el archivo config/creditario.yml que fue generado previamente:

default: &default
  api_base: <%= ENV["CREDITARIO_API_URL"] || "http://localhost:3000" %>
  api_key: <%= ENV["CREDITARIO_API_KEY"] %>

Listo, ahora solamente deberás inicializar las variables de entorno para que el cliente sea configurado correctamente.

Fuera de Rails

Si deseas usar la gema fuera de una aplicación de Rails. Justo después de requerirla en tu código debes configurar la api_key y la api_base a utilizar.

Esto lo puedes lograr con lo siguiente:

Creditario::Client.api_key = "BMBE96Wva8NaYMmVx4RavpXSy6Y6HKFe"
Creditario::Client.api_base = "http://localhost:3000"

Desarrollo

Recuerda que si necesitas hacer pruebas, deberás tener la API de creditar.io corriendo en tu máquina local o conectarte a la URL de staging.

Si estás haciendo pruebas locales, puedes especificar la URL y el puerto, gracias a la variable de entorno llamada: CREDITARIO_API_URL, usala antes de iniciar tus pruebas/desarrollo, ejemplo:

$ CREDITARIO_API_URL=http://localhost:9000 bundle exec rails server

Por defecto, siempre intentará conectarse a http://localhost:3000 si no se pasa la variable de entorno.

Ejemplos

Productos

Las operaciones que puedes realizar sobre Productos son: listar y obtener.

Listar todos los Productos activos

result = Creditario::Products.list
=> Creditario::PaginatedCollection

result.items
=> [Creditario::Product, Creditario::Product, ...]

Obtener un Producto

Creditario::Products.retrieve("c005b7f7-a44a-4ec0-bf7f-73d15d806fd9")
=> Creditario::Product

Clientes

Las operaciones que puedes realizar sobre Clientes son: listar, obtener, verificar, crear y actualizar.

Listar todos los Clientes

result = Creditario::Customers.list
=> Creditario::PaginatedCollection

result.items
=> [Creditario::Customer, Creditario::Customer, ...]

Obtener un Cliente

Creditario::Customers.retrieve("2e9d05b8-2180-4779-bab6-bdfd41d1569f")
=> Creditario::Customer

Verificar un Cliente

Creditario::Customers.exists(email: "usuario@needsmoney.com")
=> Hash

Crear un Cliente

result = Creditario::Customers.create(email: "karla@quieredinero.com", product_id: "c005b7f7-a44a-4ec0-bf7f-73d15d806fd9")
=> Creditario::Customer

Actualizar un Cliente

result = Creditario::Customers.update("2e9d05b8-2180-4779-bab6-bdfd41d1569f", { email: "karina@necesitadinero.com" })
=> Creditario::Customer

Solicitudes

Las operaciones que puedes realizar sobre Solicitudes son: listar, obtener, crear y actualizar.

Listar todas las Solicitudes

result = Creditario::Applications.list
=> Creditario::PaginatedCollection

result.items
=> [Creditario::Application, Creditario::Application, ...]

Obtener una Solicitud

Creditario::Applications.retrieve("0b19e3b6-9fae-40e1-a7c2-f2db1cae8a5a")
=> Creditario::Application

Crear una Solicitud

result = Creditario::Applications.create(customer_id: "2e9d05b8-2180-4779-bab6-bdfd41d1569f", product_id: "c005b7f7-a44a-4ec0-bf7f-73d15d806fd9")
=> Creditario::Application

Actualizar una Solicitud

result = Creditario::Applications.update("c0324939-0802-41b2-b81e-04e8982270ec", { street: "Avenida Siempre Viva", exterior_number: "742" })
=> Creditario::Application

Ingresos

Las operaciones que puedes realizar sobre Ingresos son: obtener, crear y eliminar.

Obtener un Ingreso

Creditario::Incomes.retrieve("0b19e3b6-9fae-40e1-a7c2-f2db1cae8a5a")
=> Creditario::Income

Crear un Ingreso

result = Creditario::Incomes.create(classification: "Trabajo", amount_cents: 45000, credit_application_id: "636264b1-77a2-45ef-b643-e44cfbc84d40")
=> Creditario::Income

Eliminar un Ingreso

result = Creditario::Incomes.delete("0b19e3b6-9fae-40e1-a7c2-f2db1cae8a5a")
=> true

Egresos

Las operaciones que puedes realizar sobre Egresos son: obtener, crear y eliminar.

Obtener un Egreso

Creditario::Expenses.retrieve("eeedba2e-fc96-4f96-bd2e-bd046b256f96")
=> Creditario::Expense

Crear un Egreso

result = Creditario::Expenses.create(classification: "Renta", amount_cents: 25000, credit_application_id: "636264b1-77a2-45ef-b643-e44cfbc84d40")
=> Creditario::Expense

Eliminar un Egreso

result = Creditario::Expenses.delete("eeedba2e-fc96-4f96-bd2e-bd046b256f96")
=> true

Referencias

Las operaciones que puedes realizar sobre Referencias son: obtener, crear y eliminar.

Obtener una Referencia

Creditario::References.retrieve("0b19e3b6-9fae-40e1-a7c2-f2db1cae8a5a")
=> Creditario::Reference

Crear una Referencia

result = Creditario::References.create(classification: "Amistad", name: "Diane Nguyen", phone: "3129743789", credit_application_id: "636264b1-77a2-45ef-b643-e44cfbc84d40")
=> Creditario::Reference

Eliminar una Referencia

result = Creditario::References.delete("0b19e3b6-9fae-40e1-a7c2-f2db1cae8a5a")
=> true

Catálogos

Las operaciones que puedes realizar sobre Catálogos son: listar y obtener.

Listar Catálogos disponibles

result = Creditario::Catalogs.list
=> Creditario::ResourcesCollection

result.items
=> [Creditario::Catalog, Creditario::Catalog, ...]
Creditario::Catalog.retrieve(resource: "customer", field: "source")
=> Creditario::ResourcesCollection

Estimaciones de Crédito

La operación que puedes realizar sobre Estimaciones de Crédito es: obtener.

Obtener una Estimación de Crédito

result = Creditario::CreditEstimates.retrieve(nil, product_id: "c005b7f7-a44a-4ec0-bf7f-73d15d806fd9", amount_cents: "5000000", installments_number: "12")
=> Creditario::CreditEstimate

Créditos

Las operaciones que puedes realizar sobre Créditos son: listar y obtener.

Listar Créditos de un Cliente

result = Creditario::Credits.list(customer_id: "f916636d-e045-43e4-898d-14e6dddf13f9")
=> Creditario::ResourcesCollection

result.items
=> [Creditario::Credit, Creditario::Credit, ...]

Obtener un Crédito

result = Creditario::Credits.retrieve("33ca13b7-9910-430c-b5d7-7ba12a9b18a5")
=> Creditario::Credit