# encoding: utf-8 module OneApm module Support module HTTPClients class TyphoeusHTTPResponse def initialize(response) @response = response end def [](key) unless headers.nil? result = headers[key] # Typhoeus 0.5.3 has a bug where asking the headers hash for a # non-existent header will return the hash itself, not what we want. result == headers ? nil : result end end def to_hash hash = {} headers.each do |(k,v)| hash[k] = v end hash end private def headers @response.headers end end class TyphoeusHTTPRequest def initialize(request) @request = request @uri = case request.url when ::URI then request.url else OneApm::Support::HTTPClients::URIUtil.parse_url(request.url) end end def type "Typhoeus" end def host @uri.host end def port @uri.port end def method (@request.options[:method] || 'GET').to_s.upcase end def [](key) return nil unless @request.options && @request.options[:headers] @request.options[:headers][key] end def []=(key, value) @request.options[:headers] ||= {} @request.options[:headers][key] = value end def uri @uri end def query @uri.query.nil?? {} : CGI.parse(@uri.query) end def body @request.options[:body] end def post_params body.nil?? {} : CGI.parse(body) end def params post_params.merge(query) end end end end end