bitreserve 1.2.0 → 1.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3bbbbdb0761739cd6c5e1d66a3f0ac5dfa71c498
4
- data.tar.gz: d12bcb0e633a3a04665b17d7b778838645d584d7
3
+ metadata.gz: 695ae2500f15a4407019109e0c7161d4381aa174
4
+ data.tar.gz: 13176e49bdd283942ba539f0456b61043870115c
5
5
  SHA512:
6
- metadata.gz: 3e07529048a9d805f6b22460e26f89defe5f7da1b6fe71d3dc49b7b20c3018bac0df8cf0a0b834e59a0191d2c8ded7a7ea99438d4cdb033d3c992de2a4e43a38
7
- data.tar.gz: dbd7039f5765587738de721d3dd48d67b3f942948abfa8fd63bea919baa380682c5eafcf98c997237a61131387a769a1236032a7722674978fb8d6889e303eec
6
+ metadata.gz: cf72f59816f865847b1de5524fcddd83198446404c7e7e2cae056763dd5f5fdeedd958658dd30918ff3a2c8a2302ba544dae3a873ea903044ff5b29825474ca2
7
+ data.tar.gz: 5b6b367acda03beea52910c90e72fd61f92c38481658839cb51f7d2ee20cc20ec4ad58250ad1a5aa6d2ceb6d3b4769b72f6fa5a243e2e1eb284f66654d397057
data/lib/bitreserve.rb CHANGED
@@ -32,4 +32,5 @@ require 'bitreserve/entities/phone'
32
32
  require 'bitreserve/entities/ticker'
33
33
  require 'bitreserve/entities/transaction'
34
34
  require 'bitreserve/entities/user'
35
+ require 'bitreserve/entities/oauth_error'
35
36
  require 'bitreserve/entities/error'
@@ -2,8 +2,7 @@ module Bitreserve
2
2
  module Entities
3
3
  class Error < BaseEntity
4
4
  attribute :code
5
- attribute :error
6
- attribute :error_description
5
+ attribute :errors
7
6
  end
8
7
  end
9
8
  end
@@ -0,0 +1,9 @@
1
+ module Bitreserve
2
+ module Entities
3
+ class OAuthError < BaseEntity
4
+ attribute :code
5
+ attribute :error
6
+ attribute :error_description
7
+ end
8
+ end
9
+ end
@@ -44,10 +44,12 @@ module Bitreserve
44
44
  attr_reader :path, :data, :auth, :headers
45
45
 
46
46
  def self.with_valid_response(response)
47
- if response.is_a?(Hash) && response['error']
48
- Entities::Error.new(response)
47
+ return yield unless response.code >= 400
48
+
49
+ if response['error_description']
50
+ Entities::OAuthError.new(response)
49
51
  else
50
- yield
52
+ Entities::Error.new(response)
51
53
  end
52
54
  end
53
55
 
@@ -1,3 +1,3 @@
1
1
  module Bitreserve
2
- VERSION = '1.2.0'
2
+ VERSION = '1.2.1'
3
3
  end
@@ -4,8 +4,8 @@ require 'uri'
4
4
  WebMock.disable_net_connect!(allow: 'codeclimate.com')
5
5
 
6
6
  module WebMockHelpers
7
- def self.bitreserve_stub_request(method, url, response = [])
7
+ def self.bitreserve_stub_request(method, url, response = [], status: 200)
8
8
  WebMock::API.stub_request(method, Bitreserve::Request.base_uri + url).
9
- to_return(body: response.to_json, headers: { 'Content-Type' => 'application/json' })
9
+ to_return(body: response.to_json, status: status, headers: { 'Content-Type' => 'application/json' })
10
10
  end
11
11
  end
@@ -58,15 +58,26 @@ module Bitreserve
58
58
  expect(Request).to have_received(:get).with(url, headers: headers, body: body)
59
59
  end
60
60
 
61
+ it 'handles an auth error response' do
62
+ fake_error = { code: '401', error: 'invalid_token', error_description: 'A description' }
63
+ request_data = RequestData.new('/some-url', object_class)
64
+ WebMockHelpers.bitreserve_stub_request(:get, '/some-url', fake_error, status: 401)
65
+
66
+ result = Request.public_send(method_name, :get, request_data)
67
+
68
+ expect(result).to be_a(Entities::OAuthError)
69
+ expect(result.code).to eq '401'
70
+ end
71
+
61
72
  it 'handles an error response' do
62
- fake_error = { code: '401', error: 'message' }
73
+ fake_error = { code: '400', errors: {} }
63
74
  request_data = RequestData.new('/some-url', object_class)
64
- WebMockHelpers.bitreserve_stub_request(:get, '/some-url', fake_error)
75
+ WebMockHelpers.bitreserve_stub_request(:get, '/some-url', fake_error, status: 400)
65
76
 
66
77
  result = Request.public_send(method_name, :get, request_data)
67
78
 
68
79
  expect(result).to be_a(Entities::Error)
69
- expect(result.code).to eq '401'
80
+ expect(result.code).to eq '400'
70
81
  end
71
82
  end
72
83
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitreserve
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Group Buddies
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-12 00:00:00.000000000 Z
11
+ date: 2015-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -170,6 +170,7 @@ files:
170
170
  - lib/bitreserve/entities/card.rb
171
171
  - lib/bitreserve/entities/contact.rb
172
172
  - lib/bitreserve/entities/error.rb
173
+ - lib/bitreserve/entities/oauth_error.rb
173
174
  - lib/bitreserve/entities/phone.rb
174
175
  - lib/bitreserve/entities/ticker.rb
175
176
  - lib/bitreserve/entities/transaction.rb
@@ -241,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
242
  version: '0'
242
243
  requirements: []
243
244
  rubyforge_project:
244
- rubygems_version: 2.4.5
245
+ rubygems_version: 2.4.6
245
246
  signing_key:
246
247
  specification_version: 4
247
248
  summary: A wrapper for the bitreserve API
@@ -288,3 +289,4 @@ test_files:
288
289
  - spec/unit/entities/base_entity_spec.rb
289
290
  - spec/unit/helper_spec.rb
290
291
  - spec/unit/request_spec.rb
292
+ has_rdoc: