Class: Five9::GeneralUser

Inherits:
Object
  • Object
show all
Defined in:
lib/five9/general_user.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ GeneralUser

Returns a new instance of GeneralUser.



3
4
5
# File 'lib/five9/general_user.rb', line 3

def initialize(args)
  @user_general_info = args.make_accessible
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args) ⇒ Object



33
34
35
# File 'lib/five9/general_user.rb', line 33

def method_missing(method_name, *args)
  @user_general_info.send(method_name, *args)
end

Class Method Details

.allObject



37
38
39
40
41
# File 'lib/five9/general_user.rb', line 37

def self.all
  UserManagement.get_users_general_info.map do |user_general_info|
    new(user_general_info)
  end
end

.create!(args) ⇒ Object



43
44
45
# File 'lib/five9/general_user.rb', line 43

def self.create!(args)
  new(UserManagement.create_user(build_sendable_hash(args))[:general_info])
end

.exist?(username) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/five9/general_user.rb', line 47

def self.exist?(username)
  not find(username).nil?
end

.find(username) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/five9/general_user.rb', line 51

def self.find(username)
  general_user = new(UserManagement.get_users_general_info(username))
  if general_user[:user_name]
    general_user
  else
    nil
  end
end

.where(args) ⇒ Object



60
61
62
63
64
# File 'lib/five9/general_user.rb', line 60

def self.where(args)
  all.keep_if do |general_user|
    general_user.merge(args).to_hash == general_user.to_hash
  end
end

Instance Method Details

#delete!Object



19
20
21
22
# File 'lib/five9/general_user.rb', line 19

def delete!
  UserManagement.delete_user user_name
  @user_general_info
end

#save!Object



11
12
13
14
15
16
17
# File 'lib/five9/general_user.rb', line 11

def save!
  if GeneralUser.exist? user_name
    UserManagement.modify_user(build_sendable_hash)[:general_info]
  else
    UserManagement.create! @user_general_info
  end
end

#to_hObject



7
8
9
# File 'lib/five9/general_user.rb', line 7

def to_h
  @user_general_info
end

#update(args) ⇒ Object



24
25
26
# File 'lib/five9/general_user.rb', line 24

def update(args)
  merge! args
end

#update!(args) ⇒ Object



28
29
30
31
# File 'lib/five9/general_user.rb', line 28

def update!(args)
  update(args)
  save!
end