README.md in boletosimples-0.0.7 vs README.md in boletosimples-0.1.1

- old
+ new

@@ -12,12 +12,10 @@ [codeclimate]: https://codeclimate.com/github/BoletoSimples/boletosimples-ruby [coveralls]: https://coveralls.io/r/BoletoSimples/boletosimples-ruby Esta gem inclui todos os métodos disponíveis na [Boleto Simples JSON API](http://api.boletosimples.com.br). -Ela suporta Basic Auth e OAuth 2.0 para ações realizadas por parceiros. - ## Instalação Adicione a linha a baixo no seu Gemfile: gem 'boletosimples' @@ -28,12 +26,167 @@ Ou instale você mesmo: $ gem install boletosimples +## Configuração + +```ruby +require 'boletosimples' + +BoletoSimples.configure do |c| + c.environment = :production # defaut :sandbox + c.access_token = 'access-token' +end +``` + +### Variáveis de ambiente + +Você também pode configurar as variáveis de ambiente a seguir e não será necessário chamar `BoletoSimples.configure` + +```bash +ENV['BOLETOSIMPLES_ENV'] +ENV['BOLETOSIMPLES_APP_ID'] +ENV['BOLETOSIMPLES_APP_SECRET'] +ENV['BOLETOSIMPLES_ACCESS_TOKEN'] +``` + +### Configurando cache + +É altamente recomendável utilizar o cache para evitar chegar no [limite de requisições](http://api.boletosimples.com.br/#limite-de-requisicoes) + +Para isso recomendamos a utilização da gem [Dalli](https://github.com/mperham/dalli) + +Exemplo: + +```ruby + require 'dalli' + + BoletoSimples.configure do |c| + c.cache = ActiveSupport::Cache.lookup_store(:dalli_store, ['localhost:11211'], namespace: 'boletosimples_client', compress: true) + end +``` + ## Exemplos -Veja a [lista de métodos aqui](https://github.com/boletosimples/boletosimples-ruby/blob/master/example) +### Boletos Bancários + +```ruby +# Criar um boleto +@bank_billet = BoletoSimples::BankBillet.create({ + amount: 9.01, + description: 'Despesas do contrato 0012', + expire_at: '2014-01-01', + customer_address: 'Rua quinhentos', + customer_address_complement: 'Sala 4', + customer_address_number: '111', + customer_city_name: 'Rio de Janeiro', + customer_cnpj_cpf: '012.345.678-90', + customer_email: 'cliente@bom.com', + customer_neighborhood: 'Sao Francisco', + customer_person_name: 'Joao da Silva', + customer_person_type: 'individual', + customer_phone_number: '2112123434', + customer_state: 'RJ', + customer_zipcode: '12312-123', + notification_url: 'http://example.com.br/notify' +}) + +# Criar um novo boleto instanciando o objeto +@bank_billet = BoletoSimples::BankBillet.new(amount: 199.99, expire_at: '2020-01-01') +@bank_billet.description = 'Cobrança XPTO' +@bank_billet.save + +# Mensagens de erro na criação do boleto +@bank_billet = BoletoSimples::BankBillet.create(amount: 199.99) +@bank_billet.response_errors + # {:expire_at=>["não pode ficar em branco", "não é uma data válida"], :customer_person_name=>["não pode ficar em branco"], :customer_cnpj_cpf=>["não pode ficar em branco", "não é um CPNJ ou CPF válido"], :description=>["não pode ficar em branco"], :customer_zipcode=>["não pode ficar em branco"] + +# Pegar informações de um boleto +@bank_billet = BoletoSimples::BankBillet.find(1) # onde 1 é o id do boleto. + + # Se o não for encontrado nenhum boleto com o id informado, uma exceção será levantada com a mensagem: + # Couldn't find BankBillet with 'id'=1 + +# Listar os boletos +@bank_billets = BoletoSimples::BankBillet.all(page: 1, per_page: 50) +@bank_billet.each do |bank_billet| + puts bank_billet.id +end + + # Após realizar a chamada na listagem, você terá acesso aos seguintes dados: + +BoletoSimples.last_request.total # número total de boletos +BoletoSimples.last_request.links[:first] # url da primeira página +BoletoSimples.last_request.links[:prev] # url da página anterior +BoletoSimples.last_request.links[:next] # url da próxima página +BoletoSimples.last_request.links[:last] # url da última página + +# Cancelar um boleto +@bank_billet = BoletoSimples::BankBillet.find(1) +@bank_billet.cancel + +``` + +### Clientes + +```ruby +# Criar um cliente +@customer = BoletoSimples::Customer.create({ + person_name: "Joao da Silva", + cnpj_cpf: "012.345.678-90", + email: "cliente@bom.com", + address: "Rua quinhentos", + city_name: "Rio de Janeiro", + state: "RJ", + neighborhood: "bairro", + zipcode: "12312-123", + address_number: "111", + address_complement: "Sala 4", + phone_number: "2112123434" +}) + +# Mensagens de erro na criação do cliente +@customer = BoletoSimples::Customer.new(person_name: '') +@customer.response_errors + # {:person_name=>["não pode ficar em branco"], :cnpj_cpf=>["não pode ficar em branco"], :zipcode=>["não pode ficar em branco"]} + +# Listar os clientes +@customers = BoletoSimples::Customer.all(page: 1, per_page: 50) +@customers.each do |customer| + puts customer.id +end + + # Após realizar a chamada na listagem, você terá acesso aos seguintes dados: + +BoletoSimples.last_request.total # número total de clientes +BoletoSimples.last_request.links[:first] # url da primeira página +BoletoSimples.last_request.links[:prev] # url da página anterior +BoletoSimples.last_request.links[:next] # url da próxima página +BoletoSimples.last_request.links[:last] # url da última página + +# Atualizar um cliente +@customer = BoletoSimples::Customer.find(1) +@customer.person_name = 'Novo nome' +@customer.save +``` + +### Extrato + +```ruby +# Listar todas as transações +@transactions = BoletoSimples::Transaction.all +@transactions.each do |transaction| + puts transaction.id +end +``` + +### Extras + +```ruby +# Dados do usuário logado +@userinfo = BoletoSimples::Extra.userinfo +``` ## OAuth 2.0 Authentication (para acessar as contas dos usuários) Comece [solicitando um cadastro de OAuth 2.0 application](http://suporte.boletosimples.com.br)