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