# frozen_string_literal: true require 'faraday' module BitBucket module Request class OAuth < Faraday::Middleware include BitBucket::Utils::Url AUTH_HEADER = 'Authorization' dependency 'simple_oauth' def call(env) # Extract parameters from the query request = Rack::Request.new env env[:url] = URI.parse(request.url) if env[:url].nil? params = {}.update query_params(env[:url]) if (@token && @secret) && (!@token.empty? && !@secret.empty?) access_token = ::OAuth::AccessToken.new(@consumer, @token, @secret) env[:url].query = build_query params puts oauth_helper.header puts oauth_helper.header.class env[:request_headers].merge!(AUTH_HEADER => oauth_helper.header) end env[:url].query = build_query params @app.call env end def initialize(app, *args) super app @app = app @consumer = args.shift @token = args.shift @secret = args.shift end def query_params(url) if url.query.nil? || url.query.empty? {} else parse_query url.query end end end # OAuth end # Request end # BitBucket