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.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/Gemfile +2 -2
- data/README.md +7 -0
- data/lib/zm/client/account/account.rb +31 -308
- data/lib/zm/client/account/account_aliases_collection.rb +52 -0
- data/lib/zm/client/account/account_dls_membership_collection.rb +4 -1
- data/lib/zm/client/account/account_dls_owner_collection.rb +8 -1
- data/lib/zm/client/account/account_jsns_builder.rb +77 -0
- data/lib/zm/client/account/account_jsns_initializer.rb +9 -24
- data/lib/zm/client/account/accounts_builder.rb +0 -1
- data/lib/zm/client/account/accounts_collection.rb +32 -8
- data/lib/zm/client/account.rb +1 -0
- data/lib/zm/client/ace/ace.rb +6 -22
- data/lib/zm/client/ace/ace_jsns_builder.rb +15 -16
- data/lib/zm/client/ace/ace_jsns_initializer.rb +0 -1
- data/lib/zm/client/ace/aces_builder.rb +0 -1
- data/lib/zm/client/ace/aces_collection.rb +2 -18
- data/lib/zm/client/appointment/appointment.rb +38 -30
- data/lib/zm/client/appointment/appointment_jsns_builder.rb +22 -34
- data/lib/zm/client/appointment/appointment_jsns_initializer.rb +6 -3
- data/lib/zm/client/appointment/appointments_builder.rb +6 -18
- data/lib/zm/client/appointment/appointments_collection.rb +25 -4
- data/lib/zm/client/backup/backup.rb +4 -32
- data/lib/zm/client/backup/backup_jsns_initializer.rb +26 -0
- data/lib/zm/client/backup/backups_builder.rb +8 -13
- data/lib/zm/client/backup/backups_collection.rb +2 -1
- data/lib/zm/client/backup.rb +1 -0
- data/lib/zm/client/base/account_search_objects_collection.rb +34 -13
- data/lib/zm/client/base/admin_objects_collection.rb +82 -17
- data/lib/zm/client/base/base_account_jsns_builder.rb +98 -0
- data/lib/zm/client/base/base_jsns_builder.rb +47 -0
- data/lib/zm/client/base/base_jsns_initializer.rb +43 -12
- data/lib/zm/client/base/ldap_filter.rb +20 -5
- data/lib/zm/client/base/mailbox_infos_collection.rb +68 -0
- data/lib/zm/client/base/mailbox_object.rb +299 -0
- data/lib/zm/client/base/mailbox_prefs_collection.rb +75 -0
- data/lib/zm/client/base/object.rb +28 -62
- data/lib/zm/client/base/objects_builder.rb +4 -10
- data/lib/zm/client/base/objects_collection.rb +13 -10
- data/lib/zm/client/base/zimbra_attribute.rb +10 -8
- data/lib/zm/client/base/zimbra_attributes_collection.rb +154 -10
- data/lib/zm/client/base.rb +5 -5
- data/lib/zm/client/cluster/cluster.rb +43 -39
- data/lib/zm/client/cluster/cluster_config.rb +5 -5
- data/lib/zm/client/common/recipients.rb +3 -3
- data/lib/zm/client/common/token_metadata.rb +4 -1
- data/lib/zm/client/common/utils.rb +57 -0
- data/lib/zm/client/common.rb +2 -1
- data/lib/zm/client/connector/rest_account.rb +15 -28
- data/lib/zm/client/connector/soap_account.rb +38 -441
- data/lib/zm/client/connector/soap_admin.rb +16 -552
- data/lib/zm/client/connector/soap_base.rb +30 -21
- data/lib/zm/client/connector/soap_error.rb +1 -3
- data/lib/zm/client/constant.rb +21 -11
- data/lib/zm/client/contact/contact.rb +42 -83
- data/lib/zm/client/contact/contact_jsns_builder.rb +60 -0
- data/lib/zm/client/contact/contact_jsns_initializer.rb +78 -0
- data/lib/zm/client/contact/contact_member.rb +29 -28
- data/lib/zm/client/contact/contact_members_collection.rb +44 -0
- data/lib/zm/client/contact/contacts_builder.rb +8 -1
- data/lib/zm/client/contact/contacts_collection.rb +17 -1
- data/lib/zm/client/contact/group_contact_jsns_builder.rb +51 -0
- data/lib/zm/client/contact/mod_group_contact.rb +4 -67
- data/lib/zm/client/contact.rb +5 -1
- data/lib/zm/client/cos/cos.rb +35 -40
- data/lib/zm/client/cos/cos_accounts_collection.rb +19 -0
- data/lib/zm/client/cos/cos_domains_collection.rb +20 -0
- data/lib/zm/client/cos/cos_jsns_builder.rb +72 -0
- data/lib/zm/client/cos/cos_jsns_initializer.rb +29 -0
- data/lib/zm/client/cos/cos_servers_collection.rb +60 -0
- data/lib/zm/client/cos/coses_builder.rb +8 -1
- data/lib/zm/client/cos/coses_collection.rb +8 -5
- data/lib/zm/client/cos.rb +5 -0
- data/lib/zm/client/datasource/datasource.rb +69 -0
- data/lib/zm/client/datasource/datasource_jsns_builder.rb +32 -0
- data/lib/zm/client/datasource/datasource_jsns_initializer.rb +27 -0
- data/lib/zm/client/datasource/datasources_builder.rb +29 -0
- data/lib/zm/client/datasource/datasources_collection.rb +21 -0
- data/lib/zm/client/datasource.rb +7 -0
- data/lib/zm/client/distributionlist/distributionlist.rb +52 -118
- data/lib/zm/client/distributionlist/distributionlist_aces_collection.rb +31 -0
- data/lib/zm/client/distributionlist/distributionlist_aliases_collection.rb +53 -0
- data/lib/zm/client/distributionlist/distributionlist_jsns_builder.rb +82 -0
- data/lib/zm/client/distributionlist/distributionlist_jsns_initializer.rb +32 -0
- data/lib/zm/client/distributionlist/distributionlist_members_collection.rb +47 -0
- data/lib/zm/client/distributionlist/distributionlist_owners_collection.rb +52 -0
- data/lib/zm/client/distributionlist/distributionlists_builder.rb +8 -1
- data/lib/zm/client/distributionlist/distributionlists_collection.rb +8 -9
- data/lib/zm/client/distributionlist/dls_membership_collection.rb +4 -1
- data/lib/zm/client/distributionlist.rb +2 -0
- data/lib/zm/client/document/document.rb +27 -24
- data/lib/zm/client/document/document_jsns_builder.rb +18 -0
- data/lib/zm/client/document/document_jsns_initializer.rb +44 -0
- data/lib/zm/client/document/documents_builder.rb +6 -16
- data/lib/zm/client/document/documents_collection.rb +17 -67
- data/lib/zm/client/document.rb +2 -0
- data/lib/zm/client/domain/domain.rb +39 -55
- data/lib/zm/client/domain/domain_accounts_collection.rb +1 -1
- data/lib/zm/client/domain/domain_distributionlists_collection.rb +13 -0
- data/lib/zm/client/domain/domain_jsns_builder.rb +69 -0
- data/lib/zm/client/domain/domain_jsns_initializer.rb +25 -0
- data/lib/zm/client/domain/domain_resources_collection.rb +13 -0
- data/lib/zm/client/domain/domains_builder.rb +8 -1
- data/lib/zm/client/domain/domains_collection.rb +7 -7
- data/lib/zm/client/domain.rb +4 -0
- data/lib/zm/client/filter_rule.rb +7 -0
- data/lib/zm/client/filter_rules/filter_rule.rb +10 -0
- data/lib/zm/client/filter_rules/filter_rule_jsns_initializer.rb +24 -0
- data/lib/zm/client/filter_rules/filter_rules_builder.rb +21 -0
- data/lib/zm/client/filter_rules/filter_rules_collection.rb +21 -0
- data/lib/zm/client/filter_rules/outgoing_filter_rules_collection.rb +15 -0
- data/lib/zm/client/folder/folder.rb +77 -61
- data/lib/zm/client/folder/folder_grant.rb +34 -14
- data/lib/zm/client/folder/folder_grant_jsns_builder.rb +15 -4
- data/lib/zm/client/folder/folder_grants_collection.rb +36 -2
- data/lib/zm/client/folder/folder_jsns_builder.rb +22 -48
- data/lib/zm/client/folder/folder_jsns_initializer.rb +34 -17
- data/lib/zm/client/folder/folder_retention_policies_collection.rb +2 -3
- data/lib/zm/client/folder/folder_retention_policy.rb +0 -1
- data/lib/zm/client/folder/folders_builder.rb +7 -10
- data/lib/zm/client/folder/folders_collection.rb +5 -2
- data/lib/zm/client/folder/folders_jsns_builder.rb +3 -1
- data/lib/zm/client/folder/mod_document_folder.rb +10 -6
- data/lib/zm/client/folder.rb +1 -1
- data/lib/zm/client/identity/identities_builder.rb +8 -1
- data/lib/zm/client/identity/identities_collection.rb +2 -1
- data/lib/zm/client/identity/identity.rb +34 -42
- data/lib/zm/client/identity/identity_jsns_builder.rb +57 -0
- data/lib/zm/client/identity/identity_jsns_initializer.rb +29 -0
- data/lib/zm/client/identity.rb +3 -1
- data/lib/zm/client/license/license.rb +9 -22
- data/lib/zm/client/license/license_jsns_initializer.rb +20 -0
- data/lib/zm/client/license/licenses_collection.rb +3 -13
- data/lib/zm/client/license.rb +2 -1
- data/lib/zm/client/message/attachments_collection.rb +55 -0
- data/lib/zm/client/message/message.rb +36 -264
- data/lib/zm/client/message/message_flags.rb +107 -0
- data/lib/zm/client/message/message_jsns_builder.rb +85 -0
- data/lib/zm/client/message/message_jsns_initializer.rb +71 -0
- data/lib/zm/client/message/message_recipients.rb +59 -0
- data/lib/zm/client/message/messages_builder.rb +7 -18
- data/lib/zm/client/message/messages_collection.rb +17 -2
- data/lib/zm/client/message.rb +5 -0
- data/lib/zm/client/mountpoint/mountpoint.rb +43 -20
- data/lib/zm/client/mountpoint/mountpoint_jsns_builder.rb +8 -53
- data/lib/zm/client/mountpoint/mountpoint_jsns_initializer.rb +22 -13
- data/lib/zm/client/mountpoint/mountpoints_builder.rb +4 -5
- data/lib/zm/client/mountpoint/mountpoints_collection.rb +1 -2
- data/lib/zm/client/mta_queue/mta_queue.rb +13 -28
- data/lib/zm/client/mta_queue/mta_queue_jsns_builder.rb +41 -0
- data/lib/zm/client/mta_queue/mta_queue_jsns_initializer.rb +23 -0
- data/lib/zm/client/mta_queue/mta_queues_builder.rb +4 -8
- data/lib/zm/client/mta_queue/mta_queues_collection.rb +8 -27
- data/lib/zm/client/mta_queue.rb +2 -0
- data/lib/zm/client/mta_queue_item/mta_queue_item.rb +4 -31
- data/lib/zm/client/mta_queue_item/mta_queue_item_jsns_initializer.rb +33 -0
- data/lib/zm/client/mta_queue_item/mta_queue_items_builder.rb +4 -9
- data/lib/zm/client/mta_queue_item/mta_queue_items_collection.rb +7 -42
- data/lib/zm/client/mta_queue_item.rb +2 -1
- data/lib/zm/client/resource/resource.rb +24 -91
- data/lib/zm/client/resource/resource_jsns_builder.rb +79 -0
- data/lib/zm/client/resource/resource_jsns_initializer.rb +29 -0
- data/lib/zm/client/resource/resources_builder.rb +8 -1
- data/lib/zm/client/resource/resources_collection.rb +9 -7
- data/lib/zm/client/resource.rb +2 -0
- data/lib/zm/client/search_folder/search_folder.rb +38 -16
- data/lib/zm/client/search_folder/search_folder_jsns_builder.rb +38 -19
- data/lib/zm/client/search_folder/search_folder_jsns_initializer.rb +17 -13
- data/lib/zm/client/search_folder/search_folders_builder.rb +0 -1
- data/lib/zm/client/search_folder/search_folders_collection.rb +2 -1
- data/lib/zm/client/server/server.rb +16 -488
- data/lib/zm/client/server/server_jsns_initializer.rb +16 -0
- data/lib/zm/client/server/servers_builder.rb +8 -1
- data/lib/zm/client/server/servers_collection.rb +13 -5
- data/lib/zm/client/server.rb +1 -0
- data/lib/zm/client/share/share.rb +5 -43
- data/lib/zm/client/share/share_jsns_initializer.rb +32 -0
- data/lib/zm/client/share/share_mountpoints_collection.rb +38 -0
- data/lib/zm/client/share/shares_builder.rb +8 -1
- data/lib/zm/client/share/shares_collection.rb +11 -16
- data/lib/zm/client/share.rb +2 -0
- data/lib/zm/client/signature/signature.rb +25 -29
- data/lib/zm/client/signature/signature_jsns_builder.rb +31 -13
- data/lib/zm/client/signature/signature_jsns_initializer.rb +16 -12
- data/lib/zm/client/signature/signatures_builder.rb +1 -2
- data/lib/zm/client/signature/signatures_collection.rb +2 -1
- data/lib/zm/client/signature.rb +1 -1
- data/lib/zm/client/soap_request/account_soap_constants.rb +76 -0
- data/lib/zm/client/soap_request/admin_soap_constants.rb +214 -0
- data/lib/zm/client/soap_request/mail_soap_constants.rb +162 -0
- data/lib/zm/client/soap_request/soap_constants.rb +55 -0
- data/lib/zm/client/soap_request/soap_context.rb +38 -0
- data/lib/zm/client/soap_request/soap_element.rb +90 -0
- data/lib/zm/client/soap_request.rb +8 -0
- data/lib/zm/client/tag/account_object_tags_collection.rb +65 -0
- data/lib/zm/client/tag/tag.rb +34 -22
- data/lib/zm/client/tag/tag_jsns_builder.rb +14 -35
- data/lib/zm/client/tag/tag_jsns_initializer.rb +4 -6
- data/lib/zm/client/tag/tags_builder.rb +0 -1
- data/lib/zm/client/tag/tags_collection.rb +2 -1
- data/lib/zm/client/tag.rb +1 -0
- data/lib/zm/client/task/task.rb +18 -49
- data/lib/zm/client/task/task_jsns_initializer.rb +45 -0
- data/lib/zm/client/task/tasks_builder.rb +6 -16
- data/lib/zm/client/task/tasks_collection.rb +29 -0
- data/lib/zm/client/task.rb +1 -0
- data/lib/zm/client/upload/upload.rb +26 -30
- data/lib/zm/client/version.rb +3 -3
- data/lib/zm/client.rb +4 -1
- data/lib/zm/modules/base.rb +10 -0
- data/lib/zm/modules/belongs_to_folder.rb +37 -0
- data/lib/zm/modules/belongs_to_tag.rb +11 -0
- data/lib/zm/modules/common/zimbra-attrs.json +1 -1
- data/lib/zm/modules/has_soap_admin_connector.rb +12 -0
- data/lib/zm/modules/inspector.rb +24 -0
- data/lib/zm/modules/missing_method_static_collection.rb +13 -0
- data/lib/zm/modules/zm_logger.rb +3 -1
- data/lib/zm/modules/zm_model.rb +4 -2
- data/lib/zm/utils/thread_pool.rb +4 -2
- data/lib/zm-ruby-client.rb +2 -0
- data/zm-ruby-client.gemspec +12 -9
- metadata +93 -34
- data/lib/zm/client/base/account_object.rb +0 -51
- data/lib/zm/client/base/admin_object.rb +0 -51
- data/lib/zm/client/base/folder_object.rb +0 -41
- data/lib/zm/client/config.rb +0 -12
- data/lib/zm/client/data_source.rb +0 -5
- data/lib/zm/modules/common/account_common.rb +0 -71
- data/lib/zm/modules/common/cos_common.rb +0 -463
- data/lib/zm/modules/common/dl_common.rb +0 -38
- data/lib/zm/modules/common/identity_common.rb +0 -19
- data/lib/zm/modules/common/resource_common.rb +0 -59
- data/lib/zm/modules/common/signature_common.rb +0 -16
- data/lib/zm/modules/common/zimbra-attrs.json.bak +0 -1
- data/test/accounts.rb +0 -89
- data/test/ace.rb +0 -50
- data/test/cluster.rb +0 -41
- data/test/cluster_config.rb +0 -30
- data/test/cluster_zimbra_attributes.rb +0 -38
- data/test/coses.rb +0 -26
- data/test/domains.rb +0 -70
- data/test/folder.rb +0 -125
- data/test/folder_grant.rb +0 -51
- data/test/mountpoint.rb +0 -49
- data/test/retention_policies.rb +0 -40
- data/test/search_folder.rb +0 -67
- data/test/signature.rb +0 -53
- data/test/tag.rb +0 -65
- data/test/zimbra_attributes.rb +0 -35
data/lib/zm/client/task/task.rb
CHANGED
@@ -3,71 +3,40 @@
|
|
3
3
|
module Zm
|
4
4
|
module Client
|
5
5
|
# class for account task
|
6
|
-
class Task < Base::
|
6
|
+
class Task < Base::Object
|
7
|
+
include BelongsToFolder
|
8
|
+
include BelongsToTag
|
7
9
|
|
8
|
-
|
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(
|
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
|
-
|
39
|
-
# init_from_json(rep[:Body][:CreateTaskResponse][:task].first)
|
19
|
+
raise NotImplementedError
|
40
20
|
end
|
41
21
|
|
42
|
-
def
|
43
|
-
|
44
|
-
# init_from_json(rep[:Body][:GetTaskResponse][:task].first)
|
22
|
+
def modify!
|
23
|
+
raise NotImplementedError
|
45
24
|
end
|
46
25
|
|
47
|
-
def
|
48
|
-
|
26
|
+
def update!(*args)
|
27
|
+
raise NotImplementedError
|
49
28
|
end
|
50
29
|
|
51
|
-
def
|
52
|
-
|
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
|
63
|
-
|
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
|
-
|
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
|
-
|
9
|
-
@
|
8
|
+
super(parent, json)
|
9
|
+
@json_item_key = :task
|
10
10
|
end
|
11
11
|
|
12
12
|
def make
|
13
|
-
|
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
|
-
|
27
|
-
|
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
|
data/lib/zm/client/task.rb
CHANGED
@@ -5,16 +5,19 @@ module Zm
|
|
5
5
|
# class for upload account file
|
6
6
|
class Upload
|
7
7
|
FMT_TYPES_H = {
|
8
|
-
|
9
|
-
|
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
|
-
|
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: '
|
41
|
+
emptyname: 'Empty',
|
37
42
|
charset: 'UTF-8',
|
38
|
-
auth: '
|
39
|
-
zauthtoken: @parent.token,
|
43
|
+
auth: 'co',
|
40
44
|
disp: 'a'
|
41
45
|
}
|
42
46
|
|
43
|
-
|
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: '
|
60
|
+
emptyname: 'Empty',
|
59
61
|
charset: 'UTF-8',
|
60
|
-
auth: '
|
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
|
-
|
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: '
|
91
|
-
zauthtoken: @parent.token
|
89
|
+
auth: 'co'
|
92
90
|
}
|
93
91
|
|
94
92
|
h.reject! { |_, v| is_blank?(v) }
|
95
93
|
|
96
|
-
|
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
|
-
|
114
|
-
uri = Addressable::URI.new
|
115
|
-
uri.query_values = {
|
109
|
+
h = {
|
116
110
|
fmt: 'extended,raw'
|
117
111
|
}
|
118
|
-
|
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
|
-
|
120
|
+
|
121
|
+
{ list: ids.join(',') }
|
126
122
|
end
|
127
123
|
|
128
124
|
def query_value_types(types, fmt)
|
data/lib/zm/client/version.rb
CHANGED
data/lib/zm/client.rb
CHANGED
@@ -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
|