269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
|
# File 'lib/artirix_data_models/gateways/data_gateway.rb', line 269
def connection(config: {},
url: nil,
login: nil,
password: nil,
bearer_token: nil,
token_hash: nil,
log_body_request: nil,
log_body_response: nil,
faraday_build_proc: nil,
faraday_adapter: 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
faraday_adapter ||= config.try(:faraday_adapter) || Faraday.default_adapter
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|
if faraday_build_proc.present? && faraday_build_proc.respond_to?(:call)
faraday_build_proc.call faraday
end
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_adapter
end
end
|