Module: GroupContact
- Defined in:
- lib/zm/client/contact/mod_group_contact.rb
Instance Method Summary collapse
- #add_contacts(contacts) ⇒ Object
- #add_member_by_value(value) ⇒ Object
- #add_members(new_members) ⇒ Object
- #add_members_by_values(member_values) ⇒ Object
- #construct_soap_attrs ⇒ Object
- #construct_soap_node_members ⇒ Object
- #create! ⇒ Object
- #del_members_by_values(member_values) ⇒ Object
- #delete_members(del_members) ⇒ Object
- #has_ldap_members? ⇒ Boolean
- #init_members_from_json(m) ⇒ Object
- #ldap_members ⇒ Object
- #modify! ⇒ Object
Instance Method Details
#add_contacts(contacts) ⇒ Object
23 24 25 26 27 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 23 def add_contacts(contacts) contacts = [contacts] unless contacts.is_a?(Array) new_members = contacts.map { |c| add_member_by_value(c.id) } add_members(new_members) end |
#add_member_by_value(value) ⇒ Object
41 42 43 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 41 def add_member_by_value(value) @members << Zm::Client::ConcatMember.init_by_value(value) end |
#add_members(new_members) ⇒ Object
29 30 31 32 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 29 def add_members(new_members) new_members = [new_members] unless new_members.is_a?(Array) @members += new_members end |
#add_members_by_values(member_values) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 34 def add_members_by_values(member_values) member_values = [member_values] unless member_values.is_a?(Array) current_member_values = @members.map(&:value) member_values.reject! { |value| current_member_values.include?(value) } member_values.each { |value| add_member_by_value(value) } end |
#construct_soap_attrs ⇒ Object
19 20 21 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 19 def construct_soap_attrs [[:nickname, @name], [:fullname, @name], [:fileAs, "8:#{@name}"], %i[type group]] end |
#construct_soap_node_members ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 65 def construct_soap_node_members if recorded? (old_members - @members).each(&:remove!) (@members - old_members).each(&:add!) (old_members + @members).uniq.reject { |m| m.op.nil? }.map(&:construct_soap_node) else @members.map(&:construct_soap_node) end end |
#create! ⇒ Object
10 11 12 13 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 10 def create! rep = @parent.sacc.create_group_contact(@parent.token, l, construct_soap_attrs, construct_soap_node_members) init_from_json(rep[:Body][:CreateContactResponse][:cn].first) end |
#del_members_by_values(member_values) ⇒ Object
50 51 52 53 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 50 def del_members_by_values(member_values) member_values = [member_values] unless member_values.is_a?(Array) @members.delete_if { |m| member_values.include?(m.value) } end |
#delete_members(del_members) ⇒ Object
45 46 47 48 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 45 def delete_members(del_members) del_members = [del_members] unless del_members.is_a?(Array) @members -= del_members end |
#has_ldap_members? ⇒ Boolean
61 62 63 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 61 def has_ldap_members? ldap_members.any? end |
#init_members_from_json(m) ⇒ Object
4 5 6 7 8 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 4 def init_members_from_json(m) return if m.nil? @members = m.map { |m| Zm::Client::ConcatMember.new(m[:type], m[:value]) } end |
#ldap_members ⇒ Object
55 56 57 58 59 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 55 def ldap_members return [] if @members.nil? @members.select(&:ldap?) end |
#modify! ⇒ Object
15 16 17 |
# File 'lib/zm/client/contact/mod_group_contact.rb', line 15 def modify! @parent.sacc.modify_group_contact(@parent.token, id, construct_soap_attrs, construct_soap_node_members) end |