Sha256: 6809bbe0aaa77eb24cb8a46bd8c95406f84fd173c72acdd0137180aeeab08138

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

# encoding: utf-8

module OneApm
  module Support
    module HTTPClients
      class HTTPClientResponse
        attr_reader :response

        def initialize(response)
          @response = response
        end

        def [](key)
          response.headers.each do |k,v|
            if key.downcase == k.downcase
              return v
            end
          end
          nil
        end

        def to_hash
          response.headers
        end
      end

      class HTTPClientRequest
        attr_reader :request, :uri

        def initialize(request)
          @request = request
          @uri = request.header.request_uri
        end

        def type
          "HTTPClient"
        end

        def method
          request.header.request_method
        end

        def host
          if hostname = (self['host'] || self['Host'])
            hostname.split(':').first
          else
            uri.host.to_s
          end
        end

        def port
          uri.port
        end

        def [](key)
          request.headers[key]
        end

        def []=(key, value)
          request.http_header[key] = value
        end

        def query
          @uri.query.nil?? {} : CGI.parse(@uri.query)
        end

        def body
          request.http_body.instance_values['body']
        end

        def post_params
          body.nil?? {} :  CGI.parse(body)
        end

        def params
          post_params.merge(query)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
oneapm_rpm-1.4.2 lib/one_apm/support/http_clients/httpclient_wrappers.rb
oneapm_rpm-1.4.1 lib/one_apm/support/http_clients/httpclient_wrappers.rb
oneapm_rpm-1.4.0 lib/one_apm/support/http_clients/httpclient_wrappers.rb