lib/cfoundry/v1/base.rb in cfoundry-0.3.57 vs lib/cfoundry/v1/base.rb in cfoundry-0.3.58

- old
+ new

@@ -167,34 +167,23 @@ parse_json(response.body) else response.body end - when Net::HTTPBadRequest, Net::HTTPForbidden - info = parse_json(response.body) - raise CFoundry::Denied.new(403, info[:description]) - - when Net::HTTPNotFound - raise CFoundry::NotFound - - when Net::HTTPServerError + when Net::HTTPBadRequest, Net::HTTPForbidden, Net::HTTPNotFound, + Net::HTTPInternalServerError, Net::HTTPNotImplemented, + Net::HTTPBadGateWay begin - raise_error(parse_json(response.body)) + info = parse_json(response.body) + cls = CFoundry::APIError.v1_classes[info[:code]] + + raise (cls || CFoundry::APIError).new(info[:code], info[:description]) rescue MultiJson::DecodeError - raise CFoundry::BadResponse.new(response.code, response.body) + super end else - raise CFoundry::BadResponse.new(response.code, response.body) - end - end - - def raise_error(info) - case info[:code] - when 402 - raise CFoundry::UploadFailed.new(info[:description]) - else - raise CFoundry::APIError.new(info[:code], info[:description]) + super end end end end