261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
|
# File 'lib/artirix_data_models/gateways/data_gateway.rb', line 261
def connection(config: {}, url: nil, login: nil, password: nil, bearer_token: nil, token_hash: nil, log_body_request: nil, log_body_response: nil)
url ||= config.try :url
login ||= config.try :login
password ||= config.try :password
bearer_token ||= config.try :bearer_token
token_hash ||= config.try :token_hash
log_body_request ||= log_body_request.nil? ? config.try(:log_body_request) : log_body_request
log_body_response ||= log_body_response.nil? ? config.try(:log_body_response) : log_body_response
raise InvalidConnectionError, 'no url given, nor is it present in `config.url`' unless url.present?
Faraday.new(url: url, request: { params_encoder: Faraday::FlatParamsEncoder }) do |faraday|
faraday.request :url_encoded
faraday.response :logger, ::Logger.new(STDOUT), bodies: { request: log_body_request, response: log_body_response }
if login.present? || password.present?
faraday.basic_auth(login, password)
elsif bearer_token.present?
faraday.authorization :Bearer, bearer_token
elsif token_hash.present?
faraday.authorization :Token, token_hash
end
faraday.adapter Faraday.default_adapter
end
end
|