Skip to content
Snippets Groups Projects
Verified Commit 94fefd7e authored by Alexander Olofsson's avatar Alexander Olofsson
Browse files

Even more error handling improvements

parent b230d3d3
No related branches found
No related tags found
No related merge requests found
......@@ -33,8 +33,12 @@ module LiudeskCMDB
case code
when "500"
InternalServerError.new body, code
when "403"
ForbiddenError.new body, code
when "404"
NotFoundError.new body, code
when "422"
UnprocessableError.new body, code
else
RequestError.new body, code
end
......@@ -60,7 +64,9 @@ module LiudeskCMDB
end
end
class ForbiddenError < RequestError; end
class NotFoundError < RequestError; end
class UnprocessableError < RequestError; end
class InternalServerError < RequestError; end
# Data models
......
......@@ -76,7 +76,14 @@ module LiudeskCMDB
rescue Net::HTTPFatalError
raise LiudeskCMDB::RequestError.create(response.message, response.code)
rescue Net::HTTPClientException
body = JSON.parse(response.body) rescue body
begin
body = JSON.parse(response.body)
rescue StandardError => e
logger.debug "Failed to parse error response - #{e.class}: #{e}"
body = response.body
body = response.message if body.nil? || body.empty?
end
raise LiudeskCMDB::RequestError.create(body, response.code)
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment