Module: Agave::ApiClient

Included in:
Site::Client
Defined in:
lib/agave/api_client.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/agave/api_client.rb', line 17

def self.included(base)
  base.extend ClassMethods

  base.class_eval do
    attr_reader :token, :base_url, :schema, :extra_headers
  end
end

Instance Method Details

#request(*args) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/agave/api_client.rb', line 55

def request(*args)
  connection.send(*args).body.with_indifferent_access
rescue Faraday::SSLError => e
  raise e if ENV['SSL_CERT_FILE'] == Cacert.pem

  Cacert.set_in_env
  request(*args)
rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
  puts e.message
  raise e
rescue Faraday::ClientError => e
  error = ApiError.new(e)
  puts '===='
  puts error.message
  puts '===='
  raise error
end