zm-ruby-client 0.18.5 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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 -308
  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 +68 -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 +15 -28
  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 +30 -21
  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 +39 -55
  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 -20
  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 +1 -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 = 5
11
+ MAJOR = 2
12
+ MINOR = 0
13
+ TINY = 0
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