Skip to content
Open
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
23 changes: 11 additions & 12 deletions lib/mapbox.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,35 +104,34 @@ def self.general_api_error(rcode, rbody)

def self.handle_api_error(rcode, rbody)
begin
error_obj = JSON.parse(rbody)
error = error_obj[:error] or raise StandardError.new # escape from parsing
error = JSON.parse(rbody)
raise StandardError.new unless error.has_key?("message") # escape from parsing

rescue JSON::ParserError, StandardError
raise general_api_error(rcode, rbody)
end

case rcode
when 400, 404
raise invalid_request_error error, rcode, rbody, error_obj
raise invalid_request_error error, rcode
when 401
raise authentication_error error, rcode, rbody, error_obj
raise authentication_error error, rcode
else
raise api_error error, rcode, rbody, error_obj
raise api_error error, rcode
end

end

def self.invalid_request_error(error, rcode, rbody, error_obj)
StandardError.new(error[:message], error[:param], rcode,
rbody, error_obj)
def self.invalid_request_error(error, rcode)
StandardError.new("Request Error: #{rcode} - #{error["message"]}")
end

def self.authentication_error(error, rcode, rbody, error_obj)
AuthenticationError.new(error[:message], rcode, rbody, error_obj)
def self.authentication_error(error, rcode)
AuthenticationError.new("Authentication Error: #{rcode} - #{error["message"]}")
end

def self.api_error(error, rcode, rbody, error_obj)
StandardError.new(error[:message], rcode, rbody, error_obj)
def self.api_error(error, rcode)
StandardError.new("API Error: #{rcode} - #{error["message"]}")
end

def self.handle_restclient_error(e, api_base_url=nil)
Expand Down