invoiced 0.11.0 → 0.11.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: 2ac4d832ff168090c18ef76f0454c0f74917cca4
4
- data.tar.gz: e4a6826d457f078a188fdd0628c37db49cef27dc
3
+ metadata.gz: 36f61c90e6aa69cab6b6c3faac283371daed62a7
4
+ data.tar.gz: b2e633df7680339360d2f487232930434d4e250f
5
5
  SHA512:
6
- metadata.gz: 06dbb02d3ea0e8fcfe8cf8fecc8fac3ac7c9baac4a084de8bf21a87d63b47282a4fdebac85393e840d14c65408e04ddd5595d7659db552b974916ddcd1dac5e6
7
- data.tar.gz: 0549855a16c9189e7bd44d4a1e604c93f8713708ca43a175cd1cea85920d78ebbb913af16093d402cc82f6a56d2e5ce904d619c6e644ff280e1aee9d1b87064a
6
+ metadata.gz: 4eaf1bb83c817d5fac2c1db2dfee37449af20cbafe0f0e9ecf33f1a43e90ab18d824d7aa3d2272f104f1933e8e5f817d6e0d07b57196d0734f23cdf97dd15d79
7
+ data.tar.gz: c6b7def7ec8abbcededfe0a4fb26b7dd2978f522ad3eb1c5418ac788f60a8d755e38898a61289a7d3d958e600b6c6e065149ef6622c8bf4027f5d228d49527cc
@@ -1,3 +1,3 @@
1
1
  module Invoiced
2
- VERSION = '0.11.0'
2
+ VERSION = '0.11.1'
3
3
  end
data/lib/invoiced.rb CHANGED
@@ -10,6 +10,7 @@ require 'invoiced/error/api_connection_error'
10
10
  require 'invoiced/error/api_error'
11
11
  require 'invoiced/error/authentication_error'
12
12
  require 'invoiced/error/invalid_request'
13
+ require 'invoiced/error/rate_limit_error'
13
14
  require 'invoiced/list'
14
15
  require 'invoiced/operations/list'
15
16
  require 'invoiced/operations/create'
@@ -128,6 +129,8 @@ module Invoiced
128
129
  raise invalid_request_error(error, response)
129
130
  when 401
130
131
  raise authentication_error(error, response)
132
+ when 429
133
+ raise rate_limit_error(error, response)
131
134
  else
132
135
  raise api_error(error, response)
133
136
  end
@@ -158,6 +161,10 @@ module Invoiced
158
161
  InvalidRequestError.new(error["message"], response.code, error)
159
162
  end
160
163
 
164
+ def rate_limit_error(error, response)
165
+ RateLimitError.new(error["message"], response.code, error)
166
+ end
167
+
161
168
  def api_error(error, response)
162
169
  ApiError.new(error["message"], response.code, error)
163
170
  end
@@ -177,6 +177,23 @@ module Invoiced
177
177
  end
178
178
  end
179
179
 
180
+ should "handle a rate limit error" do
181
+ mockResponse = mock('RestClient::Response')
182
+ mockResponse.stubs(:code).returns(429)
183
+ mockResponse.stubs(:body).returns('{"error":true}')
184
+
185
+ ex = RestClient::ExceptionWithResponse.new
186
+ ex.response = mockResponse
187
+
188
+ RestClient::Request.any_instance.expects(:execute).raises(ex)
189
+
190
+ client = Invoiced::Client.new('test')
191
+
192
+ assert_raise Invoiced::RateLimitError do
193
+ client.request("POST", "/invoices")
194
+ end
195
+ end
196
+
180
197
  should "handle an api error" do
181
198
  mockResponse = mock('RestClient::Response')
182
199
  mockResponse.stubs(:code).returns(500)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invoiced
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.11.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared King
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-23 00:00:00.000000000 Z
11
+ date: 2017-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client