diff --git a/lib/emailage.rb b/lib/emailage.rb index b550b13..d67ddd2 100644 --- a/lib/emailage.rb +++ b/lib/emailage.rb @@ -19,5 +19,5 @@ module Emailage } class Error < StandardError; end - class TemporaryError < Error; end + class Failure < StandardError; end end diff --git a/lib/emailage/client.rb b/lib/emailage/client.rb index 783ef00..35eb587 100644 --- a/lib/emailage/client.rb +++ b/lib/emailage/client.rb @@ -47,11 +47,10 @@ def request(endpoint, params) res = Typhoeus.get url, :params => params.merge(:oauth_signature => Signature.create('GET', url, params, @hmac_key)) json = res.body.sub(/^[^{]+/, '') - if res.code == 200 - return JSON.parse json - elsif json.empty? - raise TemporaryError + if json.empty? + raise Failure, "Body length: #{res.body&.length} Code: #{res.code} " end + return JSON.parse json end public diff --git a/spec/client_spec.rb b/spec/client_spec.rb index 235c35d..784abc1 100644 --- a/spec/client_spec.rb +++ b/spec/client_spec.rb @@ -39,7 +39,15 @@ let(:response) { double :response, :body => "", :code => 503 } it 'raises TemporaryError' do - expect { request }.to raise_error(Emailage::TemporaryError) + expect { request }.to raise_error(Emailage::Failure) + end + end + + context 'error string is returned' do + let(:response) { double :response, :body => "dummy body }", :code => 503 } + + it 'raises TemporaryError' do + expect { request }.to raise_error(Emailage::Failure) end end end