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
288
289
290
291
|
# 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, faraday_build_proc: 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|
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.default_adapter
end
end
|