charging-client-ruby¶ ↑
A Ruby client for the Charging REST API
<img src=“https://badge.fury.io/rb/charging-client.png” alt=“Gem Version” /> <img src=“https://travis-ci.org/myfreecomm/charging-client-ruby.png?branch=master” alt=“Build Status” /> <img src=“https://coveralls.io/repos/myfreecomm/charging-client-ruby/badge.png?branch=master” alt=“Coverage Status” /> <img src=“https://codeclimate.com/github/myfreecomm/charging-client-ruby.png” alt=“Code Climate Status” />
Charging API docs: ???
charging-client-ruby RDoc documentation: rubydoc.info/github/myfreecomm/charging-client-ruby/frames/
The RDoc is the best place to learn how to use this client. A few example uses are listed below. See the mapping of API endpoints to this client code below as well to find what you need.
Installation¶ ↑
Add this line to your application’s Gemfile:
gem 'charging-client', :require => 'charging'
And then execute:
$ bundle
Or install it yourself as:
$ gem install charging-client
Usage¶ ↑
Mapping of API endpoints to this client¶ ↑
TODO
Configuration¶ ↑
require "charging" Charging.configure do |c| # You application token at Charging Service # Required c.application_token = 'YourApptoken==' # URL for request data. # Default: 'https://charging.finnanceconnect.com.br' c.url = 'http://sandbox.charging.financeconnect.com.br' # User agent to identify the http request on Charing. # Default: 'Charging Ruby Client v0.0.1' c.user_agent = 'My App v1.0' end
Examples¶ ↑
Getting info about your service account¶ ↑
account = Charging::ServiceAccount.current account.name # => 'Your App Name on Charging' account.last_response # a success RestClient::Response instance account.last_response.code # => 200 begin account = Charging::ServiceAccount.current rescue Charging::Http::LastResponseError => exception exception.last_response # an unauthorized RestClient::Response instance exception.last_response.code # 401 end
List domains for an account¶ ↑
domains = Charging::Domain.find_all(account)
Create a new domain¶ ↑
attributes = { :supplier_name => 'Myfreecomm', :address => 'Rua do Carmo, 43', :city_state => 'Rio de Janeiro/RJ', :zipcode => '20011-020', national_identifier => '37.818.380/0001-86', description => 'A Myfreecomm é uma empresa moderna...' } new_domain = Charging::Domain.new(attributes, account) new_domain.persisted? # => false new_domain.create! new_domain.persisted? # => true
Find a domain by uuid¶ ↑
domain = Charging::Domain.find_by_uuid(account, 'supposed-uuid-for-domain') domain.persisted? # => true
Update an attribute of a domain (Not working yet)¶ ↑
Pending
Update all attributes for a domain (Not working yet)¶ ↑
Pending
Delete a domain¶ ↑
domain.destroy! domain.deleted? # => true domain.persisted? # => false
Find a domain by token¶ ↑
domain = Charging::Domain.find_by_token('domain-token')
Create a charge account for a domain¶ ↑
attributes = { :bank => '237', :name => 'Conta de Cobrança no Bradesco', :agreement_code => '1234', :portifolio_code => '25' :agency => {:number => '1234'}, :account => {:number => '12345', :digit => '6'} } new_charge_account = Charging::ChargeAccount.new(attributes, domain) new_charge_account.persisted? # => false new_charge_account.create! new_charge_account.persisted? # => true
List charge accounts for current domain¶ ↑
charge_accountes = ChargeAccount::ChargeAccount.find_all(domain)
Find a charge account by uuid¶ ↑
charge_account = ChargeAccount::ChargeAccount.find_by_uuid(domain, 'supposed-uuid-for-charge-account') charge_account.persisted? # => true
List available banks for a charge account (Not working yet)¶ ↑
Pending
List currencies for a charge account (Not working yet)¶ ↑
Pending
Update an attribute of a charge account¶ ↑
charge_account.update_attribute! :address, 'Novo Endereço'
Update attributes of a charge account¶ ↑
charge_account.update_attributes! address: 'Novo Endereço', city_state: 'Cidade/UF'
Note: This will execute charge_account#update_attribute!
for each attribute. If something wrong, updated attributes will not get back old values.
Delete a charge account¶ ↑
charge_account.destroy!
Get invoice kinds¶ ↑
Invoice.kinds(domain) # => [{"acronym"=>"DM", "itau_code"=>1, "code"=>2, "name"=>"Duplicata Mercantil"}, ...] Invoice.kinds(domain)
Create an invoice¶ ↑
attributes = { :kind => 1, :amount => 123.45, :document_number => '123456789012345', :due_date => '2015-12-31' :drawee => { :name => 'Fulano de Tal', :address => 'Rua do Carmo, 43', :city_state => 'Rio de Janeiro/RJ', :zipcode => '20011-020', :national_identifier => '43.055.679/0001-29' } } new_invoice = Charging::Invoice.new(attributes, domain, charge_account) new_invoice.persisted? # => false new_invoice.create! new_invoice.persisted? # => true
Find an invoice by uuid¶ ↑
invoice = Charging::Invoice.find_by_uuid(domain, 'supposed-uuid-for-invoice') invoice.persisted? # => true
Get URL to print invoice¶ ↑
invoice.billet_url # => 'https://charging.financeconnect.com.br/billets/6a60.../ff01.../'
Delete an invoice¶ ↑
invoice.destroy! invoice.deleted? # => true invoice.persisted? # => false
Register a payment for an invoice¶ ↑
invoice.pay! invoice.paid # => invoice.amount invoice.pay!({ :amount => invoice.amount, # default :date => Time.now.strftime('%Y-%m-%d'), #default :note => 'some important note about this payment' })
List payments for an invoice¶ ↑
invoice.payments
Batches (Not working yet)¶ ↑
Pending
Contributing¶ ↑
-
Fork it
-
Create your feature branch (‘git checkout -b my-new-feature`)
-
Commit your changes (‘git commit -am ’Add some feature’‘)
-
Push to the branch (‘git push origin my-new-feature`)
-
Create new Pull Request