class Ethikdo::Error

Constants

NET_HTTP_ERRORS

Attributes

http_response[R]

Public Class Methods

new(response = nil) click to toggle source
Calls superclass method
# File lib/ethikdo/error.rb, line 25
def initialize(response = nil)
  @http_response = response
  super(build_error_message)
end

Public Instance Methods

http_request() click to toggle source
# File lib/ethikdo/error.rb, line 30
def http_request
  http_response.request
end

Private Instance Methods

build_error_message() click to toggle source
# File lib/ethikdo/error.rb, line 36
def build_error_message
  return nil if http_response.nil?

  message = "#{http_request_method} "
  message << "#{http_request.path} : "
  message << "#{http_response.code} - "
  message << response_message unless response_message.nil?
  message
end
http_request_method() click to toggle source
# File lib/ethikdo/error.rb, line 46
def http_request_method
  http_request.http_method.name.split('::').last.upcase
end
response_message() click to toggle source
# File lib/ethikdo/error.rb, line 50
def response_message
  content_type = http_response.headers['Content-Type']
  if content_type && content_type.start_with?('application/json')
    http_response.parsed_response['message'] || http_response.parsed_response['detail']
  else
    net_http_response = http_response.response
    "#{net_http_response.code} #{net_http_response.message}"
  end
end