Class: Grape::OAuth2::Responses::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/grape_oauth2/responses/base.rb

Overview

Base class for Grape::OAuth2 endpoints responses. Processes raw Rack Responses and contains helper methods.

Direct Known Subclasses

Authorization, Token

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rack_response) ⇒ Base

OAuth2 response class.

Parameters:

  • rack_response (Array)

    raw Rack::Response object



25
26
27
28
29
# File 'lib/grape_oauth2/responses/base.rb', line 25

def initialize(rack_response)
  # Rack Body:
  #   [Status Code, Headers, Body]
  @rack_response = rack_response
end

Instance Attribute Details

#rack_responseArray (readonly)

Raw Rack::Response to process

Examples:

response = Grape::OAuth2::Responses::Base.new([200, {}, Rack::BodyProxy.new('Test')])
response.rack_response

#=> [200, {}, Rack::BodyProxy.new('Test')]

Returns:

  • (Array)

    Rack response



18
19
20
# File 'lib/grape_oauth2/responses/base.rb', line 18

def rack_response
  @rack_response
end

Instance Method Details

#bodyObject

JSON-parsed body



47
48
49
50
51
52
# File 'lib/grape_oauth2/responses/base.rb', line 47

def body
  response_body = raw_body.first
  return {} if response_body.nil? || response_body.empty?

  JSON.parse(response_body)
end

#headersObject

Response headers



37
38
39
# File 'lib/grape_oauth2/responses/base.rb', line 37

def headers
  @rack_response[1]
end

#raw_bodyObject

Raw Rack body



42
43
44
# File 'lib/grape_oauth2/responses/base.rb', line 42

def raw_body
  @rack_response[2].body
end

#statusObject

Response status



32
33
34
# File 'lib/grape_oauth2/responses/base.rb', line 32

def status
  @rack_response[0]
end