X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=3rdparty%2Fmodules%2Faviator%2Ffeature%2Ffaraday%2Fresponse%2Fraise_error.rb;fp=3rdparty%2Fmodules%2Faviator%2Ffeature%2Ffaraday%2Fresponse%2Fraise_error.rb;h=437762bc17e7e114e247808d80df22b312970046;hb=4631045ebb77ee8622f6fa09277a50c372bcc02e;hp=0000000000000000000000000000000000000000;hpb=3d4dc4fd9e59bd0e07646c99f6b356c7d9d859aa;p=dsa-puppet.git diff --git a/3rdparty/modules/aviator/feature/faraday/response/raise_error.rb b/3rdparty/modules/aviator/feature/faraday/response/raise_error.rb new file mode 100644 index 00000000..437762bc --- /dev/null +++ b/3rdparty/modules/aviator/feature/faraday/response/raise_error.rb @@ -0,0 +1,21 @@ +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