22 lines
656 B
Ruby
22 lines
656 B
Ruby
module Faraday
|
|
class Response::RaiseError < Response::Middleware
|
|
ClientErrorStatuses = 400...600
|
|
|
|
def on_complete(env)
|
|
case env[:status]
|
|
when 404
|
|
raise Faraday::Error::ResourceNotFound, response_values(env)
|
|
when 407
|
|
# mimic the behavior that we get with proxy requests with HTTPS
|
|
raise Faraday::Error::ConnectionFailed, %{407 "Proxy Authentication Required "}
|
|
when ClientErrorStatuses
|
|
raise Faraday::Error::ClientError, response_values(env)
|
|
end
|
|
end
|
|
|
|
def response_values(env)
|
|
{:status => env.status, :headers => env.response_headers, :body => env.body}
|
|
end
|
|
end
|
|
end
|