lib/heroku/api.rb in heroku-api-0.1.2 vs lib/heroku/api.rb in heroku-api-0.1.3

- old
+ new

@@ -56,14 +56,25 @@ def request(params, &block) begin response = @connection.request(params, &block) rescue Excon::Errors::NotFound => error - reerror = Heroku::API::Errors::NotFound.new(error.message) + reerror = Heroku::API::Errors::NotFound.new(error.message, error.response) reerror.set_backtrace(error.backtrace) raise reerror rescue Excon::Errors::Error => error - reerror = Heroku::API::Errors::Error.new(error.message) + klass = case error.response.status + when 401 then Heroku::API::Errors::Unauthorized + when 402 then Heroku::API::Errors::VerificationRequired + when 403 then Heroku::API::Errors::Forbidden + when 408 then Heroku::API::Errors::Timeout + when 422 then Heroku::API::Errors::RequestFailed + when 423 then Heroku::API::Errors::Locked + when /50./ then Heroku::API::Errors::RequestFailed + else Heroku::API::Errors::ErrorWithResponse + end + + reerror = klass.new(error.message, error.response) reerror.set_backtrace(error.backtrace) raise reerror end if response.body && !response.body.empty?