class OAuth2::Response

OAuth2::Response class

Constants

CONTENT_TYPES

Content type assignments for various potential HTTP content types.

PARSERS

Procs that, when called, will parse a response body according to the specified format.

Attributes

error[RW]
options[RW]
response[R]

Public Class Methods

new(response, opts = {}) click to toggle source

Initializes a Response instance

@param [Faraday::Response] response The Faraday response instance @param [Hash] opts options in which to initialize the instance @option opts [Symbol] :parse (:automatic) how to parse the response body. one of :query (for x-www-form-urlencoded),

:json, or :automatic (determined by Content-Type response header)
# File lib/oauth2/response.rb, line 30
def initialize(response, opts = {})
  @response = response
  @options = {:parse => :automatic}.merge(opts)
end
register_parser(key, mime_types, &block) click to toggle source

Adds a new content type parser.

@param [Symbol] key A descriptive symbol key such as :json or :query. @param [Array] One or more mime types to which this parser applies. @yield [String] A block returning parsed content.

# File lib/oauth2/response.rb, line 16
def self.register_parser(key, mime_types, &block)
  key = key.to_sym
  PARSERS[key] = block
  Array(mime_types).each do |mime_type|
    CONTENT_TYPES[mime_type] = key
  end
end

Public Instance Methods

body() click to toggle source

The HTTP response body

# File lib/oauth2/response.rb, line 46
def body
  response.body || ''
end
content_type() click to toggle source

Attempts to determine the content type of the response.

# File lib/oauth2/response.rb, line 72
def content_type
  ((response.headers.values_at('content-type', 'Content-Type').compact.first || '').split(';').first || '').strip
end
headers() click to toggle source

The HTTP response headers

# File lib/oauth2/response.rb, line 36
def headers
  response.headers
end
parsed() click to toggle source

The parsed response body.

Will attempt to parse application/x-www-form-urlencoded and
application/json Content-Type response bodies
# File lib/oauth2/response.rb, line 66
def parsed
  return nil unless PARSERS.key?(parser)
  @parsed ||= PARSERS[parser].call(body)
end
parser() click to toggle source

Determines the parser that will be used to supply the content of parsed

# File lib/oauth2/response.rb, line 77
def parser
  return options[:parse].to_sym if PARSERS.key?(options[:parse])
  CONTENT_TYPES[content_type]
end
status() click to toggle source

The HTTP response status code

# File lib/oauth2/response.rb, line 41
def status
  response.status
end