class MyApiClient::Params::Params

Description of Params

Attributes

request[R]
response[R]

Public Class Methods

new(request, response) click to toggle source

Description of initialize

@param request [MyApiClient::Params::Request] describe_request_here @param response [Sawyer::Response, nil] describe_response_here

# File lib/my_api_client/params/params.rb, line 13
def initialize(request, response)
  @request = request
  @response = response
end

Public Instance Methods

inspect() click to toggle source

Returns contents as string for to be readable for human

@return [String] Contents as string

# File lib/my_api_client/params/params.rb, line 31
def inspect
  { request: request, response: response }.inspect
end
metadata() click to toggle source

Generate metadata for bugsnag. It will integrate request and response params. Blank parameter will be omitted.

@return [Hash] Metadata for bugsnag

# File lib/my_api_client/params/params.rb, line 23
def metadata
  request_metadata.merge(response_metadata)
end
Also aliased as: to_bugsnag
to_bugsnag()
Alias for: metadata

Private Instance Methods

request_metadata() click to toggle source

Generate metadata from request params. It will be added prefix “request_”.

@return [Hash] Metadata for bugsnag

# File lib/my_api_client/params/params.rb, line 41
def request_metadata
  if request.present?
    request.metadata.transform_keys { |key| :"request_#{key}" }
  else
    {}
  end
end
response_metadata() click to toggle source

Generate metadata from response params. It will be added prefix “response_”.

@return [Hash] Metadata for bugsnag

# File lib/my_api_client/params/params.rb, line 53
def response_metadata
  if response.present?
    data = response.data
    body = data.respond_to?(:to_h) ? data.to_h : data
    {
      response_status: response.status,
      response_headers: response.headers,
      response_body: body,
      duration: response.timing,
    }.compact
  else
    {}
  end
end