bitreserve 1.2.0 → 1.2.1

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