class Provide::ApiClient
Attributes
base_url[R]
token[R]
Public Class Methods
new(scheme = API_SCHEME, host = API_HOST, path = 'api/', token = nil)
click to toggle source
# File lib/provide-ruby/api_client.rb, line 15 def initialize(scheme = API_SCHEME, host = API_HOST, path = 'api/', token = nil) @base_url = "#{scheme}://#{host}/#{path}" @token = token end
Public Instance Methods
delete(uri, params = nil)
click to toggle source
# File lib/provide-ruby/api_client.rb, line 32 def delete(uri, params = nil) send_request(:delete, uri, params || {}) end
get(uri, params = nil)
click to toggle source
# File lib/provide-ruby/api_client.rb, line 20 def get(uri, params = nil) send_request(:get, uri, params || {}) end
post(uri, params = nil)
click to toggle source
# File lib/provide-ruby/api_client.rb, line 24 def post(uri, params = nil) send_request(:post, uri, params || {}) end
put(uri, params = nil)
click to toggle source
# File lib/provide-ruby/api_client.rb, line 28 def put(uri, params = nil) send_request(:put, uri, params || {}) end
send_request(method, uri, params = nil, headers = nil)
click to toggle source
# File lib/provide-ruby/api_client.rb, line 36 def send_request(method, uri, params = nil, headers = nil) attempts = 0 begin params = [:post, :put, :patch].include?(method.to_s.downcase.to_sym) ? { body: JSON.dump(params) } : { params: params } headers = default_headers.merge(headers || {}) headers['Content-Type'] = 'application/json' if [:post, :put, :patch].include?(method.to_s.downcase.to_sym) params.merge!(headers: headers, timeout: API_TIMEOUT) params.merge!(ssl_verifypeer: false, ssl_verifyhost: 0) if API_PROMISCUOUS_MODE Typhoeus.send(method.to_s.downcase.to_sym, "#{base_url}#{uri}", params) rescue attempts = attempts + 1 retry if attempts < API_MAX_ATTEMPTS end end
Private Instance Methods
default_headers()
click to toggle source
# File lib/provide-ruby/api_client.rb, line 54 def default_headers headers = {} headers['User-Agent'] = API_USER_AGENT headers['Authorization'] = "bearer #{token}" if token headers end