class SentryApi::Error::ResponseError

Custom error class for rescuing from HTTP response errors.

Public Class Methods

new(response) click to toggle source
Calls superclass method
# File lib/sentry-api/error.rb, line 17
def initialize(response)
  @response = response
  super(build_error_message)
end

Public Instance Methods

response_status() click to toggle source

Status code returned in the http response.

@return [Integer]

# File lib/sentry-api/error.rb, line 25
def response_status
  @response.code
end

Private Instance Methods

build_error_message() click to toggle source

Human friendly message.

@return [String]

# File lib/sentry-api/error.rb, line 34
def build_error_message
  parsed_response = @response.parsed_response
  message = parsed_response.message || parsed_response.error

  "Server responded with code #{@response.code}, message: " \
  "#{handle_message(message)}. " \
  "Request URI: #{@response.request.base_uri}#{@response.request.path}"
end
handle_message(message) click to toggle source

Handle error response message in case of nested hashes

# File lib/sentry-api/error.rb, line 44
def handle_message(message)
  case message
    when SentryApi::ObjectifiedHash
      message.to_h.sort.map do |key, val|
        "'#{key}' #{(val.is_a?(Hash) ? val.sort.map { |k, v| "(#{k}: #{v.join(' ')})" } : val).join(' ')}"
      end.join(', ')
    when Array
      message.join(' ')
    else
      message
  end
end