class AdriverApi::Client
Attributes
connection[R]
login[R]
Public Class Methods
new(login, pass, debug: false)
click to toggle source
# File lib/adriver_api/client.rb, line 15 def initialize(login, pass, debug: false) @login = login @password = pass @debug = debug @connection = init_connection refresh_token end
Private Instance Methods
init_connection()
click to toggle source
# File lib/adriver_api/client.rb, line 38 def init_connection options = { :headers => { 'Content-Type' => 'application/atom+xml', 'X-Auth-Login' => @login.to_s, 'X-Auth-UserID' => @user_id.to_s, 'X-Auth-Passwd' => @token || @password.to_s } # :proxy => proxy, } Faraday::Connection.new(options) do |connection| connection.use Faraday::Request::UrlEncoded connection.use Faraday::Response::ParseXml connection.use FaradayMiddleware::RaiseHttpException connection.response :logger, @logger, :bodies => true if @debug connection.adapter Faraday.default_adapter end end
make_request(url, **opts)
click to toggle source
# File lib/adriver_api/client.rb, line 25 def make_request(url, **opts) url = "#{URL}/#{url}" begin retries ||= 0 response = @connection.get url, opts rescue ::AdriverApi::UnAuthorized => e refresh_token retry if (retries += 1) < 3 raise e end response end
refresh_token()
click to toggle source
# File lib/adriver_api/client.rb, line 58 def refresh_token url = "#{URL}/login" @token = nil @connection = init_connection response = @connection.get url @user_id = response.body["entry"]["userId"] @token = response.body["entry"]["token"] @connection = init_connection end