summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/hcl/harvest_middleware.rb12
-rw-r--r--lib/hcl/timesheet_resource.rb2
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/hcl/harvest_middleware.rb b/lib/hcl/harvest_middleware.rb
index d4df9e8..47e790d 100644
--- a/lib/hcl/harvest_middleware.rb
+++ b/lib/hcl/harvest_middleware.rb
@@ -8,20 +8,20 @@ class HCl::HarvestMiddleware < FaradayMiddleware::ResponseMiddleware
class ThrottleFailure < StandardError
attr_reader :retry_after
def initialize env
- @retry_after = env[:headers]['Retry-After'].to_i
+ @retry_after = env[:response_headers]['retry-after'].to_i
super "Too many requests! Try again in #{@retry_after} seconds."
end
end
- define_parser do |body|
- unescape MultiJson.load(body, symbolize_keys:true)
- end
-
def call(env)
@app.call(env).on_complete do |env|
case env[:status]
when 200..299
- env[:body] = unescape MultiJson.load(env[:body], symbolize_keys:true)
+ begin
+ env[:body] = unescape(MultiJson.load(env[:body].chomp, symbolize_keys:true))
+ rescue MultiJson::LoadError
+ env[:body]
+ end
when 300..399
raise Failure, "Redirected! Perhaps your ssl configuration variable is set incorrectly?"
when 400..499
diff --git a/lib/hcl/timesheet_resource.rb b/lib/hcl/timesheet_resource.rb
index c82e7ed..df32be7 100644
--- a/lib/hcl/timesheet_resource.rb
+++ b/lib/hcl/timesheet_resource.rb
@@ -50,7 +50,7 @@ module HCl
f.headers['Accept'] = 'application/json'
f.request :json
f.request :basic_auth, login, password
- f.use HCl::HarvestMiddleware, content_type: /\bjson$/
+ f.use HCl::HarvestMiddleware, content_type: /\bjson\b/
f.adapter Faraday.default_adapter
end
end