class OAuth2::Error

Attributes

code[R]
description[R]
response[R]

Public Class Methods

new(response) click to toggle source

standard error values include: :invalid_request, :invalid_client, :invalid_token, :invalid_grant, :unsupported_grant_type, :invalid_scope

Calls superclass method
# File lib/oauth2/error.rb, line 7
def initialize(response)
  response.error = self
  @response = response

  if response.parsed.is_a?(Hash)
    @code = response.parsed['error']
    @description = response.parsed['error_description']
    error_description = "#{@code}: #{@description}"
  end

  super(error_message(response.body, :error_description => error_description))
end

Public Instance Methods

error_message(response_body, opts = {}) click to toggle source

Makes a error message @param [String] response_body response body of request @param [String] opts :error_description error description to show first line

# File lib/oauth2/error.rb, line 23
def error_message(response_body, opts = {})
  message = []

  opts[:error_description] && message << opts[:error_description]

  error_message = if opts[:error_description] && opts[:error_description].respond_to?(:encoding)
                    script_encoding = opts[:error_description].encoding
                    response_body.encode(script_encoding, :invalid => :replace, :undef => :replace)
                  else
                    response_body
                  end

  message << error_message

  message.join("\n")
end