class Five9::User

Attributes

general_info[R]
roles[R]
skills[R]

Public Class Methods

all() click to toggle source
# File lib/five9/user.rb, line 61
def self.all
  UserManagement.get_users_info.map do |user_info|
    new(user_info)
  end
end
create!(args) click to toggle source
# File lib/five9/user.rb, line 53
def self.create!(args)
  new UserManagement.create_user(args)
end
exist?(username) click to toggle source
# File lib/five9/user.rb, line 49
def self.exist?(username)
  not UserManagement.get_users_info(username)[:general_info].nil?
end
find(username) click to toggle source
# File lib/five9/user.rb, line 57
def self.find(username)
  new(UserManagement.get_users_info(username)) if exist?(username)
end
new(args) click to toggle source
# File lib/five9/user.rb, line 4
def initialize(args)
  @user_info = args.make_accessible
  @general_info = @user_info[:general_info].make_accessible
  @roles = @user_info[:roles].make_accessible
  @skills = SkillArray.new(args[:skills])
end
where(args) click to toggle source
# File lib/five9/user.rb, line 67
def self.where(args)
  all.keep_if do |user|
    user.merge(args).to_hash == user.to_hash
  end
end

Public Instance Methods

delete!() click to toggle source
# File lib/five9/user.rb, line 24
def delete!
  UserManagement.delete_user user_name
end
method_missing(method_name, *args) click to toggle source
# File lib/five9/user.rb, line 45
def method_missing(method_name, *args)
  @general_info.send(method_name, *args)
end
save() click to toggle source
# File lib/five9/user.rb, line 18
def save
  UserManagement.modify_user(build_modify_hash)
  @skills.update!
  self
end
to_h() click to toggle source
# File lib/five9/user.rb, line 11
def to_h
  @user_info[:general_info] = @general_info
  @user_info[:roles] = @roles
  @user_info[:skills] = @skills.to_a
  @user_info
end
update(args) click to toggle source
# File lib/five9/user.rb, line 28
def update(args)
  if args[:general_info]
    @user_info = to_h.merge(args)
    @general_info = @user_info[:general_info].make_accessible
    @roles = @user_info[:roles].make_accessible
    @skills = SkillArray.new(args[:skills])
    @user_info
  else
    merge! args
  end
end
update!(args) click to toggle source
# File lib/five9/user.rb, line 40
def update!(args)
  update args
  save
end

Private Instance Methods

build_modify_hash() click to toggle source
# File lib/five9/user.rb, line 74
def build_modify_hash
  result = {}
  @general_info["EMail"] ||= @general_info.e_mail
  result[:userGeneralInfo] = @general_info.to_hash
  result
  # TODO configure rolesToSet and rolesToRemove
end