Class: FaradayMiddleware::FlowAccountOAuth2

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/faraday/oauth2.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, client_id, access_token = nil) ⇒ FlowAccountOAuth2

Returns a new instance of FlowAccountOAuth2.



30
31
32
33
34
# File 'lib/faraday/oauth2.rb', line 30

def initialize(app, client_id, access_token=nil)
  @app = app
  @client_id = client_id
  @access_token = access_token
end

Instance Method Details

#call(env) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/faraday/oauth2.rb', line 6

def call(env)
  if env[:method] == :get or env[:method] == :delete
    if env[:url].query.nil?
      query = {}
    else
      query = Faraday::Utils.parse_query(env[:url].query)
    end

    if @access_token and not query["client_secret"]
      env[:request_headers] = env[:request_headers].merge("Authorization" => "Bearer #{@access_token}")
    end
  else # :POST, :PUT
    if @access_token and not env[:body] && JSON.parse(env[:body])["client_secret"]
      env[:body] = {} if env[:body].nil?
      env[:request_headers] = env[:request_headers].merge(
        "Authorization" => "Bearer " + @access_token,
        "Content-Type" => "application/json"
        )
    end
  end

  @app.call env
end