zm-ruby-client 0.14.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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