class Shift::Api::Core::Errors::ServerError

Public Instance Methods

backtrace() click to toggle source

Prepend API backtrace to the backtrace from the gem

Calls superclass method
# File lib/shift/api/core/errors.rb, line 44
def backtrace
  original_backtrace = super
  return nil if original_backtrace.nil?

  api_errors = env.response.body["errors"]
  return original_backtrace if api_errors.nil?

  api_backtrace = api_errors[0].dig("meta", "backtrace")
  return original_backtrace if api_backtrace.nil?

  api_backtrace.map { |entry| "/<shift_api>#{entry}" }.concat(original_backtrace)
end
message() click to toggle source

Replace message with more useful error from the API

# File lib/shift/api/core/errors.rb, line 33
def message
  default_message = "Internal Server Error"

  api_errors = env.response.body["errors"]
  return default_message if api_errors.nil?

  api_exception = api_errors[0].dig("meta", "exception")
  api_exception ? api_exception : default_message
end