Sha256: 8fe09f34c46f8aa8ddbf21140b1194759edc3ada4f94faceccfbad28f28d9880

Contents?: true

Size: 737 Bytes

Versions: 4

Compression:

Stored size: 737 Bytes

Contents

# frozen_string_literal: true

require 'httparty'

module ApiProxy
  class Request
    include ::HTTParty

    attr_reader :builder

    delegate :url, :options, :request_method, to: :builder

    ALLOWED_HEADERS = [
      'content-type',
      'etag',
      'cache-control',
      'content-length',
      'content-disposition',
      'content-transfer-encoding'
    ].freeze

    def initialize(request_options_builder)
      @builder = request_options_builder
    end

    def result
      @result ||= perform_request
    end

    def headers
      result.headers.select { |key, _value| ALLOWED_HEADERS.include?(key) }
    end

    private

    def perform_request
      self.class.send(request_method, url, options)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
api_proxy-0.1.3 lib/api_proxy/request.rb
api_proxy-0.1.2 lib/api_proxy/request.rb
api_proxy-0.1.1 lib/api_proxy/request.rb
api_proxy-0.1.0 lib/api_proxy/request.rb