boletosimples 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +4 -3
  4. data/CHANGELOG.md +6 -0
  5. data/boletosimples.gemspec +12 -11
  6. data/lib/boletosimples.rb +2 -0
  7. data/lib/boletosimples/configuration.rb +6 -6
  8. data/lib/boletosimples/resources/customer_import.rb +6 -0
  9. data/lib/boletosimples/resources/customer_subscription_import.rb +6 -0
  10. data/lib/boletosimples/version.rb +1 -1
  11. data/spec/boletosimples/configuration_spec.rb +25 -9
  12. data/spec/boletosimples/resources/customer_import_spec.rb +56 -0
  13. data/spec/boletosimples/resources/customer_subscription_import_spec.rb +56 -0
  14. data/spec/fixtures/customer_imports.csv +1 -0
  15. data/spec/fixtures/customer_subscription_imports.csv +1 -0
  16. data/spec/fixtures/vcr_cassettes/resources/customer_import/all.yml +91 -0
  17. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/invalid_params.yml +83 -0
  18. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/invalid_root.yml +83 -0
  19. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/valid.yml +101 -0
  20. data/spec/fixtures/vcr_cassettes/resources/customer_import/find.yml +85 -0
  21. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/all.yml +86 -0
  22. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/invalid_params.yml +84 -0
  23. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/invalid_root.yml +84 -0
  24. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/valid.yml +103 -0
  25. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/find.yml +86 -0
  26. data/spec/spec_helper.rb +2 -2
  27. metadata +82 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e005560ecb83c538c2c8e0df87e1e26cfa2fef3f
4
- data.tar.gz: f0994131f188139acfdcfdef6aa8f0d1ce183e54
3
+ metadata.gz: c76fb6e8155355e8695d78ee37756aa0cc2dc5cc
4
+ data.tar.gz: bddd7d242f6f1cc0b759397bceaf8ad5d8927deb
5
5
  SHA512:
6
- metadata.gz: e685ae865d456aadb881b6f1b3fb77897d912614ae58547143d451fd8ec0b54a7551516c617aa27cf81635beacc41339550dca0d697be8e630e7c3f9b2ec2895
7
- data.tar.gz: c4baa1f2604a60208f3de20425b4d3b1d702ad0ea131ec846c4579bdc2be6eb55510eec54163f3cba991b4a9b67f209c8c61afa97f22f157d487263d245084df
6
+ metadata.gz: 3b647a784cfe93ff534a75dce7298f51ccfee3ab72a2d070656ffd9d25476ed347c679733fc8a7960cef68195f6661cbbe9fabe14af20eac46eab40d10007b82
7
+ data.tar.gz: dbf082c46a21758f78e447a86dc580bd665cdb3f994c5f8d24edb40c561d3d39abb68f88a25ac3f8ed44fb897c3b4efa8adb31daf045e1e708b7f3ee9df4701d
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.4.2
data/.travis.yml CHANGED
@@ -1,8 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
- - '2.3.1'
4
- - '2.2.1'
5
- - '2.1.0'
3
+ - '2.4.1'
4
+ - '2.3.4'
5
+ - '2.2.7'
6
+ - '2.1.10'
6
7
  branches:
7
8
  only:
8
9
  - master
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.2
4
+
5
+ ### improvements
6
+
7
+ - Update dependencies
8
+
3
9
  ## 0.2.2
4
10
 
5
11
  ### features
@@ -18,20 +18,21 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(/^(test|spec|features)\//)
19
19
  gem.require_paths = ['lib']
20
20
 
21
- gem.required_ruby_version = '>= 1.9'
21
+ gem.required_ruby_version = '>= 2.0'
22
22
 
23
23
  # Gems that must be intalled for boletosimples to work
24
- gem.add_dependency 'her', '~> 0.8.1'
25
- gem.add_dependency 'faraday_middleware', '~> 0.10.0'
26
- gem.add_dependency 'faraday-http-cache', '~> 1.3.1'
24
+ gem.add_dependency 'her', '~> 0.10'
25
+ gem.add_dependency 'faraday_middleware', '~> 0.12'
26
+ gem.add_dependency 'faraday-http-cache', '~> 2.0.0'
27
27
 
28
28
  # Gems that must be installed for boletosimples to compile and build
29
- gem.add_development_dependency 'pry', '~> 0.10.1'
30
- gem.add_development_dependency 'rspec', '~> 3.5.0'
31
- gem.add_development_dependency 'vcr', '~> 3.0'
32
- gem.add_development_dependency 'webmock', '~> 2.1.0'
33
- gem.add_development_dependency 'rake', '~> 11.2.2'
34
- gem.add_development_dependency 'coveralls', '~> 0.8.2'
35
- gem.add_development_dependency 'codeclimate-test-reporter', '~> 0.6.0'
29
+ gem.add_development_dependency 'pry'
30
+ gem.add_development_dependency 'rspec'
31
+ gem.add_development_dependency 'vcr'
32
+ gem.add_development_dependency 'webmock'
33
+ gem.add_development_dependency 'rake'
34
+ gem.add_development_dependency 'coveralls'
35
+ gem.add_development_dependency 'simplecov'
36
+ gem.add_development_dependency 'codeclimate-test-reporter'
36
37
  gem.add_development_dependency 'rubocop'
37
38
  end
data/lib/boletosimples.rb CHANGED
@@ -13,7 +13,9 @@ module BoletoSimples
13
13
  autoload :BankBilletAccount, 'boletosimples/resources/bank_billet_account'
14
14
  autoload :Event, 'boletosimples/resources/event'
15
15
  autoload :Customer, 'boletosimples/resources/customer'
16
+ autoload :CustomerImport, 'boletosimples/resources/customer_import'
16
17
  autoload :CustomerSubscription, 'boletosimples/resources/customer_subscription'
18
+ autoload :CustomerSubscriptionImport, 'boletosimples/resources/customer_subscription_import'
17
19
  autoload :Installment, 'boletosimples/resources/installment'
18
20
  autoload :Transaction, 'boletosimples/resources/transaction'
19
21
  autoload :Remittance, 'boletosimples/resources/remittance'
@@ -41,14 +41,14 @@ module BoletoSimples
41
41
  end
42
42
 
43
43
  def setup_her
44
- Her::API.setup url: BoletoSimples.configuration.base_uri do |c|
44
+ Her::API.setup url: base_uri do |c|
45
45
  # Request
46
46
  c.use BoletoSimples::Middleware::UserAgent
47
- c.use FaradayMiddleware::OAuth2, BoletoSimples.configuration.access_token if BoletoSimples.configuration.access_token?
47
+ c.use FaradayMiddleware::OAuth2, access_token, token_type: 'param' if access_token?
48
+ c.use Faraday::Request::Multipart
49
+ c.use Faraday::Request::UrlEncoded
48
50
  c.use FaradayMiddleware::EncodeJson
49
- if !BoletoSimples.configuration.cache.nil?
50
- c.use Faraday::HttpCache, store: BoletoSimples.configuration.cache
51
- end
51
+ c.use Faraday::HttpCache, store: cache unless cache.nil?
52
52
 
53
53
  # Response
54
54
  c.use BoletoSimples::Middleware::LastRequest
@@ -60,7 +60,7 @@ module BoletoSimples
60
60
  end
61
61
 
62
62
  # Because Her set the api on the moment module is included we need to call use_api again, after changing the configuration.
63
- [BankBillet, BankBilletAccount, Customer, CustomerSubscription, Installment, Transaction, Partner::User,
63
+ [BankBillet, BankBilletAccount, Customer, CustomerImport, CustomerSubscription, CustomerSubscriptionImport, Installment, Transaction, Partner::User,
64
64
  Webhook, Discharge, Remittance, WebhookDelivery, Event].each do |klass|
65
65
  klass.send(:use_api, Her::API.default_api)
66
66
  end
@@ -0,0 +1,6 @@
1
+ module BoletoSimples
2
+ class CustomerImport < BaseModel
3
+ collection_path "imports/customers"
4
+ resource_path "imports/customers/:id"
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module BoletoSimples
2
+ class CustomerSubscriptionImport < BaseModel
3
+ collection_path "imports/customer_subscriptions"
4
+ resource_path "imports/customer_subscriptions/:id"
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module BoletoSimples
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.2'
3
3
  end
@@ -2,14 +2,28 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  RSpec.describe BoletoSimples::Configuration do
5
+ before {
6
+ @last_env = {}
7
+ @last_env['BOLETOSIMPLES_ENV'] = ENV['BOLETOSIMPLES_ENV']
8
+ @last_env['BOLETOSIMPLES_APP_ID'] = ENV['BOLETOSIMPLES_APP_ID']
9
+ @last_env['BOLETOSIMPLES_APP_SECRET'] = ENV['BOLETOSIMPLES_APP_SECRET']
10
+ @last_env['BOLETOSIMPLES_ACCESS_TOKEN'] = ENV['BOLETOSIMPLES_ACCESS_TOKEN']
11
+ }
12
+ after {
13
+ ENV['BOLETOSIMPLES_ENV'] = @last_env['BOLETOSIMPLES_ENV']
14
+ ENV['BOLETOSIMPLES_APP_ID'] = @last_env['BOLETOSIMPLES_APP_ID']
15
+ ENV['BOLETOSIMPLES_APP_SECRET'] = @last_env['BOLETOSIMPLES_APP_SECRET']
16
+ ENV['BOLETOSIMPLES_ACCESS_TOKEN'] = @last_env['BOLETOSIMPLES_ACCESS_TOKEN']
17
+ }
5
18
  describe 'defaults' do
6
19
  before {
7
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ENV').and_return(nil)
8
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_ID').and_return(nil)
9
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_SECRET').and_return(nil)
10
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ACCESS_TOKEN').and_return(nil)
20
+ ENV['BOLETOSIMPLES_ENV'] = nil
21
+ ENV['BOLETOSIMPLES_APP_ID'] = nil
22
+ ENV['BOLETOSIMPLES_APP_SECRET'] = nil
23
+ ENV['BOLETOSIMPLES_ACCESS_TOKEN'] = nil
11
24
  }
12
25
  subject { BoletoSimples::Configuration.new }
26
+ before { subject.setup_her}
13
27
  it { expect(subject.environment).to eq(:sandbox) }
14
28
  it { expect(subject.base_uri).to eq('https://sandbox.boletosimples.com.br/api/v1') }
15
29
  it { expect(subject.application_id).to be_nil }
@@ -20,12 +34,14 @@ RSpec.describe BoletoSimples::Configuration do
20
34
  end
21
35
  describe 'environment variables' do
22
36
  before {
23
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ENV').and_return('production')
24
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_ID').and_return('app-id')
25
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_SECRET').and_return('app-secret')
26
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ACCESS_TOKEN').and_return('access-token')
37
+ ENV['BOLETOSIMPLES_ENV'] = 'production'
38
+ ENV['BOLETOSIMPLES_APP_ID'] = 'app-id'
39
+ ENV['BOLETOSIMPLES_APP_SECRET'] = 'app-secret'
40
+ ENV['BOLETOSIMPLES_ACCESS_TOKEN'] = 'access-token'
27
41
  }
28
- subject { BoletoSimples::Configuration.new }
42
+ before { BoletoSimples.configure }
43
+ subject { BoletoSimples.configuration }
44
+ # subject { BoletoSimples::Configuration.new }
29
45
  it { expect(subject.environment).to eq(:production) }
30
46
  it { expect(subject.base_uri).to eq('https://boletosimples.com.br/api/v1') }
31
47
  it { expect(subject.application_id).to eq('app-id') }
@@ -0,0 +1,56 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'spec_helper'
4
+
5
+ # Before running this spec again, you need to set environment variable BOLETOSIMPLES_ACCESS_TOKEN
6
+ RSpec.describe BoletoSimples::CustomerImport do
7
+ before {
8
+ BoletoSimples.configure do |c|
9
+ c.application_id = nil
10
+ c.application_secret = nil
11
+ end
12
+ }
13
+ describe 'methods' do
14
+ before {
15
+ VCR.use_cassette('resources/customer_import/create/valid') do
16
+ @customer_import = BoletoSimples::CustomerImport.create({
17
+ source: Faraday::UploadIO.new(File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'customer_imports.csv'), 'text/csv', 'customers.csv')
18
+ })
19
+ end
20
+ }
21
+ describe 'create' do
22
+ context 'valid parameters' do
23
+ subject { @customer_import }
24
+ it { expect(subject).to be_a_kind_of(BoletoSimples::CustomerImport) }
25
+ it { expect(subject.response_errors).to eq({}) }
26
+ it { expect(subject.attributes.keys).to match_array(["created_rows", "enqueued_at", "failed_to_create_rows", "failed_to_update_rows", "finished_at", "id", "import_errors", "processed_at", "processed_rows", "records_count", "source", "source_content_type", "source_file_name", "source_file_size", "source_updated_at", "started_at", "status", "total_rows", "updated_rows"]) }
27
+ end
28
+ context 'invalid parameters' do
29
+ context 'empty bank_billet' do
30
+ subject {
31
+ VCR.use_cassette('resources/customer_import/create/invalid_root') do
32
+ BoletoSimples::CustomerImport.create({})
33
+ end
34
+ }
35
+ it { expect(subject.response_errors).to eq({:customer_import=>["não pode ficar em branco"]}) }
36
+ end
37
+ context 'invalid params' do
38
+ subject {
39
+ VCR.use_cassette('resources/customer_import/create/invalid_params') do
40
+ BoletoSimples::CustomerImport.create({source: ''})
41
+ end
42
+ }
43
+ it { expect(subject.response_errors).to eq(source: ["não pode ficar em branco"]) }
44
+ end
45
+ end
46
+ end
47
+ describe 'find', vcr: { cassette_name: 'resources/customer_import/find'} do
48
+ subject { BoletoSimples::CustomerImport.find(@customer_import.id) }
49
+ it { expect(subject).to be_a_kind_of(BoletoSimples::CustomerImport) }
50
+ end
51
+ describe 'all', vcr: { cassette_name: 'resources/customer_import/all'} do
52
+ subject { BoletoSimples::CustomerImport.all }
53
+ it { expect(subject.first).to be_a_kind_of(BoletoSimples::CustomerImport) }
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,56 @@
1
+ # encoding: UTF-8
2
+
3
+ require 'spec_helper'
4
+
5
+ # Before running this spec again, you need to set environment variable BOLETOSIMPLES_ACCESS_TOKEN
6
+ RSpec.describe BoletoSimples::CustomerSubscriptionImport do
7
+ before {
8
+ BoletoSimples.configure do |c|
9
+ c.application_id = nil
10
+ c.application_secret = nil
11
+ end
12
+ }
13
+ describe 'methods' do
14
+ before {
15
+ VCR.use_cassette('resources/customer_subscription_import/create/valid') do
16
+ @customer_subscription_import = BoletoSimples::CustomerSubscriptionImport.create({
17
+ source: Faraday::UploadIO.new(File.join(File.dirname(__FILE__), '..', '..', 'fixtures', 'customer_subscription_imports.csv'), 'text/csv', 'customer_subscriptions.csv')
18
+ })
19
+ end
20
+ }
21
+ describe 'create' do
22
+ context 'valid parameters' do
23
+ subject { @customer_subscription_import }
24
+ it { expect(subject).to be_a_kind_of(BoletoSimples::CustomerSubscriptionImport) }
25
+ it { expect(subject.response_errors).to eq({}) }
26
+ it { expect(subject.attributes.keys).to match_array(["created_rows", "enqueued_at", "failed_to_create_rows", "failed_to_update_rows", "finished_at", "id", "import_errors", "processed_at", "processed_rows", "records_count", "source", "source_content_type", "source_file_name", "source_file_size", "source_updated_at", "started_at", "status", "total_rows", "updated_rows"]) }
27
+ end
28
+ context 'invalid parameters' do
29
+ context 'empty bank_billet' do
30
+ subject {
31
+ VCR.use_cassette('resources/customer_subscription_import/create/invalid_root') do
32
+ BoletoSimples::CustomerSubscriptionImport.create({})
33
+ end
34
+ }
35
+ it { expect(subject.response_errors).to eq({:customer_subscription_import=>["não pode ficar em branco"]}) }
36
+ end
37
+ context 'invalid params' do
38
+ subject {
39
+ VCR.use_cassette('resources/customer_subscription_import/create/invalid_params') do
40
+ BoletoSimples::CustomerSubscriptionImport.create({source: ''})
41
+ end
42
+ }
43
+ it { expect(subject.response_errors).to eq(source: ["não pode ficar em branco"]) }
44
+ end
45
+ end
46
+ end
47
+ describe 'find', vcr: { cassette_name: 'resources/customer_subscription_import/find'} do
48
+ subject { BoletoSimples::CustomerSubscriptionImport.find(@customer_subscription_import.id) }
49
+ it { expect(subject).to be_a_kind_of(BoletoSimples::CustomerSubscriptionImport) }
50
+ end
51
+ describe 'all', vcr: { cassette_name: 'resources/customer_subscription_import/all'} do
52
+ subject { BoletoSimples::CustomerSubscriptionImport.all }
53
+ it { expect(subject.first).to be_a_kind_of(BoletoSimples::CustomerSubscriptionImport) }
54
+ end
55
+ end
56
+ end
@@ -0,0 +1 @@
1
+ Nome/Razao Social,Apelido/Nome Fantasia,CNPJ/CPF,E-mail,CEP,Endereço,Numero do Endereco,Complemento,Bairro,Cidade,Estado,Telefone (com DDD),DDD do Celular,Numero do Celular,E-mail opcional
@@ -0,0 +1 @@
1
+ ID,ID do Cliente,ID da Carteira,ID do Modelo,CNPJ/CPF do Cliente,Ciclo da Assinatura,Quantia *,Primeira Cobrança,Antecedência,Parar em,Demonstrativo *,Instruções para o Caixa,Multa por Atraso,Juros de Mora Mensal,E-mail,Observações
@@ -0,0 +1,91 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.boletosimples.com.br/api/v1/imports/customers?access_token=BOLETOSIMPLES_ACCESS_TOKEN
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - BoletoSimples Ruby Client v0.4.1 (contato@boletosimples.com.br)
12
+ Authorization:
13
+ - Token token="BOLETOSIMPLES_ACCESS_TOKEN"
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Connection:
24
+ - keep-alive
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Status:
30
+ - 200 OK
31
+ Cache-Control:
32
+ - must-revalidate, private, max-age=0
33
+ Date:
34
+ - Fri, 16 Jun 2017 03:50:17 GMT
35
+ Vary:
36
+ - Origin,Accept-Encoding
37
+ Strict-Transport-Security:
38
+ - max-age=631138519
39
+ X-Permitted-Cross-Domain-Policies:
40
+ - none
41
+ X-Xss-Protection:
42
+ - 1; mode=block
43
+ X-Request-Id:
44
+ - b7c0a074-5f03-49b9-af71-78e4a22ef7af
45
+ Content-Security-Policy-Report-Only:
46
+ - 'default-src ''self''; child-src ''self'' www.googleadservices.com googleads.g.doubleclick.net
47
+ www.google.com www.google.com.br app.popupdomination.com; connect-src ''self''
48
+ ws: wss: *.intercom.io ws.pusherapp.com hn.inspectlet.com *.pusher.com boletosimples.com.br
49
+ *.boletosimples.com.br boletosimples.zendesk.com; font-src ''self'' fonts.googleapis.com
50
+ fonts.gstatic.com js.intercomcdn.com data: v2.zopim.com d25j7wj0q61kjj.cloudfront.net;
51
+ img-src ''self'' https: data: maps.googleapis.com dev.bole.to:5001 bole.to
52
+ boletosimples-sandbox.s3.amazonaws.com; script-src ''self'' ''unsafe-inline''
53
+ static.intercomcdn.com cdn.inspectlet.com widget.intercom.io js.intercomcdn.com
54
+ js.pusher.com stats.pusher.com zapier.com www.google-analytics.com www.googleadservices.com
55
+ doug1izaerwt3.cloudfront.net app.popupdomination.com cdn.ywxi.net www.draw.io
56
+ tag.getdrip.com www.getdrip.com js-agent.newrelic.com bam.nr-data.net cdnjs.cloudflare.com
57
+ widget.pluga.co www.google.com www.gstatic.com boletosimples.zendesk.com assets.zendesk.com
58
+ v2.zopim.com d25j7wj0q61kjj.cloudfront.net; style-src ''self'' ''unsafe-inline''
59
+ fonts.googleapis.com d25j7wj0q61kjj.cloudfront.net; report-uri https://boletosimples.report-uri.io/r/default/csp/reportOnly'
60
+ Total:
61
+ - '6'
62
+ X-Download-Options:
63
+ - noopen
64
+ Etag:
65
+ - W/"1f7b18205f2c944fb3c09298b8477dd7"
66
+ X-Runtime:
67
+ - '0.040018'
68
+ X-Frame-Options:
69
+ - sameorigin
70
+ X-Content-Type-Options:
71
+ - nosniff
72
+ X-Rack-Cache:
73
+ - miss
74
+ X-Powered-By:
75
+ - Phusion Passenger 5.1.4
76
+ Server:
77
+ - nginx/1.10.3 + Phusion Passenger 5.1.4
78
+ Via:
79
+ - 1.1 vegur
80
+ body:
81
+ encoding: UTF-8
82
+ string: '[{"id":1,"created_rows":0,"records_count":null,"enqueued_at":"2017-06-15T23:02:55-03:00","started_at":"2017-06-15T23:02:56-03:00","finished_at":"2017-06-15T23:02:56-03:00","processed_at":null,"failed_to_create_rows":0,"failed_to_update_rows":0,"import_errors":[],"processed_rows":0,"total_rows":0,"updated_rows":0,"source_content_type":"text/plain","source_file_name":"cobregratis-customers.csv","source_file_size":210,"source_updated_at":"2017-06-15T23:02:55-03:00","status":"done"},{"id":2,"created_rows":0,"records_count":null,"enqueued_at":"2017-06-15T23:15:30-03:00","started_at":"2017-06-15T23:15:30-03:00","finished_at":"2017-06-15T23:15:30-03:00","processed_at":null,"failed_to_create_rows":1,"failed_to_update_rows":0,"import_errors":[[1,{"CEP":"não
83
+ pode ficar em branco","Bairro":"não pode ficar em branco","Cidade":"não pode
84
+ ficar em branco","Estado":"não está incluído na lista","Endereço":"não pode
85
+ ficar em branco","E-mail opcional":"não é válido","Nome/Razao Social":"não
86
+ pode ficar em branco","Numero do Celular":"não é um número de celular"}]],"processed_rows":1,"total_rows":1,"updated_rows":0,"source_content_type":"text/plain","source_file_name":"cobregratis-customers.csv","source_file_size":398,"source_updated_at":"2017-06-15T23:15:30-03:00","status":"done"},{"id":3,"created_rows":0,"records_count":null,"enqueued_at":"2017-06-15T23:22:46-03:00","started_at":"2017-06-15T23:22:46-03:00","finished_at":"2017-06-15T23:22:46-03:00","processed_at":null,"failed_to_create_rows":1,"failed_to_update_rows":0,"import_errors":[[1,{"Numero
87
+ do Celular":"não é um número de celular"}]],"processed_rows":1,"total_rows":1,"updated_rows":0,"source_content_type":"text/plain","source_file_name":"cobregratis-customers.csv","source_file_size":422,"source_updated_at":"2017-06-15T23:22:46-03:00","status":"done"},{"id":4,"created_rows":1,"records_count":1,"enqueued_at":"2017-06-15T23:23:24-03:00","started_at":"2017-06-15T23:23:24-03:00","finished_at":"2017-06-15T23:23:24-03:00","processed_at":null,"failed_to_create_rows":0,"failed_to_update_rows":0,"import_errors":[],"processed_rows":1,"total_rows":1,"updated_rows":0,"source_content_type":"text/plain","source_file_name":"cobregratis-customers.csv","source_file_size":423,"source_updated_at":"2017-06-15T23:23:24-03:00","status":"done"},{"id":5,"created_rows":2,"records_count":2,"enqueued_at":"2017-06-16T00:44:55-03:00","started_at":"2017-06-16T00:44:56-03:00","finished_at":"2017-06-16T00:44:56-03:00","processed_at":null,"failed_to_create_rows":2,"failed_to_update_rows":0,"import_errors":[[1,{"E-mail":"não
88
+ é válido"}],[2,{"CNPJ/CPF":"não pode ficar em branco"}]],"processed_rows":4,"total_rows":4,"updated_rows":0,"source_content_type":"text/plain","source_file_name":"customers.csv","source_file_size":810,"source_updated_at":"2017-06-16T00:44:55-03:00","status":"done"},{"id":6,"created_rows":0,"records_count":null,"enqueued_at":"2017-06-16T00:50:16-03:00","started_at":"2017-06-16T00:50:16-03:00","finished_at":"2017-06-16T00:50:16-03:00","processed_at":null,"failed_to_create_rows":0,"failed_to_update_rows":0,"import_errors":[],"processed_rows":0,"total_rows":0,"updated_rows":0,"source_content_type":"text/plain","source_file_name":"customers.csv","source_file_size":190,"source_updated_at":"2017-06-16T00:50:16-03:00","status":"done"}]'
89
+ http_version:
90
+ recorded_at: Fri, 16 Jun 2017 03:50:17 GMT
91
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,83 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sandbox.boletosimples.com.br/api/v1/imports/customers?access_token=BOLETOSIMPLES_ACCESS_TOKEN
6
+ body:
7
+ encoding: UTF-8
8
+ string: customer_import%5Bsource%5D=
9
+ headers:
10
+ User-Agent:
11
+ - BoletoSimples Ruby Client v0.4.1 (contato@boletosimples.com.br)
12
+ Authorization:
13
+ - Token token="BOLETOSIMPLES_ACCESS_TOKEN"
14
+ Content-Type:
15
+ - application/x-www-form-urlencoded
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - "*/*"
20
+ response:
21
+ status:
22
+ code: 422
23
+ message: Unprocessable Entity
24
+ headers:
25
+ Connection:
26
+ - keep-alive
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Status:
32
+ - 422 Unprocessable Entity
33
+ Cache-Control:
34
+ - no-cache
35
+ Date:
36
+ - Fri, 16 Jun 2017 03:50:18 GMT
37
+ Vary:
38
+ - Origin,Accept-Encoding
39
+ Strict-Transport-Security:
40
+ - max-age=631138519
41
+ X-Permitted-Cross-Domain-Policies:
42
+ - none
43
+ X-Xss-Protection:
44
+ - 1; mode=block
45
+ X-Request-Id:
46
+ - 4e7c7036-adc2-4945-a815-af270bd40723
47
+ Content-Security-Policy-Report-Only:
48
+ - 'default-src ''self''; child-src ''self'' www.googleadservices.com googleads.g.doubleclick.net
49
+ www.google.com www.google.com.br app.popupdomination.com; connect-src ''self''
50
+ ws: wss: *.intercom.io ws.pusherapp.com hn.inspectlet.com *.pusher.com boletosimples.com.br
51
+ *.boletosimples.com.br boletosimples.zendesk.com; font-src ''self'' fonts.googleapis.com
52
+ fonts.gstatic.com js.intercomcdn.com data: v2.zopim.com d25j7wj0q61kjj.cloudfront.net;
53
+ img-src ''self'' https: data: maps.googleapis.com dev.bole.to:5001 bole.to
54
+ boletosimples-sandbox.s3.amazonaws.com; script-src ''self'' ''unsafe-inline''
55
+ static.intercomcdn.com cdn.inspectlet.com widget.intercom.io js.intercomcdn.com
56
+ js.pusher.com stats.pusher.com zapier.com www.google-analytics.com www.googleadservices.com
57
+ doug1izaerwt3.cloudfront.net app.popupdomination.com cdn.ywxi.net www.draw.io
58
+ tag.getdrip.com www.getdrip.com js-agent.newrelic.com bam.nr-data.net cdnjs.cloudflare.com
59
+ widget.pluga.co www.google.com www.gstatic.com boletosimples.zendesk.com assets.zendesk.com
60
+ v2.zopim.com d25j7wj0q61kjj.cloudfront.net; style-src ''self'' ''unsafe-inline''
61
+ fonts.googleapis.com d25j7wj0q61kjj.cloudfront.net; report-uri https://boletosimples.report-uri.io/r/default/csp/reportOnly'
62
+ X-Download-Options:
63
+ - noopen
64
+ X-Runtime:
65
+ - '0.033045'
66
+ X-Frame-Options:
67
+ - sameorigin
68
+ X-Content-Type-Options:
69
+ - nosniff
70
+ X-Rack-Cache:
71
+ - invalidate, pass
72
+ X-Powered-By:
73
+ - Phusion Passenger 5.1.4
74
+ Server:
75
+ - nginx/1.10.3 + Phusion Passenger 5.1.4
76
+ Via:
77
+ - 1.1 vegur
78
+ body:
79
+ encoding: UTF-8
80
+ string: '{"errors":{"source":["não pode ficar em branco"]}}'
81
+ http_version:
82
+ recorded_at: Fri, 16 Jun 2017 03:50:18 GMT
83
+ recorded_with: VCR 3.0.3