zm-ruby-client 0.18.3 → 2.0.2

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 (250) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/Gemfile +2 -2
  4. data/README.md +7 -0
  5. data/lib/zm/client/account/account.rb +31 -319
  6. data/lib/zm/client/account/account_aliases_collection.rb +52 -0
  7. data/lib/zm/client/account/account_dls_membership_collection.rb +4 -1
  8. data/lib/zm/client/account/account_dls_owner_collection.rb +8 -1
  9. data/lib/zm/client/account/account_jsns_builder.rb +77 -0
  10. data/lib/zm/client/account/account_jsns_initializer.rb +9 -24
  11. data/lib/zm/client/account/accounts_builder.rb +0 -1
  12. data/lib/zm/client/account/accounts_collection.rb +32 -8
  13. data/lib/zm/client/account.rb +1 -0
  14. data/lib/zm/client/ace/ace.rb +6 -22
  15. data/lib/zm/client/ace/ace_jsns_builder.rb +15 -16
  16. data/lib/zm/client/ace/ace_jsns_initializer.rb +0 -1
  17. data/lib/zm/client/ace/aces_builder.rb +0 -1
  18. data/lib/zm/client/ace/aces_collection.rb +2 -18
  19. data/lib/zm/client/appointment/appointment.rb +38 -30
  20. data/lib/zm/client/appointment/appointment_jsns_builder.rb +22 -34
  21. data/lib/zm/client/appointment/appointment_jsns_initializer.rb +6 -3
  22. data/lib/zm/client/appointment/appointments_builder.rb +6 -18
  23. data/lib/zm/client/appointment/appointments_collection.rb +25 -4
  24. data/lib/zm/client/backup/backup.rb +4 -32
  25. data/lib/zm/client/backup/backup_jsns_initializer.rb +26 -0
  26. data/lib/zm/client/backup/backups_builder.rb +8 -13
  27. data/lib/zm/client/backup/backups_collection.rb +2 -1
  28. data/lib/zm/client/backup.rb +1 -0
  29. data/lib/zm/client/base/account_search_objects_collection.rb +34 -13
  30. data/lib/zm/client/base/admin_objects_collection.rb +82 -17
  31. data/lib/zm/client/base/base_account_jsns_builder.rb +98 -0
  32. data/lib/zm/client/base/base_jsns_builder.rb +47 -0
  33. data/lib/zm/client/base/base_jsns_initializer.rb +43 -12
  34. data/lib/zm/client/base/ldap_filter.rb +20 -5
  35. data/lib/zm/client/base/mailbox_infos_collection.rb +88 -0
  36. data/lib/zm/client/base/mailbox_object.rb +299 -0
  37. data/lib/zm/client/base/mailbox_prefs_collection.rb +75 -0
  38. data/lib/zm/client/base/object.rb +28 -62
  39. data/lib/zm/client/base/objects_builder.rb +4 -10
  40. data/lib/zm/client/base/objects_collection.rb +13 -10
  41. data/lib/zm/client/base/zimbra_attribute.rb +10 -8
  42. data/lib/zm/client/base/zimbra_attributes_collection.rb +154 -10
  43. data/lib/zm/client/base.rb +5 -5
  44. data/lib/zm/client/cluster/cluster.rb +43 -39
  45. data/lib/zm/client/cluster/cluster_config.rb +5 -5
  46. data/lib/zm/client/common/recipients.rb +3 -3
  47. data/lib/zm/client/common/token_metadata.rb +4 -1
  48. data/lib/zm/client/common/utils.rb +57 -0
  49. data/lib/zm/client/common.rb +2 -1
  50. data/lib/zm/client/connector/rest_account.rb +14 -4
  51. data/lib/zm/client/connector/soap_account.rb +38 -441
  52. data/lib/zm/client/connector/soap_admin.rb +16 -552
  53. data/lib/zm/client/connector/soap_base.rb +25 -5
  54. data/lib/zm/client/connector/soap_error.rb +1 -3
  55. data/lib/zm/client/constant.rb +21 -11
  56. data/lib/zm/client/contact/contact.rb +42 -83
  57. data/lib/zm/client/contact/contact_jsns_builder.rb +60 -0
  58. data/lib/zm/client/contact/contact_jsns_initializer.rb +78 -0
  59. data/lib/zm/client/contact/contact_member.rb +29 -28
  60. data/lib/zm/client/contact/contact_members_collection.rb +44 -0
  61. data/lib/zm/client/contact/contacts_builder.rb +8 -1
  62. data/lib/zm/client/contact/contacts_collection.rb +17 -1
  63. data/lib/zm/client/contact/group_contact_jsns_builder.rb +51 -0
  64. data/lib/zm/client/contact/mod_group_contact.rb +4 -67
  65. data/lib/zm/client/contact.rb +5 -1
  66. data/lib/zm/client/cos/cos.rb +35 -40
  67. data/lib/zm/client/cos/cos_accounts_collection.rb +19 -0
  68. data/lib/zm/client/cos/cos_domains_collection.rb +20 -0
  69. data/lib/zm/client/cos/cos_jsns_builder.rb +72 -0
  70. data/lib/zm/client/cos/cos_jsns_initializer.rb +29 -0
  71. data/lib/zm/client/cos/cos_servers_collection.rb +60 -0
  72. data/lib/zm/client/cos/coses_builder.rb +8 -1
  73. data/lib/zm/client/cos/coses_collection.rb +8 -5
  74. data/lib/zm/client/cos.rb +5 -0
  75. data/lib/zm/client/datasource/datasource.rb +69 -0
  76. data/lib/zm/client/datasource/datasource_jsns_builder.rb +32 -0
  77. data/lib/zm/client/datasource/datasource_jsns_initializer.rb +27 -0
  78. data/lib/zm/client/datasource/datasources_builder.rb +29 -0
  79. data/lib/zm/client/datasource/datasources_collection.rb +21 -0
  80. data/lib/zm/client/datasource.rb +7 -0
  81. data/lib/zm/client/distributionlist/distributionlist.rb +52 -118
  82. data/lib/zm/client/distributionlist/distributionlist_aces_collection.rb +31 -0
  83. data/lib/zm/client/distributionlist/distributionlist_aliases_collection.rb +53 -0
  84. data/lib/zm/client/distributionlist/distributionlist_jsns_builder.rb +82 -0
  85. data/lib/zm/client/distributionlist/distributionlist_jsns_initializer.rb +32 -0
  86. data/lib/zm/client/distributionlist/distributionlist_members_collection.rb +47 -0
  87. data/lib/zm/client/distributionlist/distributionlist_owners_collection.rb +52 -0
  88. data/lib/zm/client/distributionlist/distributionlists_builder.rb +8 -1
  89. data/lib/zm/client/distributionlist/distributionlists_collection.rb +8 -9
  90. data/lib/zm/client/distributionlist/dls_membership_collection.rb +4 -1
  91. data/lib/zm/client/distributionlist.rb +2 -0
  92. data/lib/zm/client/document/document.rb +27 -24
  93. data/lib/zm/client/document/document_jsns_builder.rb +18 -0
  94. data/lib/zm/client/document/document_jsns_initializer.rb +44 -0
  95. data/lib/zm/client/document/documents_builder.rb +6 -16
  96. data/lib/zm/client/document/documents_collection.rb +17 -67
  97. data/lib/zm/client/document.rb +2 -0
  98. data/lib/zm/client/domain/domain.rb +45 -68
  99. data/lib/zm/client/domain/domain_accounts_collection.rb +1 -1
  100. data/lib/zm/client/domain/domain_distributionlists_collection.rb +13 -0
  101. data/lib/zm/client/domain/domain_jsns_builder.rb +69 -0
  102. data/lib/zm/client/domain/domain_jsns_initializer.rb +25 -0
  103. data/lib/zm/client/domain/domain_resources_collection.rb +13 -0
  104. data/lib/zm/client/domain/domains_builder.rb +8 -1
  105. data/lib/zm/client/domain/domains_collection.rb +7 -7
  106. data/lib/zm/client/domain.rb +4 -0
  107. data/lib/zm/client/filter_rule.rb +7 -0
  108. data/lib/zm/client/filter_rules/filter_rule.rb +10 -0
  109. data/lib/zm/client/filter_rules/filter_rule_jsns_initializer.rb +24 -0
  110. data/lib/zm/client/filter_rules/filter_rules_builder.rb +21 -0
  111. data/lib/zm/client/filter_rules/filter_rules_collection.rb +21 -0
  112. data/lib/zm/client/filter_rules/outgoing_filter_rules_collection.rb +15 -0
  113. data/lib/zm/client/folder/folder.rb +77 -61
  114. data/lib/zm/client/folder/folder_grant.rb +34 -14
  115. data/lib/zm/client/folder/folder_grant_jsns_builder.rb +15 -4
  116. data/lib/zm/client/folder/folder_grants_collection.rb +36 -2
  117. data/lib/zm/client/folder/folder_jsns_builder.rb +22 -48
  118. data/lib/zm/client/folder/folder_jsns_initializer.rb +34 -17
  119. data/lib/zm/client/folder/folder_retention_policies_collection.rb +2 -3
  120. data/lib/zm/client/folder/folder_retention_policy.rb +0 -1
  121. data/lib/zm/client/folder/folders_builder.rb +7 -10
  122. data/lib/zm/client/folder/folders_collection.rb +5 -2
  123. data/lib/zm/client/folder/folders_jsns_builder.rb +3 -1
  124. data/lib/zm/client/folder/mod_document_folder.rb +10 -6
  125. data/lib/zm/client/folder.rb +1 -1
  126. data/lib/zm/client/identity/identities_builder.rb +8 -1
  127. data/lib/zm/client/identity/identities_collection.rb +2 -1
  128. data/lib/zm/client/identity/identity.rb +34 -42
  129. data/lib/zm/client/identity/identity_jsns_builder.rb +57 -0
  130. data/lib/zm/client/identity/identity_jsns_initializer.rb +29 -0
  131. data/lib/zm/client/identity.rb +3 -1
  132. data/lib/zm/client/license/license.rb +9 -22
  133. data/lib/zm/client/license/license_jsns_initializer.rb +20 -0
  134. data/lib/zm/client/license/licenses_collection.rb +3 -13
  135. data/lib/zm/client/license.rb +2 -1
  136. data/lib/zm/client/message/attachments_collection.rb +55 -0
  137. data/lib/zm/client/message/message.rb +36 -264
  138. data/lib/zm/client/message/message_flags.rb +107 -0
  139. data/lib/zm/client/message/message_jsns_builder.rb +85 -0
  140. data/lib/zm/client/message/message_jsns_initializer.rb +71 -0
  141. data/lib/zm/client/message/message_recipients.rb +59 -0
  142. data/lib/zm/client/message/messages_builder.rb +7 -18
  143. data/lib/zm/client/message/messages_collection.rb +17 -2
  144. data/lib/zm/client/message.rb +5 -0
  145. data/lib/zm/client/mountpoint/mountpoint.rb +43 -21
  146. data/lib/zm/client/mountpoint/mountpoint_jsns_builder.rb +8 -53
  147. data/lib/zm/client/mountpoint/mountpoint_jsns_initializer.rb +22 -13
  148. data/lib/zm/client/mountpoint/mountpoints_builder.rb +4 -5
  149. data/lib/zm/client/mountpoint/mountpoints_collection.rb +1 -2
  150. data/lib/zm/client/mta_queue/mta_queue.rb +13 -28
  151. data/lib/zm/client/mta_queue/mta_queue_jsns_builder.rb +41 -0
  152. data/lib/zm/client/mta_queue/mta_queue_jsns_initializer.rb +23 -0
  153. data/lib/zm/client/mta_queue/mta_queues_builder.rb +4 -8
  154. data/lib/zm/client/mta_queue/mta_queues_collection.rb +8 -27
  155. data/lib/zm/client/mta_queue.rb +2 -0
  156. data/lib/zm/client/mta_queue_item/mta_queue_item.rb +4 -31
  157. data/lib/zm/client/mta_queue_item/mta_queue_item_jsns_initializer.rb +33 -0
  158. data/lib/zm/client/mta_queue_item/mta_queue_items_builder.rb +4 -9
  159. data/lib/zm/client/mta_queue_item/mta_queue_items_collection.rb +7 -42
  160. data/lib/zm/client/mta_queue_item.rb +2 -1
  161. data/lib/zm/client/resource/resource.rb +24 -91
  162. data/lib/zm/client/resource/resource_jsns_builder.rb +79 -0
  163. data/lib/zm/client/resource/resource_jsns_initializer.rb +29 -0
  164. data/lib/zm/client/resource/resources_builder.rb +8 -1
  165. data/lib/zm/client/resource/resources_collection.rb +9 -7
  166. data/lib/zm/client/resource.rb +2 -0
  167. data/lib/zm/client/search_folder/search_folder.rb +38 -16
  168. data/lib/zm/client/search_folder/search_folder_jsns_builder.rb +38 -19
  169. data/lib/zm/client/search_folder/search_folder_jsns_initializer.rb +17 -13
  170. data/lib/zm/client/search_folder/search_folders_builder.rb +0 -1
  171. data/lib/zm/client/search_folder/search_folders_collection.rb +2 -1
  172. data/lib/zm/client/server/server.rb +16 -488
  173. data/lib/zm/client/server/server_jsns_initializer.rb +16 -0
  174. data/lib/zm/client/server/servers_builder.rb +8 -1
  175. data/lib/zm/client/server/servers_collection.rb +13 -5
  176. data/lib/zm/client/server.rb +1 -0
  177. data/lib/zm/client/share/share.rb +5 -43
  178. data/lib/zm/client/share/share_jsns_initializer.rb +32 -0
  179. data/lib/zm/client/share/share_mountpoints_collection.rb +38 -0
  180. data/lib/zm/client/share/shares_builder.rb +8 -1
  181. data/lib/zm/client/share/shares_collection.rb +11 -16
  182. data/lib/zm/client/share.rb +2 -0
  183. data/lib/zm/client/signature/signature.rb +25 -29
  184. data/lib/zm/client/signature/signature_jsns_builder.rb +31 -13
  185. data/lib/zm/client/signature/signature_jsns_initializer.rb +16 -12
  186. data/lib/zm/client/signature/signatures_builder.rb +1 -2
  187. data/lib/zm/client/signature/signatures_collection.rb +2 -1
  188. data/lib/zm/client/signature.rb +1 -1
  189. data/lib/zm/client/soap_request/account_soap_constants.rb +76 -0
  190. data/lib/zm/client/soap_request/admin_soap_constants.rb +214 -0
  191. data/lib/zm/client/soap_request/mail_soap_constants.rb +162 -0
  192. data/lib/zm/client/soap_request/soap_constants.rb +55 -0
  193. data/lib/zm/client/soap_request/soap_context.rb +38 -0
  194. data/lib/zm/client/soap_request/soap_element.rb +90 -0
  195. data/lib/zm/client/soap_request.rb +8 -0
  196. data/lib/zm/client/tag/account_object_tags_collection.rb +65 -0
  197. data/lib/zm/client/tag/tag.rb +34 -22
  198. data/lib/zm/client/tag/tag_jsns_builder.rb +14 -35
  199. data/lib/zm/client/tag/tag_jsns_initializer.rb +4 -6
  200. data/lib/zm/client/tag/tags_builder.rb +0 -1
  201. data/lib/zm/client/tag/tags_collection.rb +2 -1
  202. data/lib/zm/client/tag.rb +1 -0
  203. data/lib/zm/client/task/task.rb +18 -49
  204. data/lib/zm/client/task/task_jsns_initializer.rb +45 -0
  205. data/lib/zm/client/task/tasks_builder.rb +6 -16
  206. data/lib/zm/client/task/tasks_collection.rb +29 -0
  207. data/lib/zm/client/task.rb +1 -0
  208. data/lib/zm/client/upload/upload.rb +26 -30
  209. data/lib/zm/client/version.rb +3 -3
  210. data/lib/zm/client.rb +4 -1
  211. data/lib/zm/modules/base.rb +10 -0
  212. data/lib/zm/modules/belongs_to_folder.rb +37 -0
  213. data/lib/zm/modules/belongs_to_tag.rb +11 -0
  214. data/lib/zm/modules/common/zimbra-attrs.json +33 -1
  215. data/lib/zm/modules/has_soap_admin_connector.rb +12 -0
  216. data/lib/zm/modules/inspector.rb +24 -0
  217. data/lib/zm/modules/missing_method_static_collection.rb +13 -0
  218. data/lib/zm/modules/zm_logger.rb +3 -1
  219. data/lib/zm/modules/zm_model.rb +4 -2
  220. data/lib/zm/utils/thread_pool.rb +4 -2
  221. data/lib/zm-ruby-client.rb +2 -0
  222. data/zm-ruby-client.gemspec +12 -9
  223. metadata +93 -34
  224. data/lib/zm/client/base/account_object.rb +0 -51
  225. data/lib/zm/client/base/admin_object.rb +0 -51
  226. data/lib/zm/client/base/folder_object.rb +0 -41
  227. data/lib/zm/client/config.rb +0 -12
  228. data/lib/zm/client/data_source.rb +0 -5
  229. data/lib/zm/modules/common/account_common.rb +0 -71
  230. data/lib/zm/modules/common/cos_common.rb +0 -463
  231. data/lib/zm/modules/common/dl_common.rb +0 -38
  232. data/lib/zm/modules/common/identity_common.rb +0 -19
  233. data/lib/zm/modules/common/resource_common.rb +0 -59
  234. data/lib/zm/modules/common/signature_common.rb +0 -16
  235. data/lib/zm/modules/common/zimbra-attrs.json.bak +0 -1
  236. data/test/accounts.rb +0 -89
  237. data/test/ace.rb +0 -50
  238. data/test/cluster.rb +0 -41
  239. data/test/cluster_config.rb +0 -30
  240. data/test/cluster_zimbra_attributes.rb +0 -38
  241. data/test/coses.rb +0 -26
  242. data/test/domains.rb +0 -70
  243. data/test/folder.rb +0 -125
  244. data/test/folder_grant.rb +0 -51
  245. data/test/mountpoint.rb +0 -49
  246. data/test/retention_policies.rb +0 -40
  247. data/test/search_folder.rb +0 -67
  248. data/test/signature.rb +0 -53
  249. data/test/tag.rb +0 -65
  250. data/test/zimbra_attributes.rb +0 -35
@@ -3,71 +3,40 @@
3
3
  module Zm
4
4
  module Client
5
5
  # class for account task
6
- class Task < Base::AccountObject
6
+ class Task < Base::Object
7
+ include BelongsToFolder
8
+ include BelongsToTag
7
9
 
8
- INSTANCE_VARIABLE_KEYS = %i[id uid name l desc start_at dur end_at tn]
9
-
10
- attr_accessor *INSTANCE_VARIABLE_KEYS
11
- attr_writer :folder
12
- attr_reader :json
13
-
14
- alias description desc
15
- alias parent_id l
16
-
17
- def initialize(parent, json = nil)
18
- @parent = parent
19
- init_from_json(json) if json.is_a?(Hash)
20
- yield(self) if block_given?
21
- end
22
-
23
- def concat
24
- INSTANCE_VARIABLE_KEYS.map { |key| instance_variable_get(arrow_name(key)) }
25
- end
26
-
27
- def folder
28
- @folder ||= @parent.folders.all.find { |folder| folder.id == l }
29
- end
10
+ attr_accessor :uid, :priority, :ptst, :percentComplete, :name, :loc, :alarm, :isOrg, :id, :invId, :compNum, :l,
11
+ :status, :class, :allDay, :f, :tn, :t, :rev, :s, :d, :md, :ms, :cm, :sf
30
12
 
31
13
  def download(dest_file_path, fmt = 'ics')
32
- # @parent.uploader.download_file(folder.absFolderPath, 'ics', ['task'], [id], dest_file_path)
33
14
  uploader = Upload.new(@parent, RestAccountConnector.new)
34
- uploader.download_file(folder.absFolderPath, fmt, ['task'], [id], dest_file_path)
15
+ uploader.download_file(Zm::Client::FolderDefault::ROOT[:path], fmt, [Zm::Client::FolderView::TASK], [@id], dest_file_path)
35
16
  end
36
17
 
37
18
  def create!
38
- # rep = @parent.sacc.create_task(@parent.token, @l, @name, @view)
39
- # init_from_json(rep[:Body][:CreateTaskResponse][:task].first)
19
+ raise NotImplementedError
40
20
  end
41
21
 
42
- def reload!
43
- # rep = @parent.sacc.get_task(@parent.token, @id)
44
- # init_from_json(rep[:Body][:GetTaskResponse][:task].first)
22
+ def modify!
23
+ raise NotImplementedError
45
24
  end
46
25
 
47
- def delete!
48
- # @parent.sacc.task_action(@parent.token, :delete, @id)
26
+ def update!(*args)
27
+ raise NotImplementedError
49
28
  end
50
29
 
51
- def init_from_json(json)
52
- @json = json
53
- @id = json[:id].to_i
54
- @uid = json[:uid]
55
- @tn = json[:tn]
56
- @name = json[:name]
57
- @l = json[:l]
58
- @desc = json[:fr]
59
- make_date(json)
30
+ def rename!(*args)
31
+ raise NotImplementedError
60
32
  end
61
33
 
62
- def make_date(json)
63
- return if json[:inst].nil? || json[:inst].first.empty? || json[:dur].nil?
64
-
65
- @start_at = Time.at(json[:inst].first[:s] / 1000)
66
- @end_at = Time.at((json[:inst].first[:s] + json[:dur]) / 1000)
67
-
68
- return if json[:dur].nil?
34
+ def reload!
35
+ raise NotImplementedError
36
+ end
69
37
 
70
- @dur = json[:dur] / 1000
38
+ def delete!
39
+ raise NotImplementedError
71
40
  end
72
41
  end
73
42
  end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zm
4
+ module Client
5
+ # class for account document
6
+ class TaskJsnsInitializer
7
+ class << self
8
+ def create(parent, json)
9
+ item = Task.new(parent)
10
+ update(item, json)
11
+ end
12
+
13
+ def update(item, json)
14
+ item.uid = json[:uid]
15
+ item.priority = json[:priority].to_i
16
+ item.ptst = json[:ptst]
17
+ item.percentComplete = json[:percentComplete].to_f
18
+ item.name = json[:name]
19
+ item.loc = json[:loc]
20
+ item.alarm = json[:alarm]
21
+ item.isOrg = json[:isOrg]
22
+ item.id = json[:id].to_i
23
+ item.invId = json[:invId]
24
+ item.compNum = json[:compNum]
25
+ item.l = json[:l].to_i
26
+ item.status = json[:status]
27
+ item.class = json[:class]
28
+ item.allDay = json[:allDay]
29
+ item.f = json[:f]
30
+ item.tn = json[:tn]
31
+ item.t = json[:t]
32
+ item.rev = json[:rev]
33
+ item.s = json[:s]
34
+ item.d = json[:d]
35
+ item.md = json[:md]
36
+ item.ms = json[:ms]
37
+ item.cm = json[:cm]
38
+ item.sf = json[:sf]
39
+
40
+ item
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -5,26 +5,16 @@ module Zm
5
5
  # class factory [tasks]
6
6
  class TasksBuilder < Base::ObjectsBuilder
7
7
  def initialize(parent, json)
8
- @parent = parent
9
- @json = json
8
+ super(parent, json)
9
+ @json_item_key = :task
10
10
  end
11
11
 
12
12
  def make
13
- root.map do |s|
14
- Task.new(@parent, s)
15
- end
16
- end
17
-
18
- def ids
19
- root.map { |s| s[:id] }
20
- end
21
-
22
- def root
23
- root = @json[:Body][:SearchResponse][:task]
24
- return [] if root.nil?
13
+ return [] if json_items.nil?
25
14
 
26
- root = [root] unless root.is_a?(Array)
27
- root
15
+ json_items.map do |entry|
16
+ TaskJsnsInitializer.create(@parent, entry)
17
+ end
28
18
  end
29
19
  end
30
20
  end
@@ -4,6 +4,8 @@ module Zm
4
4
  module Client
5
5
  # collection of tasks
6
6
  class TasksCollection < Base::AccountSearchObjectsCollection
7
+ DEFAULT_QUERY = 'in:tasks'
8
+
7
9
  def initialize(parent)
8
10
  super(parent)
9
11
  @child_class = Task
@@ -11,6 +13,33 @@ module Zm
11
13
  @type = 'task'
12
14
  @sort_by = 'taskDueAsc'
13
15
  end
16
+
17
+ def find_each
18
+ @all = []
19
+ (1970..(Time.now.year + 10)).each do |year|
20
+ @start_at = Time.new(year, 1, 1)
21
+ @end_at = Time.new(year, 12, 31)
22
+ @more = true
23
+ @offset = 0
24
+ @limit = 500
25
+
26
+ while @more
27
+ @all += build_response
28
+ @offset += @limit
29
+ end
30
+ end
31
+ @all
32
+ end
33
+
34
+ private
35
+
36
+ def query
37
+ return @query unless @query.nil?
38
+
39
+ return DEFAULT_QUERY if @folder_ids.empty?
40
+
41
+ @folder_ids.map { |id| %(inid:"#{id}") }.join(' OR ')
42
+ end
14
43
  end
15
44
  end
16
45
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'zm/client/task/task'
4
+ require 'zm/client/task/task_jsns_initializer'
4
5
  require 'zm/client/task/tasks_builder'
5
6
  require 'zm/client/task/tasks_collection'
@@ -5,16 +5,19 @@ module Zm
5
5
  # class for upload account file
6
6
  class Upload
7
7
  FMT_TYPES_H = {
8
- 'ics' => ['appointment'],
9
- 'vcard' => ['contact']
10
- }
8
+ 'ics' => ['appointment'],
9
+ 'vcard' => ['contact']
10
+ }.freeze
11
11
 
12
12
  def initialize(parent, rac = nil)
13
13
  @parent = parent
14
14
  @rac = rac || @parent.rac
15
+ @rac.cookies("ZM_AUTH_TOKEN=#{@parent.token}")
15
16
  end
16
17
 
17
18
  def download_file_with_url(url, dest_file_path)
19
+ raise ZmError, 'home_url is not defined' if @parent.home_url.nil?
20
+
18
21
  url = File.join(@parent.home_url, url) unless url.start_with?('http')
19
22
  @rac.download(url, dest_file_path)
20
23
  end
@@ -28,37 +31,35 @@ module Zm
28
31
  end
29
32
 
30
33
  def download_folder_url(id, fmt)
31
- url_folder_path = @parent.home_url
34
+ raise ZmError, 'home_url is not defined' if @parent.home_url.nil?
35
+
36
+ url_folder_path = @parent.home_url.dup
32
37
 
33
38
  h = {
34
39
  fmt: fmt,
35
40
  id: id,
36
- emptyname: 'Vide',
41
+ emptyname: 'Empty',
37
42
  charset: 'UTF-8',
38
- auth: 'qp',
39
- zauthtoken: @parent.token,
43
+ auth: 'co',
40
44
  disp: 'a'
41
45
  }
42
46
 
43
- uri = Addressable::URI.new
44
- uri.query_values = h
45
- url_folder_path << '?' << uri.query
46
-
47
- # puts url_folder_path
47
+ url_folder_path << '?' << Utils.format_url_params(h)
48
48
 
49
49
  url_folder_path
50
50
  end
51
51
 
52
52
  def download_file_url(folder_path, fmt, types, ids = [])
53
+ raise ZmError, 'home_url is not defined' if @parent.home_url.nil?
54
+
53
55
  url_folder_path = File.join(@parent.home_url, folder_path.to_s)
54
56
 
55
57
  h = {
56
58
  fmt: fmt,
57
59
  types: query_value_types(types, fmt),
58
- emptyname: 'Vide',
60
+ emptyname: 'Empty',
59
61
  charset: 'UTF-8',
60
- auth: 'qp',
61
- zauthtoken: @parent.token,
62
+ auth: 'co',
62
63
  disp: 'a'
63
64
  }
64
65
 
@@ -66,11 +67,7 @@ module Zm
66
67
 
67
68
  h.reject! { |_, v| is_blank?(v) }
68
69
 
69
- uri = Addressable::URI.new
70
- uri.query_values = h
71
- url_folder_path << '?' << uri.query
72
-
73
- # puts url_folder_path
70
+ url_folder_path << '?' << Utils.format_url_params(h)
74
71
 
75
72
  url_folder_path
76
73
  end
@@ -80,6 +77,8 @@ module Zm
80
77
  end
81
78
 
82
79
  def send_file_url(folder_path, fmt, types, resolve)
80
+ raise ZmError, 'home_url is not defined' if @parent.home_url.nil?
81
+
83
82
  # resolve=[modfy|replace|reset|skip]
84
83
  url_folder_path = File.join(@parent.home_url, folder_path.to_s)
85
84
 
@@ -87,16 +86,13 @@ module Zm
87
86
  fmt: fmt,
88
87
  types: query_value_types(types, fmt),
89
88
  resolve: resolve,
90
- auth: 'qp',
91
- zauthtoken: @parent.token
89
+ auth: 'co'
92
90
  }
93
91
 
94
92
  h.reject! { |_, v| is_blank?(v) }
95
93
 
96
- uri = Addressable::URI.new
97
- uri.query_values = h
94
+ url_folder_path << '?' << Utils.format_url_params(h)
98
95
 
99
- url_folder_path << '?' << uri.query
100
96
  url_folder_path
101
97
  end
102
98
 
@@ -110,19 +106,19 @@ module Zm
110
106
  end
111
107
 
112
108
  def upload_attachment_url
113
- @rac.cookie("ZM_AUTH_TOKEN=#{@parent.token}")
114
- uri = Addressable::URI.new
115
- uri.query_values = {
109
+ h = {
116
110
  fmt: 'extended,raw'
117
111
  }
118
- File.join(@parent.public_url, 'service/upload') << '?' << uri.query
112
+
113
+ File.join(@parent.public_url, 'service/upload') << '?' << Utils.format_url_params(h)
119
114
  end
120
115
 
121
116
  def query_ids(ids)
122
117
  return {} if ids.nil?
123
118
  return { id: ids } unless ids.is_a?(Array)
124
119
  return { id: ids.first } if ids.length == 1
125
- return { list: ids.join(',') }
120
+
121
+ { list: ids.join(',') }
126
122
  end
127
123
 
128
124
  def query_value_types(types, fmt)
@@ -8,9 +8,9 @@ module Zm
8
8
  end
9
9
 
10
10
  module VERSION
11
- MAJOR = 0
12
- MINOR = 18
13
- TINY = 3
11
+ MAJOR = 2
12
+ MINOR = 0
13
+ TINY = 2
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
16
16
  end
data/lib/zm/client.rb CHANGED
@@ -1,5 +1,8 @@
1
- require 'zm/client/config'
1
+ # frozen_string_literal: true
2
+
3
+ require 'zm/modules/inspector'
2
4
  require 'zm/client/version'
3
5
  require 'zm/client/constant'
4
6
  require 'zm/client/base'
5
7
  require 'zm/client/cluster'
8
+ require 'zm/client/soap_request'
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'zm/modules/zm_logger'
4
+ require 'zm/modules/zm_model'
5
+ require 'zm/modules/missing_method_static_collection'
6
+
7
+ require 'zm/modules/has_soap_admin_connector'
8
+
9
+ require 'zm/modules/belongs_to_folder'
10
+ require 'zm/modules/belongs_to_tag'
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zm
4
+ module Client
5
+ module BelongsToFolder
6
+ def folder_id
7
+ @l
8
+ end
9
+
10
+ def folder=(folder)
11
+ return unless @l != folder.id
12
+
13
+ @l = folder.id
14
+ @folder = folder
15
+ end
16
+
17
+ def folder
18
+ @folder || folder!
19
+ end
20
+
21
+ def folder!
22
+ @folder = @parent.folders.all.find { |folder| folder.id == @l }
23
+ end
24
+
25
+ def move!(new_folder_id)
26
+ new_folder_id = new_folder_id.id if new_folder_id.is_a?(Zm::Client::Folder)
27
+ @parent.sacc.invoke(jsns_builder.to_move(new_folder_id))
28
+ @l = new_folder_id
29
+ folder!
30
+ end
31
+
32
+ def trash!
33
+ @parent.sacc.invoke(jsns_builder.to_trash)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zm
4
+ module Client
5
+ module BelongsToTag
6
+ def tags
7
+ @tags ||= AccountObject::TagsCollection.new(self)
8
+ end
9
+ end
10
+ end
11
+ end