Class: FriendlyShipping::ApiResult

Inherits:
Object
  • Object
show all
Defined in:
lib/friendly_shipping/api_result.rb

Overview

Wraps an API result (a response body, for example) along with the original request and response objects.

Direct Known Subclasses

ApiFailure

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, original_request: nil, original_response: nil) ⇒ ApiResult

Returns a new instance of ApiResult. The original request and response are only attached to this object if debugging is enabled. See Request#debug

Parameters:

  • data (Object)

    the API result (typically the response body)

  • original_request (Request) (defaults to: nil)

    the original API request

  • original_response (Response) (defaults to: nil)

    the original API response



22
23
24
25
26
27
28
29
30
# File 'lib/friendly_shipping/api_result.rb', line 22

def initialize(data, original_request: nil, original_response: nil)
  @data = data

  # We do not want to attach debugging information in every single response to save memory in production
  return unless original_request&.debug

  @original_request = original_request
  @original_response = original_response
end

Instance Attribute Details

#dataObject (readonly)

Returns the API result (typically the response body).

Returns:

  • (Object)

    the API result (typically the response body)



8
9
10
# File 'lib/friendly_shipping/api_result.rb', line 8

def data
  @data
end

#original_requestRequest (readonly)

Returns the original API request (if debugging is enabled).

Returns:

  • (Request)

    the original API request (if debugging is enabled)



11
12
13
# File 'lib/friendly_shipping/api_result.rb', line 11

def original_request
  @original_request
end

#original_responseResponse (readonly)

Returns the original API response (if debugging is enabled).

Returns:

  • (Response)

    the original API response (if debugging is enabled)



14
15
16
# File 'lib/friendly_shipping/api_result.rb', line 14

def original_response
  @original_response
end