Sha256: 2bd686ef290fa5ee972cc3a3b7669ae482b894dbd42d942af5c8c1794faabfb4

Contents?: true

Size: 761 Bytes

Versions: 5

Compression:

Stored size: 761 Bytes

Contents

module Tito
  class OAuth2Middleware < FaradayMiddleware::OAuth2
    def call(env)
      params = query_params(env[:url])

      token = params.delete(:api_key) || params.delete('api_key')
      token ||= if @token.is_a?(Proc)
        @token.call(env)
      else
        @token
      end

      token ||= Tito.api_key

      if token.respond_to?(:empty?) && !token.empty?
        env[:url].query = build_query params
        env[:request_headers][AUTH_HEADER] ||= %(Bearer #{token})
      end

      @app.call env
    end

    def initialize(app, token = nil, options = {})
      super(app)
      options, token = token, nil if token.is_a? Hash
      @token = token
      raise ArgumentError, ":param_name can't be blank" if @param_name.empty?
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tito-0.1.9 lib/tito/oauth2_middleware.rb
tito-0.1.8 lib/tito/oauth2_middleware.rb
tito-0.1.7 lib/tito/oauth2_middleware.rb
tito-0.1.6 lib/tito/oauth2_middleware.rb
tito-0.1.4 lib/tito/oauth2_middleware.rb