emites-client 0.0.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 (90) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +31 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +11 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +366 -0
  8. data/Rakefile +9 -0
  9. data/emites-client.gemspec +37 -0
  10. data/lib/emites.rb +44 -0
  11. data/lib/emites/client.rb +30 -0
  12. data/lib/emites/configuration.rb +12 -0
  13. data/lib/emites/entities/account.rb +8 -0
  14. data/lib/emites/entities/base.rb +9 -0
  15. data/lib/emites/entities/emitter.rb +31 -0
  16. data/lib/emites/entities/nfse.rb +29 -0
  17. data/lib/emites/entities/nfse_status.rb +15 -0
  18. data/lib/emites/entities/nfse_status_transition.rb +14 -0
  19. data/lib/emites/entities/nfse_values.rb +28 -0
  20. data/lib/emites/entities/rps.rb +9 -0
  21. data/lib/emites/entities/taker.rb +20 -0
  22. data/lib/emites/entities/taker_address.rb +21 -0
  23. data/lib/emites/entities/taker_contact.rb +9 -0
  24. data/lib/emites/entities/webhook.rb +9 -0
  25. data/lib/emites/exception.rb +11 -0
  26. data/lib/emites/http.rb +34 -0
  27. data/lib/emites/request.rb +53 -0
  28. data/lib/emites/resources/base.rb +45 -0
  29. data/lib/emites/resources/emitter.rb +98 -0
  30. data/lib/emites/resources/hooks.rb +25 -0
  31. data/lib/emites/resources/nfse.rb +173 -0
  32. data/lib/emites/resources/webhook.rb +84 -0
  33. data/lib/emites/response.rb +38 -0
  34. data/lib/emites/version.rb +3 -0
  35. data/spec/emites/client_spec.rb +45 -0
  36. data/spec/emites/configuration_spec.rb +13 -0
  37. data/spec/emites/entities/account_spec.rb +14 -0
  38. data/spec/emites/entities/base_spec.rb +28 -0
  39. data/spec/emites/entities/emitter_spec.rb +20 -0
  40. data/spec/emites/entities/nfse_spec.rb +148 -0
  41. data/spec/emites/entities/nfse_status_spec.rb +16 -0
  42. data/spec/emites/entities/nfse_status_transition_spec.rb +23 -0
  43. data/spec/emites/entities/nfse_values_spec.rb +19 -0
  44. data/spec/emites/entities/rps_spec.rb +15 -0
  45. data/spec/emites/entities/taker_address_spec.rb +18 -0
  46. data/spec/emites/entities/taker_contact_spec.rb +13 -0
  47. data/spec/emites/entities/taker_spec.rb +18 -0
  48. data/spec/emites/entities/webhook_spec.rb +14 -0
  49. data/spec/emites/exception_spec.rb +21 -0
  50. data/spec/emites/http_spec.rb +62 -0
  51. data/spec/emites/resources/base_spec.rb +96 -0
  52. data/spec/emites/resources/emitter_spec.rb +119 -0
  53. data/spec/emites/resources/nfse_spec.rb +214 -0
  54. data/spec/emites/resources/webhook_spec.rb +62 -0
  55. data/spec/emites_spec.rb +63 -0
  56. data/spec/fixtures/certificate.pfx +0 -0
  57. data/spec/shared_examples/bound_notifiers.rb +8 -0
  58. data/spec/shared_examples/entity_attributes.rb +9 -0
  59. data/spec/spec_helper.rb +38 -0
  60. data/spec/support/matchers/have_attr_accessor.rb +18 -0
  61. data/spec/vcr_cassettes/client/authenticated/false.yml +48 -0
  62. data/spec/vcr_cassettes/client/authenticated/true.yml +259 -0
  63. data/spec/vcr_cassettes/emitters/create/error.yml +57 -0
  64. data/spec/vcr_cassettes/emitters/create/success.yml +80 -0
  65. data/spec/vcr_cassettes/emitters/destroy/error.yml +47 -0
  66. data/spec/vcr_cassettes/emitters/destroy/success.yml +44 -0
  67. data/spec/vcr_cassettes/emitters/info/error.yml +47 -0
  68. data/spec/vcr_cassettes/emitters/info/success.yml +77 -0
  69. data/spec/vcr_cassettes/emitters/list/success.yml +135 -0
  70. data/spec/vcr_cassettes/emitters/partial_update/success.yml +90 -0
  71. data/spec/vcr_cassettes/emitters/search/returns_empty.yml +47 -0
  72. data/spec/vcr_cassettes/emitters/search/success.yml +76 -0
  73. data/spec/vcr_cassettes/nfse/cancel/success.yml +49 -0
  74. data/spec/vcr_cassettes/nfse/create/given_taker.yml +109 -0
  75. data/spec/vcr_cassettes/nfse/create/incomplete.yml +73 -0
  76. data/spec/vcr_cassettes/nfse/create/success.yml +112 -0
  77. data/spec/vcr_cassettes/nfse/create/without_taker.yml +73 -0
  78. data/spec/vcr_cassettes/nfse/destroy/success.yml +46 -0
  79. data/spec/vcr_cassettes/nfse/history/success.yml +83 -0
  80. data/spec/vcr_cassettes/nfse/info/success.yml +113 -0
  81. data/spec/vcr_cassettes/nfse/list/success.yml +1353 -0
  82. data/spec/vcr_cassettes/nfse/pdf/success.yml +48 -0
  83. data/spec/vcr_cassettes/nfse/status/success.yml +51 -0
  84. data/spec/vcr_cassettes/nfse/update/success.yml +113 -0
  85. data/spec/vcr_cassettes/nfse/xml/success.yml +48 -0
  86. data/spec/vcr_cassettes/webhooks/create/success.yml +53 -0
  87. data/spec/vcr_cassettes/webhooks/destroy/success.yml +46 -0
  88. data/spec/vcr_cassettes/webhooks/list/success.yml +53 -0
  89. data/spec/vcr_cassettes/webhooks/update/success.yml +52 -0
  90. metadata +390 -0
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+
3
+ describe Emites::Resources::Webhook do
4
+ let(:http) { Emites::Http.new("7A75E575CFDEDB91FF7E2CE22089181A") }
5
+ let(:entity_klass) { Emites::Entities::Webhook }
6
+ let(:params) do
7
+ {
8
+ url: "http://requestb.in/1knsteq1",
9
+ name: "My Fake Webhook"
10
+ }
11
+ end
12
+
13
+ subject { described_class.new(http) }
14
+
15
+ it "has a instance of Emites::Http" do
16
+ expect(subject.http).to eq http
17
+ end
18
+
19
+ it_behaves_like "bound_notifiers", [:create, :update, :destroy]
20
+
21
+ describe "#list" do
22
+ it "returns an array of Webhooks" do
23
+ VCR.use_cassette("webhooks/list/success") do
24
+ webhooks = subject.list
25
+ expect(webhooks).to be_a(Array)
26
+ webhooks.each do |e|
27
+ expect(e).to be_a(entity_klass)
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ describe "#update" do
34
+ it "returns an Webhook instance updated" do
35
+ VCR.use_cassette("webhooks/update/success") do
36
+ webhook = subject.update(15, {name: "RSpec integration"})
37
+ expect(webhook).to be_a(entity_klass)
38
+ expect(webhook.name).to eq("RSpec integration")
39
+ end
40
+ end
41
+ end
42
+
43
+ describe "#destroy" do
44
+ it "returns true" do
45
+ VCR.use_cassette("webhooks/destroy/success") do
46
+ result = subject.destroy(14)
47
+ expect(result).to be_truthy
48
+ end
49
+ end
50
+ end
51
+
52
+ describe "#create" do
53
+ it "creates an webhook" do
54
+ VCR.use_cassette("webhooks/create/success") do
55
+ webhook = subject.create(params)
56
+ expect(webhook).to be_a(entity_klass)
57
+ expect(webhook.name).to eq(params[:name])
58
+ end
59
+ end
60
+ end
61
+
62
+ end
@@ -0,0 +1,63 @@
1
+ require "spec_helper"
2
+
3
+ describe Emites do
4
+
5
+ it "has a version number" do
6
+ expect(Emites::VERSION).not_to be_nil
7
+ end
8
+
9
+ describe ".configuration" do
10
+ it "is done via block initialization" do
11
+ Emites.configure do |c|
12
+ c.url = "http://some/where"
13
+ c.user_agent = "My App v1.0"
14
+ end
15
+ expect(Emites.configuration.url).to eq "http://some/where"
16
+ expect(Emites.configuration.user_agent).to eq "My App v1.0"
17
+ end
18
+
19
+ it "uses a singleton object for the configuration values" do
20
+ config1 = Emites.configuration
21
+ config2 = Emites.configuration
22
+ expect(config1).to eq config2
23
+ end
24
+ end
25
+
26
+ describe ".configure" do
27
+ it "returns nil when no block given" do
28
+ expect(Emites.configure).to eql(nil)
29
+ end
30
+
31
+ it "raise error if no method" do
32
+ expect { Emites.configure do |c|
33
+ c.user = "Bart"
34
+ end }.to raise_error(NoMethodError)
35
+ end
36
+ end
37
+
38
+ describe ".client" do
39
+ subject { described_class.client("MYTOKEN") }
40
+
41
+ it "returns an instance of Emites::Client" do
42
+ expect(subject).to be_a(Emites::Client)
43
+ end
44
+ end
45
+
46
+ describe ".subscribe" do
47
+ class FakePublisher
48
+ include Wisper::Publisher
49
+
50
+ def apply
51
+ publish("fake.event")
52
+ end
53
+ end
54
+
55
+ it "notifies all listeners about an event occurrence" do
56
+ listener = double("listener")
57
+ expect(listener).to receive(:call).and_return(true)
58
+ described_class.subscribe("fake.event", listener)
59
+ FakePublisher.new.apply
60
+ end
61
+ end
62
+
63
+ end
Binary file
@@ -0,0 +1,8 @@
1
+ shared_examples "bound_notifiers" do |*hooked_methods|
2
+ hooked_methods.flatten.each do |method|
3
+ it "hooked up method #{method}" do
4
+ expect(subject).to respond_to(method)
5
+ expect(subject).to respond_to("#{method}_without_notifier")
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ shared_examples "entity_attributes" do |attrs|
2
+ attrs.each do |attr|
3
+ it { is_expected.to have_attr_accessor(attr) }
4
+ end
5
+
6
+ it "expect to cover all attributes" do
7
+ expect(subject.attributes.keys).to match_array(attrs)
8
+ end
9
+ end
@@ -0,0 +1,38 @@
1
+ require "codeclimate-test-reporter"
2
+ require "simplecov"
3
+
4
+ CodeClimate::TestReporter.start
5
+
6
+ SimpleCov.start do
7
+ SimpleCov.maximum_coverage_drop 0.2
8
+ SimpleCov.start do
9
+ add_group "Resources", "lib/emites/resources"
10
+ add_group "Entities", "lib/emites/entities"
11
+ add_filter "vendor"
12
+ end
13
+ end
14
+
15
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
16
+
17
+ require "emites"
18
+ require "pry"
19
+ require "vcr"
20
+
21
+ VCR.configure do |config|
22
+ config.cassette_library_dir = "spec/vcr_cassettes"
23
+ config.hook_into :typhoeus
24
+ config.ignore_hosts "codeclimate.com"
25
+ end
26
+
27
+ Dir["spec/support/**/*.rb"].each { |f| load f }
28
+ Dir["spec/shared_examples/**/*.rb"].each { |f| load f }
29
+
30
+ RSpec.configure do |config|
31
+ config.mock_with :rspec
32
+
33
+ config.before(:each) do
34
+ Emites.configuration.url = "https://sandbox.emites.com.br/api/v1"
35
+ Typhoeus::Expectation.clear
36
+ end
37
+ end
38
+
@@ -0,0 +1,18 @@
1
+ RSpec::Matchers.define :have_attr_accessor do |field|
2
+ match do |object_instance|
3
+ object_instance.respond_to?(field) &&
4
+ object_instance.respond_to?("#{field}=")
5
+ end
6
+
7
+ failure_message do |object_instance|
8
+ "expected attr_accessor for #{field} on #{object_instance}"
9
+ end
10
+
11
+ failure_message_when_negated do |object_instance|
12
+ "expected attr_accessor for #{field} not to be defined on #{object_instance}"
13
+ end
14
+
15
+ description do
16
+ "checks to see if there is an attr accessor on the supplied object"
17
+ end
18
+ end
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.emites.com.br/api/v1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Emites Ruby Client v0.0.2
12
+ Accept:
13
+ - application/json
14
+ Content-Type:
15
+ - application/json
16
+ response:
17
+ status:
18
+ code: 401
19
+ message: UNAUTHORIZED
20
+ headers:
21
+ Allow:
22
+ - GET, HEAD, OPTIONS
23
+ Content-Type:
24
+ - application/json
25
+ Date:
26
+ - Thu, 19 Mar 2015 19:41:03 GMT
27
+ Server:
28
+ - nginx/1.6.2
29
+ User-Agent:
30
+ - emites-sandbox-v1
31
+ Vary:
32
+ - Cookie
33
+ WWW-Authenticate:
34
+ - Basic realm="api"
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ Content-Length:
38
+ - '29'
39
+ Connection:
40
+ - keep-alive
41
+ body:
42
+ encoding: UTF-8
43
+ string: '{"detail": "Bad credentials"}'
44
+ http_version: '1.1'
45
+ adapter_metadata:
46
+ effective_url: https://sandbox.emites.com.br/api/v1
47
+ recorded_at: Thu, 19 Mar 2015 19:41:02 GMT
48
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,259 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandbox.emites.com.br/api/v1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Emites Ruby Client v0.0.2
12
+ Accept:
13
+ - application/json
14
+ Content-Type:
15
+ - application/json
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Allow:
22
+ - GET, HEAD, OPTIONS
23
+ Content-Encoding:
24
+ - gzip
25
+ Content-Type:
26
+ - application/json
27
+ Date:
28
+ - Thu, 19 Mar 2015 19:41:03 GMT
29
+ Server:
30
+ - nginx/1.6.2
31
+ User-Agent:
32
+ - emites-sandbox-v1
33
+ Vary:
34
+ - Accept-Encoding
35
+ - Cookie
36
+ X-Frame-Options:
37
+ - SAMEORIGIN
38
+ transfer-encoding:
39
+ - chunked
40
+ Connection:
41
+ - keep-alive
42
+ body:
43
+ encoding: ASCII-8BIT
44
+ string: !binary |-
45
+ eyJpZCI6IDQsICJ1dWlkIjogImI2ODgzY2VlLWM3YWYtNDMzZC1iMGY0LTU1
46
+ ZjhjNGU3Y2M1OCIsICJuYW1lIjogIkNvbnRhIE15RmluYW5jZSBtYXggZGUg
47
+ cm9kcmlnby50YXNzaW5hcmlAbXlmcmVlY29tbS5jb20uYnIgIzEwMjIiLCAi
48
+ ZXhwaXJhdGlvbl9kYXRlIjogIjIwMTUtMDQtMDEiLCAiZW1pc3Npb25fY291
49
+ bnQiOiAxMSwgImVtaXNzaW9uX21vdW50aCI6ICIwMy8yMDE1IiwgIm1heF9l
50
+ bWlzc2lvbnMiOiAxMjUsICJwbGFuIjogeyJhbW91bnQiOiAiNTksMDAiLCAi
51
+ bmFtZSI6ICJFbWl0ZXMgQXZhbsOnYWRvIiwgInNsdWciOiAiZW1pdGVzLWFk
52
+ dmFuY2VkIn0sICJlbWl0dGVycyI6IFt7Il9saW5rcyI6IFt7ImhyZWYiOiAi
53
+ aHR0cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJz
54
+ LzUiLCAibWV0aG9kIjogIkdFVCIsICJyZWwiOiAic2VsZiJ9LCB7ImhyZWYi
55
+ OiAiaHR0cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0
56
+ ZXJzLzUiLCAibWV0aG9kIjogIlBVVCIsICJyZWwiOiAidXBkYXRlIn0sIHsi
57
+ aHJlZiI6ICJodHRwczovL3NhbmRib3guZW1pdGVzLmNvbS5ici9hcGkvdjEv
58
+ ZW1pdHRlcnMvNSIsICJtZXRob2QiOiAiUEFUQ0giLCAicmVsIjogInBhcnRp
59
+ YWxfdXBkYXRlIn0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRib3guZW1pdGVz
60
+ LmNvbS5ici9hcGkvdjEvZW1pdHRlcnMvNSIsICJtZXRob2QiOiAiREVMRVRF
61
+ IiwgInJlbCI6ICJkZXN0cm95In0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRi
62
+ b3guZW1pdGVzLmNvbS5ici9lbWl0dGVycy9lZGl0LzUiLCAibWV0aG9kIjog
63
+ IkdFVCIsICJyZWwiOiAiaHRtbCJ9LCB7ImhyZWYiOiAiaHR0cHM6Ly9zYW5k
64
+ Ym94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJzLzUvc2VyaWVzIiwg
65
+ Im1ldGhvZCI6ICJHRVQiLCAicmVsIjogInNlcmllcyJ9XSwgImNpdHkiOiB7
66
+ Im5hbWUiOiAiUmlvIGRlIEphbmVpcm8iLCAic3RhdGUiOiAiUkoiLCAiY2l0
67
+ eV9jb2RlIjogMzMwNDU1NywgImlzX2JldGEiOiBmYWxzZX0sICJjZXJ0aWZp
68
+ Y2F0ZV9maWxlbmFtZSI6ICI1NzAxMDk5LnBmeCIsICJpZCI6IDUsICJhY2Nv
69
+ dW50X2lkIjogNCwgImVtYWlsIjogImZ1bGFub0BlbXByZXNhLmNvbS5iciIs
70
+ ICJjbnBqIjogIjExODUzNTAxMDAwMTM3IiwgInNvY2lhbF9yZWFzb24iOiAi
71
+ RW1wcmVzYSBUYWwiLCAiZmFuY3lfbmFtZSI6ICJFbXByZXNpbmhhIiwgInN0
72
+ YXRlX2luc2NyaXB0aW9uIjogIiIsICJjaXR5X2luc2NyaXB0aW9uIjogIjI2
73
+ OTY5NjkiLCAibmVpZ2hib3Job29kIjogIkJvdGFmb2dvIiwgInN0cmVldCI6
74
+ ICJSdWEgR2VuZXJhbCBHb2VzIE1vbnRlaXJvIiwgIm51bWJlciI6ICI4Iiwg
75
+ ImNvbXBsZW1lbnQiOiAic2FsYSAxIiwgInppcF9jb2RlIjogIjIyMjkwMDgw
76
+ IiwgInBob25lIjogIjIxMjIyMjMzMzMiLCAibmF0aW9uYWxfc2ltcGxlX29w
77
+ dGFudCI6IGZhbHNlLCAiY3VsdHVyYWxfcHJvbW90ZXIiOiBmYWxzZSwgImlz
78
+ X2FjdGl2ZSI6IGZhbHNlLCAiZW52aXJvbm1lbnQiOiAic2FuZGJveCIsICJs
79
+ YXRlc3Rfc2VyaWUiOiBudWxsLCAibGF0ZXN0X251bWJlciI6IG51bGwsICJj
80
+ b3VudHJ5X2NvZGUiOiAiMDEwNTgiLCAic3RyZWV0X3R5cGUiOiAiUlVBIn0s
81
+ IHsiX2xpbmtzIjogW3siaHJlZiI6ICJodHRwczovL3NhbmRib3guZW1pdGVz
82
+ LmNvbS5ici9hcGkvdjEvZW1pdHRlcnMvMTAiLCAibWV0aG9kIjogIkdFVCIs
83
+ ICJyZWwiOiAic2VsZiJ9LCB7ImhyZWYiOiAiaHR0cHM6Ly9zYW5kYm94LmVt
84
+ aXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJzLzEwIiwgIm1ldGhvZCI6ICJQ
85
+ VVQiLCAicmVsIjogInVwZGF0ZSJ9LCB7ImhyZWYiOiAiaHR0cHM6Ly9zYW5k
86
+ Ym94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJzLzEwIiwgIm1ldGhv
87
+ ZCI6ICJQQVRDSCIsICJyZWwiOiAicGFydGlhbF91cGRhdGUifSwgeyJocmVm
88
+ IjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2FwaS92MS9lbWl0
89
+ dGVycy8xMCIsICJtZXRob2QiOiAiREVMRVRFIiwgInJlbCI6ICJkZXN0cm95
90
+ In0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRib3guZW1pdGVzLmNvbS5ici9l
91
+ bWl0dGVycy9lZGl0LzEwIiwgIm1ldGhvZCI6ICJHRVQiLCAicmVsIjogImh0
92
+ bWwifSwgeyJocmVmIjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJy
93
+ L2FwaS92MS9lbWl0dGVycy8xMC9zZXJpZXMiLCAibWV0aG9kIjogIkdFVCIs
94
+ ICJyZWwiOiAic2VyaWVzIn1dLCAiY2l0eSI6IHsibmFtZSI6ICJTw6NvIFBh
95
+ dWxvIiwgInN0YXRlIjogIlNQIiwgImNpdHlfY29kZSI6IDM1NTAzMDgsICJp
96
+ c19iZXRhIjogZmFsc2V9LCAiY2VydGlmaWNhdGVfZmlsZW5hbWUiOiAiY2Vy
97
+ dGlmaWNhdGUucGZ4IiwgImlkIjogMTAsICJhY2NvdW50X2lkIjogNCwgImVt
98
+ YWlsIjogInRlc3RldGF4d2ViQG15ZnJlZWNvbW0uY29tLmJyIiwgImNucGoi
99
+ OiAiNzM4MjgxMzIwMDAxODAiLCAic29jaWFsX3JlYXNvbiI6ICJFbXByZXNh
100
+ IFNQIGRlIFRlc3RlIiwgImZhbmN5X25hbWUiOiAiU1BUZXN0ZSIsICJzdGF0
101
+ ZV9pbnNjcmlwdGlvbiI6ICIiLCAiY2l0eV9pbnNjcmlwdGlvbiI6ICIxMzIx
102
+ MzIxMyIsICJuZWlnaGJvcmhvb2QiOiAiU8OpIiwgInN0cmVldCI6ICJFZGlm
103
+ w61jaW8gQmFyw6NvIGRlIElndWFwZSIsICJudW1iZXIiOiAiMjMxIiwgImNv
104
+ bXBsZW1lbnQiOiAiNDA1IiwgInppcF9jb2RlIjogIjAxMDAyOTAzIiwgInBo
105
+ b25lIjogIjExMzIzMjMyMzIyIiwgIm5hdGlvbmFsX3NpbXBsZV9vcHRhbnQi
106
+ OiBmYWxzZSwgImN1bHR1cmFsX3Byb21vdGVyIjogZmFsc2UsICJpc19hY3Rp
107
+ dmUiOiB0cnVlLCAiZW52aXJvbm1lbnQiOiAic2FuZGJveCIsICJsYXRlc3Rf
108
+ c2VyaWUiOiAiMSIsICJsYXRlc3RfbnVtYmVyIjogMiwgImNvdW50cnlfY29k
109
+ ZSI6ICIwMTA1OCIsICJzdHJlZXRfdHlwZSI6ICJSVUEifSwgeyJfbGlua3Mi
110
+ OiBbeyJocmVmIjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2Fw
111
+ aS92MS9lbWl0dGVycy8xNCIsICJtZXRob2QiOiAiR0VUIiwgInJlbCI6ICJz
112
+ ZWxmIn0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRib3guZW1pdGVzLmNvbS5i
113
+ ci9hcGkvdjEvZW1pdHRlcnMvMTQiLCAibWV0aG9kIjogIlBVVCIsICJyZWwi
114
+ OiAidXBkYXRlIn0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRib3guZW1pdGVz
115
+ LmNvbS5ici9hcGkvdjEvZW1pdHRlcnMvMTQiLCAibWV0aG9kIjogIlBBVENI
116
+ IiwgInJlbCI6ICJwYXJ0aWFsX3VwZGF0ZSJ9LCB7ImhyZWYiOiAiaHR0cHM6
117
+ Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJzLzE0Iiwg
118
+ Im1ldGhvZCI6ICJERUxFVEUiLCAicmVsIjogImRlc3Ryb3kifSwgeyJocmVm
119
+ IjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2VtaXR0ZXJzL2Vk
120
+ aXQvMTQiLCAibWV0aG9kIjogIkdFVCIsICJyZWwiOiAiaHRtbCJ9LCB7Imhy
121
+ ZWYiOiAiaHR0cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2Vt
122
+ aXR0ZXJzLzE0L3NlcmllcyIsICJtZXRob2QiOiAiR0VUIiwgInJlbCI6ICJz
123
+ ZXJpZXMifV0sICJjaXR5IjogeyJuYW1lIjogIk5pdGVyw7NpIiwgInN0YXRl
124
+ IjogIlJKIiwgImNpdHlfY29kZSI6IDMzMDMzMDIsICJpc19iZXRhIjogZmFs
125
+ c2V9LCAiY2VydGlmaWNhdGVfZmlsZW5hbWUiOiAiQ0VSVElGSUNBRE8gMjAx
126
+ NCBURUxFUVVBTElUWS5wZngiLCAiaWQiOiAxNCwgImFjY291bnRfaWQiOiA0
127
+ LCAiZW1haWwiOiAidGVzdGVuaXRlcm9pQG1haWxpbmF0b3IuY29tIiwgImNu
128
+ cGoiOiAiMDcwNDM4NDYwMDAxNTgiLCAic29jaWFsX3JlYXNvbiI6ICJUZWxl
129
+ cXVhbGl0eSBTZXJ2acOnb3MgQ29udGFjdCBDZW50ZXIgTHRkYSIsICJmYW5j
130
+ eV9uYW1lIjogIlRlbGVxdWFsaXR5IiwgInN0YXRlX2luc2NyaXB0aW9uIjog
131
+ IklTRU5UTyIsICJjaXR5X2luc2NyaXB0aW9uIjogIjEyNTU4MzUiLCAibmVp
132
+ Z2hib3Job29kIjogIkljYXJhw60iLCAic3RyZWV0IjogIkF2ZW5pZGEgUm9i
133
+ ZXJ0byBTaWx2ZWlyYSIsICJudW1iZXIiOiAiNDg4IiwgImNvbXBsZW1lbnQi
134
+ OiAiOMK6IGFuZGFyIiwgInppcF9jb2RlIjogIjI0MjMwMTYzIiwgInBob25l
135
+ IjogIjIxMzU0NTkxOTEiLCAibmF0aW9uYWxfc2ltcGxlX29wdGFudCI6IHRy
136
+ dWUsICJjdWx0dXJhbF9wcm9tb3RlciI6IGZhbHNlLCAiaXNfYWN0aXZlIjog
137
+ dHJ1ZSwgImVudmlyb25tZW50IjogInNhbmRib3giLCAibGF0ZXN0X3Nlcmll
138
+ IjogIlM0NSIsICJsYXRlc3RfbnVtYmVyIjogNDMyMywgImNvdW50cnlfY29k
139
+ ZSI6ICIwMTA1OCIsICJzdHJlZXRfdHlwZSI6ICJSVUEifSwgeyJfbGlua3Mi
140
+ OiBbeyJocmVmIjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2Fw
141
+ aS92MS9lbWl0dGVycy80IiwgIm1ldGhvZCI6ICJHRVQiLCAicmVsIjogInNl
142
+ bGYifSwgeyJocmVmIjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJy
143
+ L2FwaS92MS9lbWl0dGVycy80IiwgIm1ldGhvZCI6ICJQVVQiLCAicmVsIjog
144
+ InVwZGF0ZSJ9LCB7ImhyZWYiOiAiaHR0cHM6Ly9zYW5kYm94LmVtaXRlcy5j
145
+ b20uYnIvYXBpL3YxL2VtaXR0ZXJzLzQiLCAibWV0aG9kIjogIlBBVENIIiwg
146
+ InJlbCI6ICJwYXJ0aWFsX3VwZGF0ZSJ9LCB7ImhyZWYiOiAiaHR0cHM6Ly9z
147
+ YW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJzLzQiLCAibWV0
148
+ aG9kIjogIkRFTEVURSIsICJyZWwiOiAiZGVzdHJveSJ9LCB7ImhyZWYiOiAi
149
+ aHR0cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvZW1pdHRlcnMvZWRpdC80
150
+ IiwgIm1ldGhvZCI6ICJHRVQiLCAicmVsIjogImh0bWwifSwgeyJocmVmIjog
151
+ Imh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2FwaS92MS9lbWl0dGVy
152
+ cy80L3NlcmllcyIsICJtZXRob2QiOiAiR0VUIiwgInJlbCI6ICJzZXJpZXMi
153
+ fV0sICJjaXR5IjogeyJuYW1lIjogIlJpbyBkZSBKYW5laXJvIiwgInN0YXRl
154
+ IjogIlJKIiwgImNpdHlfY29kZSI6IDMzMDQ1NTcsICJpc19iZXRhIjogZmFs
155
+ c2V9LCAiY2VydGlmaWNhdGVfZmlsZW5hbWUiOiAibXlmaW5hbmNlX2ExXzIw
156
+ MTUucGZ4IiwgImlkIjogNCwgImFjY291bnRfaWQiOiA0LCAiZW1haWwiOiAi
157
+ Y29tZXJjaWFsQG15ZmluYW5jZS5jb20uYnIiLCAiY25waiI6ICIxNzc5OTM3
158
+ NzAwMDE1NSIsICJzb2NpYWxfcmVhc29uIjogIk15ZmluYW5jZSBDb25zdWx0
159
+ b3JpYSBlIEluZm9ybcOhdGljYSBMdGRhIE1FIiwgImZhbmN5X25hbWUiOiAi
160
+ TXlmaW5hbmNlIiwgInN0YXRlX2luc2NyaXB0aW9uIjogIklTRU5UTyIsICJj
161
+ aXR5X2luc2NyaXB0aW9uIjogIjA1NzI1OTg0IiwgIm5laWdoYm9yaG9vZCI6
162
+ ICJDZW50cm8iLCAic3RyZWV0IjogIlJ1YSBkbyBDYXJtbyIsICJudW1iZXIi
163
+ OiAiNDMiLCAiY29tcGxlbWVudCI6ICI4wrogYW5kYXIiLCAiemlwX2NvZGUi
164
+ OiAiMjAwMTEwMjAiLCAicGhvbmUiOiAiMjEzNTAxMTAwMCIsICJuYXRpb25h
165
+ bF9zaW1wbGVfb3B0YW50IjogZmFsc2UsICJjdWx0dXJhbF9wcm9tb3RlciI6
166
+ IGZhbHNlLCAiaXNfYWN0aXZlIjogdHJ1ZSwgImVudmlyb25tZW50IjogInNh
167
+ bmRib3giLCAibGF0ZXN0X3NlcmllIjogImEiLCAibGF0ZXN0X251bWJlciI6
168
+ IDIxMDM0NzM0NjYsICJjb3VudHJ5X2NvZGUiOiAiMDEwNTgiLCAic3RyZWV0
169
+ X3R5cGUiOiAiUlVBIn0sIHsiX2xpbmtzIjogW3siaHJlZiI6ICJodHRwczov
170
+ L3NhbmRib3guZW1pdGVzLmNvbS5ici9hcGkvdjEvZW1pdHRlcnMvMTYiLCAi
171
+ bWV0aG9kIjogIkdFVCIsICJyZWwiOiAic2VsZiJ9LCB7ImhyZWYiOiAiaHR0
172
+ cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJzLzE2
173
+ IiwgIm1ldGhvZCI6ICJQVVQiLCAicmVsIjogInVwZGF0ZSJ9LCB7ImhyZWYi
174
+ OiAiaHR0cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0
175
+ ZXJzLzE2IiwgIm1ldGhvZCI6ICJQQVRDSCIsICJyZWwiOiAicGFydGlhbF91
176
+ cGRhdGUifSwgeyJocmVmIjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29t
177
+ LmJyL2FwaS92MS9lbWl0dGVycy8xNiIsICJtZXRob2QiOiAiREVMRVRFIiwg
178
+ InJlbCI6ICJkZXN0cm95In0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRib3gu
179
+ ZW1pdGVzLmNvbS5ici9lbWl0dGVycy9lZGl0LzE2IiwgIm1ldGhvZCI6ICJH
180
+ RVQiLCAicmVsIjogImh0bWwifSwgeyJocmVmIjogImh0dHBzOi8vc2FuZGJv
181
+ eC5lbWl0ZXMuY29tLmJyL2FwaS92MS9lbWl0dGVycy8xNi9zZXJpZXMiLCAi
182
+ bWV0aG9kIjogIkdFVCIsICJyZWwiOiAic2VyaWVzIn1dLCAiY2l0eSI6IHsi
183
+ bmFtZSI6ICJTw6NvIFBhdWxvIiwgInN0YXRlIjogIlNQIiwgImNpdHlfY29k
184
+ ZSI6IDM1NTAzMDgsICJpc19iZXRhIjogZmFsc2V9LCAiY2VydGlmaWNhdGVf
185
+ ZmlsZW5hbWUiOiAiY2VydGlmaWNhdGUucGZ4IiwgImlkIjogMTYsICJhY2Nv
186
+ dW50X2lkIjogNCwgImVtYWlsIjogImZhYmlhbm8ubW9yYWVzQG91dGxvb2su
187
+ Y29tIiwgImNucGoiOiAiNzQxNDM1OTMwMDAxODEiLCAic29jaWFsX3JlYXNv
188
+ biI6ICJkc2QiLCAiZmFuY3lfbmFtZSI6ICJzZGFzZGFzIiwgInN0YXRlX2lu
189
+ c2NyaXB0aW9uIjogIiIsICJjaXR5X2luc2NyaXB0aW9uIjogIjA1NzI1OTg0
190
+ IiwgIm5laWdoYm9yaG9vZCI6ICJTw6kiLCAic3RyZWV0IjogIkVkaWbDrWNp
191
+ byBCYXLDo28gZGUgSWd1YXBlIiwgIm51bWJlciI6ICI0MyIsICJjb21wbGVt
192
+ ZW50IjogIiIsICJ6aXBfY29kZSI6ICIwMTAwMjkwMyIsICJwaG9uZSI6ICI1
193
+ NDU1NTU1NTU1IiwgIm5hdGlvbmFsX3NpbXBsZV9vcHRhbnQiOiB0cnVlLCAi
194
+ Y3VsdHVyYWxfcHJvbW90ZXIiOiBmYWxzZSwgImlzX2FjdGl2ZSI6IGZhbHNl
195
+ LCAiZW52aXJvbm1lbnQiOiAic2FuZGJveCIsICJsYXRlc3Rfc2VyaWUiOiAi
196
+ IiwgImxhdGVzdF9udW1iZXIiOiBudWxsLCAiY291bnRyeV9jb2RlIjogIjAx
197
+ MDU4IiwgInN0cmVldF90eXBlIjogIlJVQSJ9LCB7Il9saW5rcyI6IFt7Imhy
198
+ ZWYiOiAiaHR0cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2Vt
199
+ aXR0ZXJzLzE5IiwgIm1ldGhvZCI6ICJHRVQiLCAicmVsIjogInNlbGYifSwg
200
+ eyJocmVmIjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2FwaS92
201
+ MS9lbWl0dGVycy8xOSIsICJtZXRob2QiOiAiUFVUIiwgInJlbCI6ICJ1cGRh
202
+ dGUifSwgeyJocmVmIjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJy
203
+ L2FwaS92MS9lbWl0dGVycy8xOSIsICJtZXRob2QiOiAiUEFUQ0giLCAicmVs
204
+ IjogInBhcnRpYWxfdXBkYXRlIn0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRi
205
+ b3guZW1pdGVzLmNvbS5ici9hcGkvdjEvZW1pdHRlcnMvMTkiLCAibWV0aG9k
206
+ IjogIkRFTEVURSIsICJyZWwiOiAiZGVzdHJveSJ9LCB7ImhyZWYiOiAiaHR0
207
+ cHM6Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvZW1pdHRlcnMvZWRpdC8xOSIs
208
+ ICJtZXRob2QiOiAiR0VUIiwgInJlbCI6ICJodG1sIn0sIHsiaHJlZiI6ICJo
209
+ dHRwczovL3NhbmRib3guZW1pdGVzLmNvbS5ici9hcGkvdjEvZW1pdHRlcnMv
210
+ MTkvc2VyaWVzIiwgIm1ldGhvZCI6ICJHRVQiLCAicmVsIjogInNlcmllcyJ9
211
+ XSwgImNpdHkiOiB7Im5hbWUiOiAiUmlvIGRlIEphbmVpcm8iLCAic3RhdGUi
212
+ OiAiUkoiLCAiY2l0eV9jb2RlIjogMzMwNDU1NywgImlzX2JldGEiOiBmYWxz
213
+ ZX0sICJjZXJ0aWZpY2F0ZV9maWxlbmFtZSI6ICJjLnBmeCIsICJpZCI6IDE5
214
+ LCAiYWNjb3VudF9pZCI6IDQsICJlbWFpbCI6ICJlbWFpbEBleGFtcGxlLmNv
215
+ bSIsICJjbnBqIjogIjQ3MTgzODU1MDAwMTY5IiwgInNvY2lhbF9yZWFzb24i
216
+ OiAiRm9vIEJhciIsICJmYW5jeV9uYW1lIjogIkZvbyIsICJzdGF0ZV9pbnNj
217
+ cmlwdGlvbiI6ICIiLCAiY2l0eV9pbnNjcmlwdGlvbiI6ICIzMzA0NTU3Iiwg
218
+ Im5laWdoYm9yaG9vZCI6ICJDZW50cm8iLCAic3RyZWV0IjogIlJ1YSBkbyBD
219
+ YXJtbyIsICJudW1iZXIiOiAiNDMiLCAiY29tcGxlbWVudCI6ICIiLCAiemlw
220
+ X2NvZGUiOiAiMjAwMTEwMjAiLCAicGhvbmUiOiAiNTQzMjIxNTU2NjEiLCAi
221
+ bmF0aW9uYWxfc2ltcGxlX29wdGFudCI6IGZhbHNlLCAiY3VsdHVyYWxfcHJv
222
+ bW90ZXIiOiBmYWxzZSwgImlzX2FjdGl2ZSI6IGZhbHNlLCAiZW52aXJvbm1l
223
+ bnQiOiAic2FuZGJveCIsICJsYXRlc3Rfc2VyaWUiOiAiIiwgImxhdGVzdF9u
224
+ dW1iZXIiOiBudWxsLCAiY291bnRyeV9jb2RlIjogIjAxMDU4IiwgInN0cmVl
225
+ dF90eXBlIjogIlJVQSJ9LCB7Il9saW5rcyI6IFt7ImhyZWYiOiAiaHR0cHM6
226
+ Ly9zYW5kYm94LmVtaXRlcy5jb20uYnIvYXBpL3YxL2VtaXR0ZXJzLzI1Iiwg
227
+ Im1ldGhvZCI6ICJHRVQiLCAicmVsIjogInNlbGYifSwgeyJocmVmIjogImh0
228
+ dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2FwaS92MS9lbWl0dGVycy8y
229
+ NSIsICJtZXRob2QiOiAiUFVUIiwgInJlbCI6ICJ1cGRhdGUifSwgeyJocmVm
230
+ IjogImh0dHBzOi8vc2FuZGJveC5lbWl0ZXMuY29tLmJyL2FwaS92MS9lbWl0
231
+ dGVycy8yNSIsICJtZXRob2QiOiAiUEFUQ0giLCAicmVsIjogInBhcnRpYWxf
232
+ dXBkYXRlIn0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRib3guZW1pdGVzLmNv
233
+ bS5ici9hcGkvdjEvZW1pdHRlcnMvMjUiLCAibWV0aG9kIjogIkRFTEVURSIs
234
+ ICJyZWwiOiAiZGVzdHJveSJ9LCB7ImhyZWYiOiAiaHR0cHM6Ly9zYW5kYm94
235
+ LmVtaXRlcy5jb20uYnIvZW1pdHRlcnMvZWRpdC8yNSIsICJtZXRob2QiOiAi
236
+ R0VUIiwgInJlbCI6ICJodG1sIn0sIHsiaHJlZiI6ICJodHRwczovL3NhbmRi
237
+ b3guZW1pdGVzLmNvbS5ici9hcGkvdjEvZW1pdHRlcnMvMjUvc2VyaWVzIiwg
238
+ Im1ldGhvZCI6ICJHRVQiLCAicmVsIjogInNlcmllcyJ9XSwgImNpdHkiOiB7
239
+ Im5hbWUiOiAiTml0ZXLDs2kiLCAic3RhdGUiOiAiUkoiLCAiY2l0eV9jb2Rl
240
+ IjogMzMwMzMwMiwgImlzX2JldGEiOiBmYWxzZX0sICJjZXJ0aWZpY2F0ZV9m
241
+ aWxlbmFtZSI6ICJjZXJ0aWZpY2F0ZS5wZngiLCAiaWQiOiAyNSwgImFjY291
242
+ bnRfaWQiOiA0LCAiZW1haWwiOiAid2FuZGVyc29uLnBvbGljYXJwb0BteWZy
243
+ ZWVjb21tLmNvbS5iciIsICJjbnBqIjogIjAxMDAxMDAxMDAwMTEzIiwgInNv
244
+ Y2lhbF9yZWFzb24iOiAiTXkgRmFrZSwgSW5jIiwgImZhbmN5X25hbWUiOiAi
245
+ TXkgRmFrZSIsICJzdGF0ZV9pbnNjcmlwdGlvbiI6ICIiLCAiY2l0eV9pbnNj
246
+ cmlwdGlvbiI6ICIzMzA0NTU3IiwgIm5laWdoYm9yaG9vZCI6ICJJY2FyYcOt
247
+ IiwgInN0cmVldCI6ICJBdmVuaWRhIFJvYmVydG8gU2lsdmVpcmEgLSBkZSA0
248
+ NzIgYW8gZmltIC0gbGFkbyBwYXIiLCAibnVtYmVyIjogIjQzIiwgImNvbXBs
249
+ ZW1lbnQiOiBudWxsLCAiemlwX2NvZGUiOiAiMjQyMzAxNjMiLCAicGhvbmUi
250
+ OiAiMjE5OTk5OTk5OSIsICJuYXRpb25hbF9zaW1wbGVfb3B0YW50IjogZmFs
251
+ c2UsICJjdWx0dXJhbF9wcm9tb3RlciI6IGZhbHNlLCAiaXNfYWN0aXZlIjog
252
+ ZmFsc2UsICJlbnZpcm9ubWVudCI6ICJzYW5kYm94IiwgImxhdGVzdF9zZXJp
253
+ ZSI6IG51bGwsICJsYXRlc3RfbnVtYmVyIjogbnVsbCwgImNvdW50cnlfY29k
254
+ ZSI6ICIwMTA1OCIsICJzdHJlZXRfdHlwZSI6ICJSVUEifV19
255
+ http_version: '1.1'
256
+ adapter_metadata:
257
+ effective_url: https://sandbox.emites.com.br/api/v1
258
+ recorded_at: Thu, 19 Mar 2015 19:41:02 GMT
259
+ recorded_with: VCR 2.9.3