zm-ruby-client 0.14.0 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile +4 -5
  4. data/README.md +6 -0
  5. data/lib/zm/client/account/account.rb +29 -17
  6. data/lib/zm/client/account/account_jsns_initializer.rb +44 -0
  7. data/lib/zm/client/account/accounts_builder.rb +6 -3
  8. data/lib/zm/client/account/accounts_collection.rb +11 -20
  9. data/lib/zm/client/account.rb +1 -0
  10. data/lib/zm/client/ace/ace.rb +22 -9
  11. data/lib/zm/client/ace/ace_jsns_builder.rb +38 -0
  12. data/lib/zm/client/ace/ace_jsns_initializer.rb +26 -0
  13. data/lib/zm/client/ace/aces_builder.rb +6 -9
  14. data/lib/zm/client/ace/aces_collection.rb +23 -9
  15. data/lib/zm/client/ace.rb +2 -0
  16. data/lib/zm/client/appointment/appointment.rb +9 -6
  17. data/lib/zm/client/appointment/appointments_collection.rb +6 -90
  18. data/lib/zm/client/backup/backup.rb +8 -4
  19. data/lib/zm/client/base/account_object.rb +34 -0
  20. data/lib/zm/client/base/account_objects_collection.rb +14 -0
  21. data/lib/zm/client/base/account_search_objects_collection.rb +125 -0
  22. data/lib/zm/client/base/admin_object.rb +6 -0
  23. data/lib/zm/client/base/admin_objects_collection.rb +65 -0
  24. data/lib/zm/client/base/base_jsns_builder.rb +19 -0
  25. data/lib/zm/client/base/base_jsns_initializer.rb +29 -0
  26. data/lib/zm/client/base/folder_object.rb +41 -0
  27. data/lib/zm/client/base/ldap_filter.rb +33 -0
  28. data/lib/zm/client/base/object.rb +19 -0
  29. data/lib/zm/client/base/objects_builder.rb +4 -0
  30. data/lib/zm/client/base/objects_collection.rb +11 -32
  31. data/lib/zm/client/base/zimbra_attribute.rb +119 -0
  32. data/lib/zm/client/base/zimbra_attributes_collection.rb +38 -0
  33. data/lib/zm/client/base.rb +15 -0
  34. data/lib/zm/client/cluster/cluster.rb +43 -7
  35. data/lib/zm/client/cluster/cluster_config.rb +19 -17
  36. data/lib/zm/client/connector/rest_account.rb +0 -3
  37. data/lib/zm/client/connector/soap_account.rb +76 -177
  38. data/lib/zm/client/connector/soap_admin.rb +82 -51
  39. data/lib/zm/client/connector/soap_base.rb +12 -12
  40. data/lib/zm/client/contact/contact.rb +2 -1
  41. data/lib/zm/client/contact/contacts_builder.rb +3 -13
  42. data/lib/zm/client/contact/contacts_collection.rb +6 -12
  43. data/lib/zm/client/cos/cos.rb +11 -6
  44. data/lib/zm/client/cos/coses_builder.rb +1 -16
  45. data/lib/zm/client/cos/coses_collection.rb +6 -9
  46. data/lib/zm/client/distributionlist/distributionlist.rb +44 -6
  47. data/lib/zm/client/distributionlist/distributionlists_builder.rb +2 -17
  48. data/lib/zm/client/distributionlist/distributionlists_collection.rb +4 -11
  49. data/lib/zm/client/distributionlist/dls_membership_collection.rb +24 -0
  50. data/lib/zm/client/distributionlist.rb +1 -0
  51. data/lib/zm/client/document/document.rb +7 -9
  52. data/lib/zm/client/domain/domain.rb +11 -6
  53. data/lib/zm/client/domain/domain_accounts_collection.rb +13 -0
  54. data/lib/zm/client/domain/domains_builder.rb +1 -19
  55. data/lib/zm/client/domain/domains_collection.rb +7 -10
  56. data/lib/zm/client/domain.rb +1 -0
  57. data/lib/zm/client/folder/folder.rb +50 -124
  58. data/lib/zm/client/folder/folder_grant.rb +44 -22
  59. data/lib/zm/client/folder/folder_grant_jsns_builder.rb +43 -0
  60. data/lib/zm/client/folder/folder_grants_collection.rb +35 -0
  61. data/lib/zm/client/folder/folder_jsns_builder.rb +132 -0
  62. data/lib/zm/client/folder/folder_jsns_initializer.rb +49 -0
  63. data/lib/zm/client/folder/folder_retention_policies_collection.rb +40 -0
  64. data/lib/zm/client/folder/folder_retention_policy.rb +8 -30
  65. data/lib/zm/client/folder/folders_builder.rb +2 -2
  66. data/lib/zm/client/folder/folders_collection.rb +21 -19
  67. data/lib/zm/client/folder/folders_jsns_builder.rb +22 -0
  68. data/lib/zm/client/folder.rb +6 -0
  69. data/lib/zm/client/identity/identities_builder.rb +4 -15
  70. data/lib/zm/client/identity/identities_collection.rb +7 -13
  71. data/lib/zm/client/identity/identity.rb +19 -19
  72. data/lib/zm/client/message/message.rb +111 -21
  73. data/lib/zm/client/message/messages_builder.rb +1 -1
  74. data/lib/zm/client/message/messages_collection.rb +10 -92
  75. data/lib/zm/client/mountpoint/mountpoint.rb +15 -68
  76. data/lib/zm/client/mountpoint/mountpoint_jsns_builder.rb +100 -0
  77. data/lib/zm/client/mountpoint/mountpoint_jsns_initializer.rb +33 -0
  78. data/lib/zm/client/mountpoint/mountpoints_builder.rb +1 -1
  79. data/lib/zm/client/mountpoint/mountpoints_collection.rb +14 -23
  80. data/lib/zm/client/mountpoint.rb +2 -0
  81. data/lib/zm/client/resource/resource.rb +5 -5
  82. data/lib/zm/client/resource/resources_builder.rb +1 -16
  83. data/lib/zm/client/resource/resources_collection.rb +5 -13
  84. data/lib/zm/client/search_folder/search_folder.rb +19 -39
  85. data/lib/zm/client/search_folder/search_folder_jsns_builder.rb +86 -0
  86. data/lib/zm/client/search_folder/search_folder_jsns_initializer.rb +33 -0
  87. data/lib/zm/client/search_folder/search_folders_builder.rb +7 -11
  88. data/lib/zm/client/search_folder/search_folders_collection.rb +7 -15
  89. data/lib/zm/client/search_folder.rb +2 -0
  90. data/lib/zm/client/server/server.rb +7 -14
  91. data/lib/zm/client/server/server_accounts_collection.rb +19 -0
  92. data/lib/zm/client/server/servers_builder.rb +4 -16
  93. data/lib/zm/client/server/servers_collection.rb +5 -10
  94. data/lib/zm/client/server.rb +1 -0
  95. data/lib/zm/client/share/share.rb +2 -9
  96. data/lib/zm/client/share/shares_builder.rb +3 -12
  97. data/lib/zm/client/signature/signature.rb +17 -13
  98. data/lib/zm/client/signature/signature_jsns_builder.rb +5 -1
  99. data/lib/zm/client/signature/signature_jsns_initializer.rb +25 -0
  100. data/lib/zm/client/signature/signatures_builder.rb +7 -11
  101. data/lib/zm/client/signature/signatures_collection.rb +6 -14
  102. data/lib/zm/client/signature.rb +1 -0
  103. data/lib/zm/client/tag/tag.rb +27 -20
  104. data/lib/zm/client/tag/tag_jsns_builder.rb +55 -0
  105. data/lib/zm/client/tag/tag_jsns_initializer.rb +26 -0
  106. data/lib/zm/client/tag/tags_builder.rb +6 -9
  107. data/lib/zm/client/tag/tags_collection.rb +6 -12
  108. data/lib/zm/client/tag.rb +2 -0
  109. data/lib/zm/client/task/tasks_collection.rb +6 -90
  110. data/lib/zm/client/upload/upload.rb +1 -1
  111. data/lib/zm/client/version.rb +1 -1
  112. data/lib/zm/modules/common/dl_common.rb +3 -1
  113. data/lib/zm/modules/common/zimbra-attrs.json.bak +1 -0
  114. data/lib/zm/modules/zm_logger.rb +24 -0
  115. data/lib/zm/modules/zm_model.rb +41 -0
  116. data/test/accounts.rb +15 -1
  117. data/test/ace.rb +50 -0
  118. data/test/cluster.rb +41 -0
  119. data/test/cluster_zimbra_attributes.rb +38 -0
  120. data/test/folder.rb +125 -0
  121. data/test/folder_grant.rb +51 -0
  122. data/test/mountpoint.rb +49 -0
  123. data/test/retention_policies.rb +40 -0
  124. data/test/search_folder.rb +67 -0
  125. data/test/signature.rb +53 -0
  126. data/test/tag.rb +65 -0
  127. data/test/zimbra_attributes.rb +35 -0
  128. data/zm-ruby-client.gemspec +15 -10
  129. metadata +53 -26
  130. data/lib/zm/client/connector/soap_xml_builder.rb +0 -68
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zm-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxime Désécot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-13 00:00:00.000000000 Z
11
+ date: 2023-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -16,56 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.6'
19
+ version: '2.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.6'
26
+ version: '2.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: curb
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.7
33
+ version: '1.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.9.7
40
+ version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: nokogiri
42
+ name: version_sorter
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.10.1
47
+ version: 2.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.10.1
55
- - !ruby/object:Gem::Dependency
56
- name: gyoku
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 1.3.1
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 1.3.1
54
+ version: 2.3.0
69
55
  description: Zimbra Soap Librairy using SOAP Json interface
70
56
  email: maxime.desecot@gmail.com
71
57
  executables: []
@@ -83,10 +69,13 @@ files:
83
69
  - lib/zm/client/account/account.rb
84
70
  - lib/zm/client/account/account_dls_membership_collection.rb
85
71
  - lib/zm/client/account/account_dls_owner_collection.rb
72
+ - lib/zm/client/account/account_jsns_initializer.rb
86
73
  - lib/zm/client/account/accounts_builder.rb
87
74
  - lib/zm/client/account/accounts_collection.rb
88
75
  - lib/zm/client/ace.rb
89
76
  - lib/zm/client/ace/ace.rb
77
+ - lib/zm/client/ace/ace_jsns_builder.rb
78
+ - lib/zm/client/ace/ace_jsns_initializer.rb
90
79
  - lib/zm/client/ace/aces_builder.rb
91
80
  - lib/zm/client/ace/aces_collection.rb
92
81
  - lib/zm/client/appointment.rb
@@ -101,10 +90,19 @@ files:
101
90
  - lib/zm/client/backup/backups_collection.rb
102
91
  - lib/zm/client/base.rb
103
92
  - lib/zm/client/base/account_object.rb
93
+ - lib/zm/client/base/account_objects_collection.rb
94
+ - lib/zm/client/base/account_search_objects_collection.rb
104
95
  - lib/zm/client/base/admin_object.rb
96
+ - lib/zm/client/base/admin_objects_collection.rb
97
+ - lib/zm/client/base/base_jsns_builder.rb
98
+ - lib/zm/client/base/base_jsns_initializer.rb
99
+ - lib/zm/client/base/folder_object.rb
100
+ - lib/zm/client/base/ldap_filter.rb
105
101
  - lib/zm/client/base/object.rb
106
102
  - lib/zm/client/base/objects_builder.rb
107
103
  - lib/zm/client/base/objects_collection.rb
104
+ - lib/zm/client/base/zimbra_attribute.rb
105
+ - lib/zm/client/base/zimbra_attributes_collection.rb
108
106
  - lib/zm/client/cluster.rb
109
107
  - lib/zm/client/cluster/cluster.rb
110
108
  - lib/zm/client/cluster/cluster_config.rb
@@ -118,7 +116,6 @@ files:
118
116
  - lib/zm/client/connector/soap_admin.rb
119
117
  - lib/zm/client/connector/soap_base.rb
120
118
  - lib/zm/client/connector/soap_error.rb
121
- - lib/zm/client/connector/soap_xml_builder.rb
122
119
  - lib/zm/client/constant.rb
123
120
  - lib/zm/client/contact.rb
124
121
  - lib/zm/client/contact/contact.rb
@@ -135,20 +132,28 @@ files:
135
132
  - lib/zm/client/distributionlist/distributionlist.rb
136
133
  - lib/zm/client/distributionlist/distributionlists_builder.rb
137
134
  - lib/zm/client/distributionlist/distributionlists_collection.rb
135
+ - lib/zm/client/distributionlist/dls_membership_collection.rb
138
136
  - lib/zm/client/document.rb
139
137
  - lib/zm/client/document/document.rb
140
138
  - lib/zm/client/document/documents_builder.rb
141
139
  - lib/zm/client/document/documents_collection.rb
142
140
  - lib/zm/client/domain.rb
143
141
  - lib/zm/client/domain/domain.rb
142
+ - lib/zm/client/domain/domain_accounts_collection.rb
144
143
  - lib/zm/client/domain/domains_builder.rb
145
144
  - lib/zm/client/domain/domains_collection.rb
146
145
  - lib/zm/client/folder.rb
147
146
  - lib/zm/client/folder/folder.rb
148
147
  - lib/zm/client/folder/folder_grant.rb
148
+ - lib/zm/client/folder/folder_grant_jsns_builder.rb
149
+ - lib/zm/client/folder/folder_grants_collection.rb
150
+ - lib/zm/client/folder/folder_jsns_builder.rb
151
+ - lib/zm/client/folder/folder_jsns_initializer.rb
152
+ - lib/zm/client/folder/folder_retention_policies_collection.rb
149
153
  - lib/zm/client/folder/folder_retention_policy.rb
150
154
  - lib/zm/client/folder/folders_builder.rb
151
155
  - lib/zm/client/folder/folders_collection.rb
156
+ - lib/zm/client/folder/folders_jsns_builder.rb
152
157
  - lib/zm/client/folder/mod_document_folder.rb
153
158
  - lib/zm/client/identity.rb
154
159
  - lib/zm/client/identity/identities_builder.rb
@@ -163,6 +168,8 @@ files:
163
168
  - lib/zm/client/message/messages_collection.rb
164
169
  - lib/zm/client/mountpoint.rb
165
170
  - lib/zm/client/mountpoint/mountpoint.rb
171
+ - lib/zm/client/mountpoint/mountpoint_jsns_builder.rb
172
+ - lib/zm/client/mountpoint/mountpoint_jsns_initializer.rb
166
173
  - lib/zm/client/mountpoint/mountpoints_builder.rb
167
174
  - lib/zm/client/mountpoint/mountpoints_collection.rb
168
175
  - lib/zm/client/mta_queue.rb
@@ -179,10 +186,13 @@ files:
179
186
  - lib/zm/client/resource/resources_collection.rb
180
187
  - lib/zm/client/search_folder.rb
181
188
  - lib/zm/client/search_folder/search_folder.rb
189
+ - lib/zm/client/search_folder/search_folder_jsns_builder.rb
190
+ - lib/zm/client/search_folder/search_folder_jsns_initializer.rb
182
191
  - lib/zm/client/search_folder/search_folders_builder.rb
183
192
  - lib/zm/client/search_folder/search_folders_collection.rb
184
193
  - lib/zm/client/server.rb
185
194
  - lib/zm/client/server/server.rb
195
+ - lib/zm/client/server/server_accounts_collection.rb
186
196
  - lib/zm/client/server/servers_builder.rb
187
197
  - lib/zm/client/server/servers_collection.rb
188
198
  - lib/zm/client/share.rb
@@ -192,10 +202,13 @@ files:
192
202
  - lib/zm/client/signature.rb
193
203
  - lib/zm/client/signature/signature.rb
194
204
  - lib/zm/client/signature/signature_jsns_builder.rb
205
+ - lib/zm/client/signature/signature_jsns_initializer.rb
195
206
  - lib/zm/client/signature/signatures_builder.rb
196
207
  - lib/zm/client/signature/signatures_collection.rb
197
208
  - lib/zm/client/tag.rb
198
209
  - lib/zm/client/tag/tag.rb
210
+ - lib/zm/client/tag/tag_jsns_builder.rb
211
+ - lib/zm/client/tag/tag_jsns_initializer.rb
199
212
  - lib/zm/client/tag/tags_builder.rb
200
213
  - lib/zm/client/tag/tags_collection.rb
201
214
  - lib/zm/client/task.rb
@@ -212,11 +225,25 @@ files:
212
225
  - lib/zm/modules/common/resource_common.rb
213
226
  - lib/zm/modules/common/signature_common.rb
214
227
  - lib/zm/modules/common/zimbra-attrs.json
228
+ - lib/zm/modules/common/zimbra-attrs.json.bak
229
+ - lib/zm/modules/zm_logger.rb
230
+ - lib/zm/modules/zm_model.rb
215
231
  - lib/zm/utils/thread_pool.rb
216
232
  - test/accounts.rb
233
+ - test/ace.rb
234
+ - test/cluster.rb
217
235
  - test/cluster_config.rb
236
+ - test/cluster_zimbra_attributes.rb
218
237
  - test/coses.rb
219
238
  - test/domains.rb
239
+ - test/folder.rb
240
+ - test/folder_grant.rb
241
+ - test/mountpoint.rb
242
+ - test/retention_policies.rb
243
+ - test/search_folder.rb
244
+ - test/signature.rb
245
+ - test/tag.rb
246
+ - test/zimbra_attributes.rb
220
247
  - zm-ruby-client.gemspec
221
248
  homepage: https://github.com/RaoH37/zm-ruby-client
222
249
  licenses:
@@ -230,14 +257,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
230
257
  requirements:
231
258
  - - ">="
232
259
  - !ruby/object:Gem::Version
233
- version: '0'
260
+ version: '2.6'
234
261
  required_rubygems_version: !ruby/object:Gem::Requirement
235
262
  requirements:
236
263
  - - ">="
237
264
  - !ruby/object:Gem::Version
238
265
  version: '0'
239
266
  requirements: []
240
- rubygems_version: 3.1.2
267
+ rubygems_version: 3.4.10
241
268
  signing_key:
242
269
  specification_version: 4
243
270
  summary: zm-ruby-client
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'nokogiri'
4
- # https://stackoverflow.com/questions/11933451/converting-nested-hash-into-xml-using-nokogiri
5
-
6
- class SoapXmlBuilder
7
- ATTRS_NODE_PROC = ->(k, _) { k.to_s.start_with?('_') }
8
-
9
- def initialize(hash)
10
- @hash = hash
11
- end
12
-
13
- def to_xml
14
- builder = Nokogiri::XML::Builder.new do |xml|
15
- xml.Envelope('xmlns' => 'http://schemas.xmlsoap.org/soap/envelope/', 'xmlns:urn' => 'urn:zimbra') do
16
- header(xml)
17
- body(xml)
18
- end
19
- end
20
- builder.to_xml
21
- end
22
-
23
- private
24
-
25
- def header(xml)
26
- return unless @hash[:Header]
27
-
28
- xml.Header do
29
- xml.context_('xmlns' => 'urn:zimbra') do
30
- xml.authToken @hash[:Header][:context][:authToken]
31
- if @hash[:Header][:context][:targetServer]
32
- xml.targetServer @hash[:Header][:context][:targetServer]
33
- end
34
- xml.format('type' => 'js')
35
- end
36
- end
37
- end
38
-
39
- def body(xml)
40
- return unless @hash[:Body]
41
-
42
- xml.Body do
43
- generate_xml(@hash[:Body], xml)
44
- end
45
- end
46
-
47
- def generate_xml(hash, xml)
48
- hash.each do |req_name, req_h|
49
- xml.send(req_name, transform_keys(req_h.select(&ATTRS_NODE_PROC))) do
50
- req_h.reject(&ATTRS_NODE_PROC).each do |label, value|
51
- if value.is_a?(Hash)
52
- generate_xml(value, xml)
53
- elsif value.is_a?(Array)
54
- value.each do |el|
55
- xml.send(label, el.reject(&ATTRS_NODE_PROC), el[:_content])
56
- end
57
- else
58
- xml.send(label, value)
59
- end
60
- end
61
- end
62
- end
63
- end
64
-
65
- def transform_keys(hash)
66
- Hash[hash.map { |k, v| [k.to_s.sub(/\A_/, '').sub('jsns', 'xmlns'), v] }]
67
- end
68
- end