From 0ef2fb5fd43f9473280c8a2f9d26e29cdbc3def6 Mon Sep 17 00:00:00 2001
From: Alexander Olofsson <alexander.olofsson@liu.se>
Date: Wed, 20 Sep 2023 09:58:48 +0200
Subject: [PATCH] Return correct error data for 500 responses

---
 lib/liudesk_cmdb.rb        | 2 ++
 lib/liudesk_cmdb/client.rb | 8 ++++----
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/liudesk_cmdb.rb b/lib/liudesk_cmdb.rb
index 3e0ad14..50e9935 100644
--- a/lib/liudesk_cmdb.rb
+++ b/lib/liudesk_cmdb.rb
@@ -41,6 +41,8 @@ module LiudeskCMDB
         NotAcceptableError.new body, code
       when "422"
         UnprocessableError.new body, code
+      when "500"
+        ServerError.new body, code
       else
         RequestError.new body, code
       end
diff --git a/lib/liudesk_cmdb/client.rb b/lib/liudesk_cmdb/client.rb
index 0ef52c3..7fe5203 100644
--- a/lib/liudesk_cmdb/client.rb
+++ b/lib/liudesk_cmdb/client.rb
@@ -80,14 +80,14 @@ module LiudeskCMDB
       response.body
     rescue Net::HTTPClientException, Net::HTTPFatalError
       begin
-        body = JSON.parse(response.body) unless response.body.empty?
+        resp = JSON.parse(response.body) unless response.body.empty?
       rescue StandardError => e
         logger.debug "Failed to parse error response - #{e.class}: #{e}"
-        body = response.body
-        body = response.message if body.nil? || body.empty?
+        resp = response.body
+        resp = response.message if resp.nil? || resp.empty?
       end
 
-      raise LiudeskCMDB::RequestError.create(body, response.code)
+      raise LiudeskCMDB::RequestError.create(resp, response.code)
     end
 
     def pretty_print_instance_variables
-- 
GitLab