class Trusona::Resources::UserAccount

a potentially scanned and or paired TruCode

Attributes

email[R]
emails[R]
first_name[R]
handle[R]
id[R]
last_name[R]
max_level[R]
nickname[R]
status[R]
trusona_id[R]

Public Class Methods

new(params = {}) click to toggle source

rubocop:disable Metrics/MethodLength rubocop:disable Metrics/AbcSize

# File lib/trusona/resources/user_account.rb, line 28
def initialize(params = {})
  params_with_symbol_keys = normalize_keys(params)
  @trusona_id = params_with_symbol_keys[:trusona_id]
  @id         = @trusona_id
  @email      = params_with_symbol_keys[:email]
  @status     = determine_status(params_with_symbol_keys[:status])
  @first_name = params_with_symbol_keys[:first_name]
  @last_name  = params_with_symbol_keys[:last_name]
  @nickname   = params_with_symbol_keys[:nickname]
  @handle     = params_with_symbol_keys[:handle]
  @emails     = parse_emails(params_with_symbol_keys[:emails])
  @max_level  = parse_max_level(params_with_symbol_keys[:metadata])

  @params = params_with_symbol_keys
end

Public Instance Methods

to_json(*_args) click to toggle source

rubocop:enable Metrics/MethodLength rubocop:enable Metrics/AbcSize

# File lib/trusona/resources/user_account.rb, line 46
def to_json(*_args)
  JSON(to_h)
end

Private Instance Methods

determine_status(status) click to toggle source
# File lib/trusona/resources/user_account.rb, line 52
def determine_status(status)
  return Status::INACTIVE if status == 'inactive'
  return Status::ACTIVE if status == 'active'

  Status::UNKNOWN
end
parse_emails(emails) click to toggle source
# File lib/trusona/resources/user_account.rb, line 59
def parse_emails(emails)
  return [] if emails.nil? || emails.empty?

  emails.map { |e| UserAccountEmail.new(e) }
end
parse_max_level(metadata) click to toggle source
# File lib/trusona/resources/user_account.rb, line 65
def parse_max_level(metadata)
  return Level::ENTRY unless metadata

  level = metadata['max_level'] || metadata[:max_level]

  return Level::ESSENTIAL if level == 'essential'
  return Level::EXECUTIVE if level == 'executive'

  Level::ENTRY
end