emites-client 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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