class Supercast::Response

Response encapsulates some vitals of a response that came back from the Supercast API.

Attributes

data[RW]

The data contained by the HTTP body of the response deserialized from JSON.

http_body[RW]

The raw HTTP body of the response.

http_headers[RW]

A Hash of the HTTP headers of the response.

http_status[RW]

The integer HTTP status code of the response.

Public Class Methods

from_faraday_hash(http_resp) click to toggle source

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

This may throw JSON::ParserError if the response body is not valid JSON.

# File lib/supercast/response.rb, line 24
def self.from_faraday_hash(http_resp)
  resp = Response.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
end
from_faraday_response(http_resp) click to toggle source

Initializes a Response object from a Faraday HTTP response object.

This may throw JSON::ParserError if the response body is not valid JSON.

# File lib/supercast/response.rb, line 36
def self.from_faraday_response(http_resp)
  # handle no content responses
  body = http_resp.body.empty? ? '{}' : http_resp.body

  resp = Response.new
  resp.data = JSON.parse(body, symbolize_names: true)
  resp.http_body = body
  resp.http_headers = http_resp.headers
  resp.http_status = http_resp.status
  resp
end