help_scout 0.7.0 → 0.8.0

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: c18838b8f3d306d2abb411f299fafcadafc2a887
4
- data.tar.gz: f796e09b19f5a954065b37cbaf5ed17e189a2728
3
+ metadata.gz: af9833c01bb362743f11ae7a37fded124b094a45
4
+ data.tar.gz: b00861cc5a4e1cb8b849b8d747316a538184310e
5
5
  SHA512:
6
- metadata.gz: c05acce3a643814aeaa6f97ec338f87ad81dfb84cd6c13403eb67af846564914ce0cfa27f4fd3e2da142525aac803de93e05d272c6c63032ab5506d7dd582101
7
- data.tar.gz: eb3c81078b5c075ed67f56cdd90a077b31098356ccfc8af16da513abc108772097223cf0f52b7c63a94f7d46f59effd14c15afe801ad721b4dceb0deecd772aa
6
+ metadata.gz: 6622b14f0f9845f7d6370e6350e78063884a127c95dd91514fbc29b8401a0aee135a7ea828097bb89472d468ef45e81e37d1b4f6a650c55db64d7125d5145c6e
7
+ data.tar.gz: 7c3d739ff7256c65de60f029097264b24d257b392b4f6810d79fc1a82a4b653174f8b314cb0148b3ab796327eeeb385a7646a8636674fb16f9f814aef843c89e
data/.travis.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.1.7
4
+ - 2.4.1
5
5
  before_install: gem install bundler -v 1.12.3
@@ -1,3 +1,3 @@
1
1
  class HelpScout
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
data/lib/help_scout.rb CHANGED
@@ -5,6 +5,7 @@ class HelpScout
5
5
  class ValidationError < StandardError; end
6
6
  class NotImplementedError < StandardError; end
7
7
  class NotFoundError < StandardError; end
8
+ class TooManyRequestsError < StandardError; end
8
9
  class InternalServerError < StandardError; end
9
10
 
10
11
  # Status codes used by Help Scout, not all are implemented in this gem yet.
@@ -14,6 +15,7 @@ class HelpScout
14
15
  HTTP_NO_CONTENT = 204
15
16
  HTTP_BAD_REQUEST = 400
16
17
  HTTP_NOT_FOUND = 404
18
+ HTTP_TOO_MANY_REQUESTS = 429
17
19
  HTTP_INTERNAL_SERVER_ERROR = 500
18
20
 
19
21
  attr_accessor :last_response
@@ -206,6 +208,10 @@ class HelpScout
206
208
  raise NotFoundError
207
209
  when HTTP_INTERNAL_SERVER_ERROR
208
210
  raise InternalServerError
211
+ when HTTP_TOO_MANY_REQUESTS
212
+ retry_after = last_response.headers["Retry-After"]
213
+ error_message = "Rate limit of 200 RPM or 12 POST/PUT/DELETE requests per 5 seconds reached. Next request possible in #{retry_after} seconds."
214
+ raise TooManyRequestsError, error_message
209
215
  else
210
216
  raise NotImplementedError, "Help Scout returned something that is not implemented by the help_scout gem yet: #{@last_response.code}: #{@last_response.parsed_response["message"] if @last_response.parsed_response}"
211
217
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: help_scout
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dennis Paagman
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2017-08-31 00:00:00.000000000 Z
13
+ date: 2017-09-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  version: '0'
138
138
  requirements: []
139
139
  rubyforge_project:
140
- rubygems_version: 2.6.11
140
+ rubygems_version: 2.5.1
141
141
  signing_key:
142
142
  specification_version: 4
143
143
  summary: HelpScout is an API client for Help Scout