module Essential::Client::ClassMethods
Public Instance Methods
request(method, url, sid: nil, token: nil, params: {}, headers: {})
click to toggle source
# File lib/essential/client.rb, line 6 def request(method, url, sid: nil, token: nil, params: {}, headers: {}) # GET -> :get, etc method = method.to_s.downcase.to_sym sid ||= self.sid token ||= self.token uri = URI.join(self. api_base, url) headers = { 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'User-Agent' => user_agent(), }.merge(headers || {}) case method when :get, :delete uri.query = URI.encode_www_form(params) if params && params.any? else payload = params.to_json end opts = { method: method, url: uri.to_s, user: sid, password: token, timeout: 10, # TODO config open_timeout: 10, # TODO: config headers: headers, payload: payload } if $debug puts format('%s %s', method.to_s.upcase, uri) puts format('opts: %s', JSON.pretty_generate(opts)) end begin response = RestClient::Request.execute(opts) rescue StandardError => e raise Essential::APIError.from_exception(e) end response end
Protected Instance Methods
user_agent()
click to toggle source
# File lib/essential/client.rb, line 55 def user_agent format('Essential Ruby (%s)', Essential::VERSION) end