class Duracloud::ResponseHandler

Attributes

response[R]

Public Class Methods

call(response) click to toggle source
# File lib/duracloud/response_handler.rb, line 4
def self.call(response)
  new(response).call
end
new(response) click to toggle source
# File lib/duracloud/response_handler.rb, line 10
def initialize(response)
  @response = response
end

Public Instance Methods

call() click to toggle source
# File lib/duracloud/response_handler.rb, line 14
def call
  handle_error
  log_response
end
error_message() click to toggle source
# File lib/duracloud/response_handler.rb, line 37
def error_message
  if response.plain_text? && response.has_body?
    response.body
  else
    [ response.status, response.reason ].join(' ')
  end
end
exception() click to toggle source
# File lib/duracloud/response_handler.rb, line 45
def exception
  case response.status
  when 400
    BadRequestError
  when 404
    NotFoundError
  when 409
    ConflictError
  else
    if response.status >= 500
      ServerError
    else
      Error
    end
  end
end
handle_error() click to toggle source
# File lib/duracloud/response_handler.rb, line 31
def handle_error
  if response.error?
    raise exception, error_message
  end
end
log_response() click to toggle source
# File lib/duracloud/response_handler.rb, line 19
def log_response
  if loggable_response_body?
    Duracloud.logger.info(response.body)
  end
end
loggable_response_body?() click to toggle source
# File lib/duracloud/response_handler.rb, line 25
def loggable_response_body?
  %w(POST PUT DELETE).include?(response.request_method) &&
    response.plain_text? &&
    response.has_body?
end