class Soar::Registry::Identity::Provider::Customer::Email

Public Class Methods

new(directory:, fetch_index: , search_index: ) click to toggle source

@param [Soar::Registry::Directory] directory

# File lib/soar/registry/identity/provider/customer/email.rb, line 13
def initialize(directory:, fetch_index: , search_index: )
  @directory = directory
  @fetch_index = fetch_index
  @search_index = search_index
end

Public Instance Methods

calculate_all_attributes(identity) click to toggle source

@param [Hash] identity @return [Hash] Hash of attributes keyed by role

# File lib/soar/registry/identity/provider/customer/email.rb, line 62
def calculate_all_attributes(identity)
  raise NotImplementedError
end
calculate_attributes(identity, role) click to toggle source

@param [Hash] identity @param [String] role @return [Hash] A hash of attributes

# File lib/soar/registry/identity/provider/customer/email.rb, line 55
def calculate_attributes(identity, role)
  raise NotImplementedError
end
calculate_identifiers(identity) click to toggle source

@param [Hash] identity @return [Array] list of identifiers

# File lib/soar/registry/identity/provider/customer/email.rb, line 35
def calculate_identifiers(identity)
  indexes = @directory.index
  identifiers = []
  indexes.each { |index| 
    identifiers << identity[index]
  }
  identifiers.compact
end
calculate_identities(email) click to toggle source

@param [String] email

an email address that uniquely identifies an identity

@return [Hash] an identity

# File lib/soar/registry/identity/provider/customer/email.rb, line 24
def calculate_identities(email)
  return @identities if not @identities.nil?
  entries = @directory.search(@search_index, email)
  @identities = entries.empty? ? [] : [entries[0]]
  return @identities
end
calculate_roles(identity) click to toggle source

@param [Hash] identity @return [Array] list of roles

# File lib/soar/registry/identity/provider/customer/email.rb, line 47
def calculate_roles(identity)
  raise NotImplementedError
end