Class: SplitIoClient::Engine::AuthApiClient

Inherits:
Object
  • Object
show all
Defined in:
lib/splitclient-rb/engine/auth_api_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(config, telemetry_runtime_producer) ⇒ AuthApiClient

Returns a new instance of AuthApiClient.



9
10
11
12
13
# File 'lib/splitclient-rb/engine/auth_api_client.rb', line 9

def initialize(config, telemetry_runtime_producer)
  @config = config
  @api_client = SplitIoClient::Api::Client.new(@config)
  @telemetry_runtime_producer = telemetry_runtime_producer
end

Instance Method Details

#authenticate(api_key) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/splitclient-rb/engine/auth_api_client.rb', line 15

def authenticate(api_key)
  start = Time.now
  response = @api_client.get_api(@config.auth_service_url, api_key)

  return process_success(response, start) if response.success?

  return process_error(response) if response.status >= 400 && response.status < 500

  @telemetry_runtime_producer.record_sync_error(Telemetry::Domain::Constants::TOKEN_SYNC, response.status.to_i)
  @config.logger.debug("Error connecting to: #{@config.auth_service_url}. Response status: #{response.status}")
  { push_enabled: false, retry: true }
rescue StandardError => e
  @config.logger.debug("AuthApiClient error: #{e.inspect}.")
  { push_enabled: false, retry: false }
end