class Stream::StreamHTTPClient
Attributes
base_path[R]
conn[R]
options[R]
Public Class Methods
new(url_generator)
click to toggle source
# File lib/stream/client.rb, line 167 def initialize(url_generator) @options = url_generator.options @conn = Faraday.new(url: url_generator.url) do |faraday| faraday.use RaiseHttpException faraday.options[:open_timeout] = @options[:default_timeout] faraday.options[:timeout] = @options[:default_timeout] faraday.adapter Faraday.default_adapter end @base_path = url_generator.base_path @conn.path_prefix = base_path end
Public Instance Methods
make_http_request(method, relative_url, params = nil, data = nil, headers = nil)
click to toggle source
# File lib/stream/client.rb, line 179 def make_http_request(method, relative_url, params = nil, data = nil, headers = nil) headers['Content-Type'] = 'application/json' headers['X-Stream-Client'] = "stream-ruby-client-#{Stream::VERSION}" base_url = [base_path, relative_url].join('/').gsub(%r{/+}, '/') url = "#{base_url}?#{URI.encode_www_form(params)}" body = data.to_json if %w[post put].include? method.to_s response = @conn.run_request( method, url, body, headers ) case response[:status].to_i when 200..203 ::JSON.parse(response[:body]) end end