1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
module OAuth2
class Error < StandardError
attr_reader :response, :code, :description
# standard error values include:
# :invalid_request, :invalid_client, :invalid_token, :invalid_grant, :unsupported_grant_type, :invalid_scope
def initialize(response)
response.error = self
@response = response
message = []
if response.parsed.is_a?(Hash)
@code = response.parsed['error']
@description = response.parsed['error_description']
message << "#{@code}: #{@description}"
end
message << response.body
super(message.join("\n"))
end
end
end
|