Class: Zimbra::DistributionListService

Inherits:
HandsoapService show all
Defined in:
lib/zimbra/distribution_list.rb

Defined Under Namespace

Modules: Builder, Parser

Instance Method Summary collapse

Methods inherited from HandsoapService

#on_create_document, #on_response_document

Methods included from HandsoapUriOverrides

#envelope_namespace, #request_content_type, #uri

Methods included from HandsoapNamespaces

#request_namespaces, #response_namespaces

Methods included from HandsoapErrors

#http_error?, #http_not_found?, #on_after_create_http_request, #on_http_error, #report_error, #soap_fault_not_found?

Instance Method Details

#add_member(distribution_list, member) ⇒ Object



111
112
113
114
115
# File 'lib/zimbra/distribution_list.rb', line 111

def add_member(distribution_list, member)
  xml = invoke("n2:AddDistributionListMemberRequest") do |message|
    Builder.add_member(message, distribution_list.id, member)
  end
end

#allObject



65
66
67
68
# File 'lib/zimbra/distribution_list.rb', line 65

def all
  xml = invoke("n2:GetAllDistributionListsRequest")
  Parser.get_all_response(xml)
end

#create(name) ⇒ Object



86
87
88
89
90
91
# File 'lib/zimbra/distribution_list.rb', line 86

def create(name)
  xml = invoke("n2:CreateDistributionListRequest") do |message|
    Builder.create(message, name)
  end
  Parser.distribution_list_response(xml/'//n2:dl')
end

#delete(dist) ⇒ Object



123
124
125
126
127
# File 'lib/zimbra/distribution_list.rb', line 123

def delete(dist)
  xml = invoke("n2:DeleteDistributionListRequest") do |message|
    Builder.delete(message, dist.id)
  end
end

#get_by_id(id) ⇒ Object



70
71
72
73
74
75
76
# File 'lib/zimbra/distribution_list.rb', line 70

def get_by_id(id)
  xml = invoke("n2:GetDistributionListRequest") do |message|
    Builder.get_by_id(message, id)
  end
  return nil if soap_fault_not_found?
  Parser.distribution_list_response(xml/'//n2:dl')
end

#get_by_name(name) ⇒ Object



78
79
80
81
82
83
84
# File 'lib/zimbra/distribution_list.rb', line 78

def get_by_name(name)
  xml = invoke("n2:GetDistributionListRequest") do |message|
    Builder.get_by_name(message, name)
  end
  return nil if soap_fault_not_found?
  Parser.distribution_list_response(xml/'//n2:dl')
end

#modify(dist) ⇒ Object



93
94
95
96
97
98
99
100
# File 'lib/zimbra/distribution_list.rb', line 93

def modify(dist)
  xml = invoke("n2:ModifyDistributionListRequest") do |message|
    Builder.modify(message, dist)
  end
  Parser.distribution_list_response(xml/'//n2:dl')

  modify_members(dist)
end

#modify_members(distribution_list) ⇒ Object



102
103
104
105
106
107
108
109
# File 'lib/zimbra/distribution_list.rb', line 102

def modify_members(distribution_list)
  distribution_list.new_members.each do |member|
    add_member(distribution_list, member)
  end
  distribution_list.removed_members.each do |member|
    remove_member(distribution_list, member)
  end
end

#remove_member(distribution_list, member) ⇒ Object



117
118
119
120
121
# File 'lib/zimbra/distribution_list.rb', line 117

def remove_member(distribution_list, member)
  xml = invoke("n2:RemoveDistributionListMemberRequest") do |message|
    Builder.remove_member(message, distribution_list.id, member)
  end
end