Sha256: 44784c66097326fae2b6afdcbe5466f555668518da6578b2b347f172d291708c

Contents?: true

Size: 892 Bytes

Versions: 2

Compression:

Stored size: 892 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
        if token.length > 30
          env[:request_headers][AUTH_HEADER] ||= %(Bearer #{token})
        else
          env[:request_headers][AUTH_HEADER] ||= %(Token token="#{token}")
        end
      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

2 entries across 2 versions & 1 rubygems

Version Path
tito-0.1.11 lib/tito/oauth2_middleware.rb
tito-0.1.10 lib/tito/oauth2_middleware.rb