Sha256: 06b30a7085b02a382ae0852ae963852df66988aebb4d1c964c9d2c26cf96cc96

Contents?: true

Size: 1.89 KB

Versions: 3

Compression:

Stored size: 1.89 KB

Contents

module XeroGateway
  module Http
    OPEN_TIMEOUT = 10 unless defined? OPEN_TIMEOUT
    READ_TIMEOUT = 60 unless defined? READ_TIMEOUT

    def http_get(url, extra_params = {})
      params = {:apiKey => @api_key, :xeroKey => @customer_key}
      params = params.merge(extra_params).map {|key,value| "#{key}=#{CGI.escape(value.to_s)}"}.join("&")

      uri   = URI.parse(url + "?" + params)

      http = Net::HTTP.new(uri.host, uri.port) 
      http.open_timeout = OPEN_TIMEOUT
      http.read_timeout = READ_TIMEOUT
      http.use_ssl      = true
      http.verify_mode    = OpenSSL::SSL::VERIFY_NONE

      http.get(uri.request_uri).body
    end

    def http_post(url, body, extra_params = {})
      headers = {}
      headers['Content-Type'] ||= "application/x-www-form-urlencoded"      

      params = {:apiKey => @api_key, :xeroKey => @customer_key}
      params = params.merge(extra_params).map {|key,value| "#{key}=#{CGI.escape(value.to_s)}"}.join("&")

      uri   = URI.parse(url + "?" + params)

      http = Net::HTTP.new(uri.host, uri.port) 
      http.open_timeout = OPEN_TIMEOUT
      http.read_timeout = READ_TIMEOUT
      http.use_ssl      = true

      http.verify_mode    = OpenSSL::SSL::VERIFY_NONE

      http.post(uri.request_uri, body, headers).body
    end

    def http_put(url, body, extra_params = {})
      headers = {}
      headers['Content-Type'] ||= "application/x-www-form-urlencoded"      

      params = {:apiKey => @api_key, :xeroKey => @customer_key}
      params = params.merge(extra_params).map {|key,value| "#{key}=#{CGI.escape(value.to_s)}"}.join("&")

      uri   = URI.parse(url + "?" + params)

      http = Net::HTTP.new(uri.host, uri.port) 
      http.open_timeout = OPEN_TIMEOUT
      http.read_timeout = READ_TIMEOUT
      http.use_ssl      = true

      http.verify_mode    = OpenSSL::SSL::VERIFY_NONE

      http.put(uri.request_uri, body, headers).body    
    end      
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tlconnor-xero_gateway-1.0.1 lib/xero_gateway/http.rb
tlconnor-xero_gateway-1.0.2 lib/xero_gateway/http.rb
tlconnor-xero_gateway-1.0.3 lib/xero_gateway/http.rb