class AdManagerApi::CredentialHandler

Public Instance Methods

credentials(credentials_override = nil) click to toggle source

Create the list of credentials to be used by the auth handler for header generation.

Calls superclass method
# File lib/ad_manager_api/credential_handler.rb, line 32
def credentials(credentials_override = nil)
  result = super(credentials_override)
  validate_headers_for_server(result)
  include_utils = @config.read('library.include_utilities_in_user_agent',
      true)
  result[:extra_headers] = {
      'applicationName' => generate_user_agent([], include_utils),
      'networkCode' => result[:network_code]
  }
  return result
end
generate_user_agent(extra_ids = [], include_utilities = true) click to toggle source

Generates string to use as user agent in headers.

Calls superclass method
# File lib/ad_manager_api/credential_handler.rb, line 45
def generate_user_agent(extra_ids = [], include_utilities = true)
  agent_app = @config.read('authentication.application_name')
  extra_ids << ["AdManagerApi-Ruby/%s" %
      AdManagerApi::ApiConfig::CLIENT_LIB_VERSION]
  utility_registry = AdManagerApi::Utils::UtilityRegistry.instance
  extra_ids += utility_registry.extract!.to_a if include_utilities
  super(extra_ids, agent_app)
end
identifier() click to toggle source

Returns the network code specified in the current credentials.

# File lib/ad_manager_api/credential_handler.rb, line 55
def identifier()
  return credentials[:extra_headers]['networkCode']
end

Private Instance Methods

validate_headers_for_server(credentials) click to toggle source

Validates that the right credentials are being used for the chosen environment.

# File lib/ad_manager_api/credential_handler.rb, line 63
def validate_headers_for_server(credentials)
  application_name = credentials[:application_name]
  if (application_name.nil? or application_name.empty? or
      application_name.include?(DEFAULT_APPLICATION_NAME) or
      application_name.include?(LEGACY_DEFAULT_APPLICATION_NAME))
    raise AdsCommon::Errors::AuthError, (
        'Application name must be specified and cannot be the default')
  end
  return nil
end