Class: OpinionatedHTTP::Response

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/opinionated_http/response.rb

Overview

The response object

Instance Method Summary collapse

Constructor Details

#initialize(http_response, request) ⇒ Response

:action used for logging the action in the error message



11
12
13
14
# File 'lib/opinionated_http/response.rb', line 11

def initialize(http_response, request)
  @http_response = http_response
  @request       = request
end

Instance Method Details

#bodyObject



20
21
22
# File 'lib/opinionated_http/response.rb', line 20

def body
  @body ||= parse_body
end

#body!Object

Raises an exception when the HTTP Response is not a success



25
26
27
28
29
# File 'lib/opinionated_http/response.rb', line 25

def body!
  return body if success?

  exception!
end

#exception!Object

Raises:

  • (error_class)


31
32
33
34
35
# File 'lib/opinionated_http/response.rb', line 31

def exception!
  error_message = "HTTP #{verb.upcase}: #{action} Failure: (#{code}) #{message}"
  logger.error(message: error_message, metric: "#{metric_prefix}/exception", payload: {body: body})
  raise(error_class, error_message)
end

#success?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/opinionated_http/response.rb', line 16

def success?
  @http_response.is_a?(Net::HTTPSuccess)
end