Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions lib/json_api_client/errors.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ module JsonApiClient
module Errors
class ApiError < StandardError
attr_reader :env
def initialize(env)
def initialize(env, msg = nil)
super msg
@env = env
end
end
Expand All @@ -20,14 +21,14 @@ class ConnectionError < ApiError
end

class ServerError < ApiError
def message
"Internal server error"
def initialize(env, msg = 'Internal server error')
super env, msg
end
end

class Conflict < ServerError
def message
"Resource already exists"
def initialize(env, msg = 'Resource already exists')
super env, msg
end
end

Expand All @@ -51,6 +52,5 @@ def message
"Unexpected response status: #{code} from: #{uri.to_s}"
end
end

end
end
4 changes: 2 additions & 2 deletions lib/json_api_client/middleware/status.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ def call(environment)
handle_status(code, env)
end
end
rescue Faraday::ConnectionFailed, Faraday::TimeoutError
raise Errors::ConnectionError, environment
rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
raise Errors::ConnectionError.new environment, e.to_s
end

protected
Expand Down
6 changes: 4 additions & 2 deletions test/unit/errors_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ class ErrorsTest < MiniTest::Test

def test_connection_errors
stub_request(:get, "http://example.com/users")
.to_raise(Faraday::ConnectionFailed)
.to_raise(Faraday::ConnectionFailed.new("specific message"))

assert_raises JsonApiClient::Errors::ConnectionError do
err = assert_raises JsonApiClient::Errors::ConnectionError do
User.all
end

assert_match /specific message/, err.message
end

def test_timeout_errors
Expand Down