class CoinbaseCommerce::CoinbaseCommerceResponse

Attributes

data[RW]
http_body[RW]
http_headers[RW]
http_status[RW]
request_id[RW]

Public Class Methods

from_faraday_hash(http_resp) click to toggle source

Initializes a CoinbaseCommerceResponse object from a Hash like the kind returned as part of a Faraday exception.

# File lib/coinbase_commerce/api_response.rb, line 15
def self.from_faraday_hash(http_resp)
  resp = CoinbaseCommerceResponse.new
  resp.data = JSON.parse(http_resp[:body], symbolize_names: true)
  resp.http_body = http_resp[:body]
  resp.http_headers = http_resp[:headers]
  resp.http_status = http_resp[:status]
  resp.request_id = http_resp[:headers]["x-request-id"]
  resp
end
from_faraday_response(http_resp) click to toggle source

Initializes a CoinbaseCommerceResponse object from a Faraday HTTP response object.

# File lib/coinbase_commerce/api_response.rb, line 27
def self.from_faraday_response(http_resp)
  resp = CoinbaseCommerceResponse.new
  resp.data = JSON.parse(http_resp.body, symbolize_names: true)
  resp.http_body = http_resp.body
  resp.http_headers = http_resp.headers
  resp.http_status = http_resp.status
  resp.request_id = http_resp.headers["x-request-id"]

  # unpack nested data field if it exist
  if resp.data.is_a? Hash and resp.data.fetch(:data, nil).is_a? Hash
    resp.data.update(resp.data.delete(:data))
  end

  # warn in there warnings in response
  if resp.data.is_a? Hash and resp.data.fetch(:warnings, nil).is_a? Array
    warn(resp.data[:warnings].first.to_s)
  end

  resp
end