class Github::Request::OAuth2

def call(env)

def call(env)
  # Extract parameters from the query
  params = { ACCESS_TOKEN => @token }.update query_params(env[:url])
  if token = params[ACCESS_TOKEN] and !token.empty?
    env[:url].query = build_query params
    env[:request_headers].merge!(AUTH_HEADER => "token #{token}")
  end
  @app.call env
end

def initialize(app, *args)

def initialize(app, *args)
  super app
  @app = app
  @token = args.shift
end

def query_params(url)

def query_params(url)
  if url.query.nil? or url.query.empty?
    {}
  else
    parse_query url.query
  end
end