zm-ruby-client 3.0.1 → 3.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +96 -0
- data/README.md +128 -27
- data/VERSION +1 -1
- data/lib/zm/client/account/account.rb +12 -19
- data/lib/zm/client/account/account_aliases_collection.rb +6 -4
- data/lib/zm/client/account/account_dls_membership_collection.rb +4 -3
- data/lib/zm/client/account/account_dls_owner_collection.rb +3 -2
- data/lib/zm/client/account/account_jsns_builder.rb +10 -10
- data/lib/zm/client/account/accounts_collection.rb +27 -16
- data/lib/zm/client/ace/ace.rb +3 -6
- data/lib/zm/client/ace/ace_jsns_builder.rb +6 -6
- data/lib/zm/client/appointment/appointment.rb +32 -14
- data/lib/zm/client/appointment/appointment_jsns_builder.rb +5 -5
- data/lib/zm/client/appointment/appointment_jsns_initializer.rb +6 -1
- data/lib/zm/client/appointment/appointments_collection.rb +12 -9
- data/lib/zm/client/backup/backup.rb +5 -2
- data/lib/zm/client/backup/backups_collection.rb +3 -2
- data/lib/zm/client/base/account_objects_collection.rb +1 -0
- data/lib/zm/client/base/account_search_objects_collection.rb +6 -6
- data/lib/zm/client/base/admin_objects_collection.rb +60 -7
- data/lib/zm/client/base/base_account_jsns_builder.rb +89 -87
- data/lib/zm/client/base/base_jsns_builder.rb +3 -3
- data/lib/zm/client/base/base_jsns_initializer.rb +20 -15
- data/lib/zm/client/base/mailbox_infos_collection.rb +92 -90
- data/lib/zm/client/base/mailbox_object.rb +49 -160
- data/lib/zm/client/base/mailbox_prefs_collection.rb +54 -52
- data/lib/zm/client/base/object.rb +19 -2
- data/lib/zm/client/base/objects_collection.rb +10 -10
- data/lib/zm/client/base/zimbra_attribute.rb +28 -42
- data/lib/zm/client/base/zimbra_attributes_collection.rb +38 -24
- data/lib/zm/client/{cluster/batch_request.rb → batch_request.rb} +1 -1
- data/lib/zm/client/cluster/cluster.rb +24 -61
- data/lib/zm/client/cluster/cluster_config.rb +35 -15
- data/lib/zm/client/contact/contact.rb +15 -13
- data/lib/zm/client/contact/contact_jsns_builder.rb +9 -6
- data/lib/zm/client/contact/contact_jsns_initializer.rb +2 -2
- data/lib/zm/client/contact/contact_member.rb +3 -3
- data/lib/zm/client/contact/contact_members_collection.rb +3 -3
- data/lib/zm/client/contact/contacts_builder.rb +1 -1
- data/lib/zm/client/contact/contacts_collection.rb +2 -2
- data/lib/zm/client/contact/group_contact_jsns_builder.rb +18 -14
- data/lib/zm/client/contact/mod_group_contact.rb +12 -8
- data/lib/zm/client/cos/cos.rb +15 -31
- data/lib/zm/client/cos/cos_jsns_builder.rb +21 -21
- data/lib/zm/client/cos/coses_collection.rb +11 -6
- data/lib/zm/client/datasource/datasource.rb +3 -9
- data/lib/zm/client/datasource/datasource_jsns_builder.rb +4 -4
- data/lib/zm/client/datasource/datasources_builder.rb +1 -1
- data/lib/zm/client/datasource/datasources_collection.rb +2 -2
- data/lib/zm/client/deprecated_constants.rb +36 -0
- data/lib/zm/client/distributionlist/distributionlist.rb +15 -47
- data/lib/zm/client/distributionlist/distributionlist_aces_collection.rb +4 -4
- data/lib/zm/client/distributionlist/distributionlist_aliases_collection.rb +7 -5
- data/lib/zm/client/distributionlist/distributionlist_jsns_builder.rb +29 -41
- data/lib/zm/client/distributionlist/distributionlist_jsns_initializer.rb +14 -3
- data/lib/zm/client/distributionlist/distributionlist_members_collection.rb +14 -10
- data/lib/zm/client/distributionlist/distributionlist_owners_collection.rb +13 -13
- data/lib/zm/client/distributionlist/distributionlists_collection.rb +15 -7
- data/lib/zm/client/distributionlist/dls_membership_collection.rb +8 -6
- data/lib/zm/client/document/document.rb +5 -11
- data/lib/zm/client/document/document_jsns_builder.rb +2 -2
- data/lib/zm/client/document/documents_collection.rb +4 -4
- data/lib/zm/client/domain/domain.rb +8 -25
- data/lib/zm/client/domain/domain_jsns_builder.rb +13 -13
- data/lib/zm/client/domain/domains_collection.rb +13 -6
- data/lib/zm/client/filter_rules/filter_rules_collection.rb +1 -1
- data/lib/zm/client/filter_rules/outgoing_filter_rules_collection.rb +1 -1
- data/lib/zm/client/folder/folder.rb +34 -21
- data/lib/zm/client/folder/folder_default.rb +39 -0
- data/lib/zm/client/folder/folder_grant_jsns_builder.rb +3 -3
- data/lib/zm/client/folder/folder_grants_collection.rb +1 -1
- data/lib/zm/client/folder/folder_jsns_builder.rb +12 -12
- data/lib/zm/client/folder/folder_jsns_initializer.rb +1 -1
- data/lib/zm/client/folder/folder_retention_policies_collection.rb +6 -2
- data/lib/zm/client/folder/folder_view.rb +15 -0
- data/lib/zm/client/folder/folders_jsns_builder.rb +1 -1
- data/lib/zm/client/folder/mod_document_folder.rb +16 -12
- data/lib/zm/client/identity/identities_collection.rb +1 -1
- data/lib/zm/client/identity/identity.rb +3 -9
- data/lib/zm/client/identity/identity_jsns_builder.rb +8 -8
- data/lib/zm/client/{base/ldap_filter.rb → ldap_filter.rb} +1 -1
- data/lib/zm/client/license/licenses_collection.rb +1 -1
- data/lib/zm/client/mailbox/mailbox_item_concern.rb +0 -2
- data/lib/zm/client/message/message.rb +14 -19
- data/lib/zm/client/message/message_attachments_collection.rb +39 -0
- data/lib/zm/client/message/message_flags_collection.rb +130 -0
- data/lib/zm/client/message/message_jsns_builder.rb +4 -8
- data/lib/zm/client/message/message_jsns_initializer.rb +4 -4
- data/lib/zm/client/message/message_recipients.rb +19 -43
- data/lib/zm/client/message/messages_collection.rb +20 -4
- data/lib/zm/client/mountpoint/{mountpoint.rb → mount_point.rb} +4 -10
- data/lib/zm/client/mountpoint/{mountpoint_jsns_builder.rb → mount_point_jsns_builder.rb} +3 -3
- data/lib/zm/client/mountpoint/{mountpoint_jsns_initializer.rb → mount_point_jsns_initializer.rb} +1 -1
- data/lib/zm/client/mountpoint/{mountpoints_builder.rb → mount_points_builder.rb} +1 -1
- data/lib/zm/client/mta_queue/mta_queue.rb +4 -16
- data/lib/zm/client/mta_queue/mta_queue_action.rb +12 -0
- data/lib/zm/client/mta_queue/mta_queue_jsns_builder.rb +7 -7
- data/lib/zm/client/mta_queue/mta_queue_name.rb +14 -0
- data/lib/zm/client/mta_queue/mta_queues_collection.rb +4 -3
- data/lib/zm/client/mta_queue_item/mta_queue_items_collection.rb +1 -0
- data/lib/zm/client/recipient.rb +21 -0
- data/lib/zm/client/{common/recipients.rb → recipients.rb} +0 -16
- data/lib/zm/client/resource/resource.rb +3 -7
- data/lib/zm/client/resource/resource_jsns_builder.rb +13 -13
- data/lib/zm/client/resource/resources_collection.rb +20 -7
- data/lib/zm/client/search_folder/search_folder.rb +4 -11
- data/lib/zm/client/search_folder/search_folder_jsns_builder.rb +6 -6
- data/lib/zm/client/search_folder/search_folders_collection.rb +1 -1
- data/lib/zm/client/server/server.rb +16 -22
- data/lib/zm/client/server/server_services.rb +26 -0
- data/lib/zm/client/server/servers_collection.rb +6 -6
- data/lib/zm/client/share/share.rb +2 -5
- data/lib/zm/client/share/shares_builder.rb +1 -1
- data/lib/zm/client/share/shares_collection.rb +5 -4
- data/lib/zm/client/signature/signature.rb +7 -13
- data/lib/zm/client/signature/signature_jsns_builder.rb +13 -13
- data/lib/zm/client/signature/signature_jsns_initializer.rb +2 -2
- data/lib/zm/client/signature/signatures_collection.rb +1 -1
- data/lib/zm/client/tag/account_object_tags_collection.rb +45 -47
- data/lib/zm/client/tag/tag.rb +3 -9
- data/lib/zm/client/tag/tag_jsns_builder.rb +3 -3
- data/lib/zm/client/tag/tags_builder.rb +1 -1
- data/lib/zm/client/tag/tags_collection.rb +2 -2
- data/lib/zm/client/task/task.rb +2 -2
- data/lib/zm/client/task/tasks_collection.rb +2 -2
- data/lib/zm/client/token.rb +4 -1
- data/lib/zm/client/upload.rb +179 -1
- data/lib/zm/client/{common/utils.rb → utils.rb} +6 -3
- data/lib/zm/client/zm_logger.rb +1 -1
- data/lib/zm/client.rb +227 -10
- data/lib/zm/connector/network_error_handler.rb +18 -0
- data/lib/zm/{client/connector → connector}/rest_connector.rb +46 -40
- data/lib/zm/{client/connector/soap_account.rb → connector/soap_account_connector.rb} +15 -17
- data/lib/zm/{client/connector/soap_admin.rb → connector/soap_admin_connector.rb} +3 -5
- data/lib/zm/connector/soap_base_connector.rb +115 -0
- data/lib/zm/connector.rb +13 -0
- data/lib/zm/error/auth_error.rb +8 -0
- data/lib/zm/error/connection_error.rb +8 -0
- data/lib/zm/error/rest_error.rb +8 -0
- data/lib/zm/{client/connector → error}/soap_error.rb +1 -10
- data/lib/zm/error/zm_error.rb +8 -0
- data/lib/zm/error.rb +11 -0
- data/lib/zm/relationship/has_many.rb +22 -0
- data/lib/zm/relationship/jsns_builder.rb +21 -0
- data/lib/zm/relationship/relationship.rb +113 -0
- data/lib/zm/relationship/schema.rb +32 -0
- data/lib/zm/relationship.rb +5 -0
- data/lib/zm/{client/soap_request → soap_request}/request_methods_admin.rb +11 -5
- data/lib/zm/{client/soap_request → soap_request}/request_methods_mailbox.rb +1 -1
- data/lib/zm/{client/soap_request/account_soap_constants.rb → soap_request/soap_account_constants.rb} +1 -1
- data/lib/zm/{client/soap_request/admin_soap_constants.rb → soap_request/soap_admin_constants.rb} +1 -1
- data/lib/zm/{client/soap_request → soap_request}/soap_constants.rb +1 -1
- data/lib/zm/{client/soap_request → soap_request}/soap_context.rb +13 -5
- data/lib/zm/{client/soap_request → soap_request}/soap_element.rb +1 -1
- data/lib/zm/{client/soap_request/mail_soap_constants.rb → soap_request/soap_mail_constants.rb} +1 -1
- data/lib/zm/soap_request.rb +14 -0
- data/lib/zm/support/cache/entry.rb +3 -3
- data/lib/zm/support/cache/file_store.rb +4 -6
- data/lib/zm/support/cache/null_store.rb +2 -4
- data/lib/zm/support/cache/store.rb +17 -9
- data/lib/zm/support/cache.rb +13 -8
- data/lib/zm/support.rb +7 -0
- data/lib/zm/{modules → utils}/belongs_to_folder.rb +1 -1
- data/lib/zm/{modules → utils}/belongs_to_tag.rb +2 -2
- data/lib/zm/utils/content_part.rb +9 -0
- data/lib/zm/utils/content_type.rb +11 -0
- data/lib/zm/{modules → utils}/has_soap_admin_connector.rb +1 -1
- data/lib/zm/utils/inspector.rb +26 -0
- data/lib/zm/utils/log_filter.rb +30 -0
- data/lib/zm/utils/missing_method_static_collection.rb +17 -0
- data/lib/zm/utils/regex.rb +11 -0
- data/lib/zm/utils/search_utils.rb +13 -0
- data/lib/zm/utils.rb +16 -0
- data/lib/zm-ruby-client.rb +12 -0
- data/sig/zm/client/admin_objects.rbs +261 -0
- data/sig/zm/client/base.rbs +191 -0
- data/sig/zm/client/cluster.rbs +152 -0
- data/sig/zm/client/mailbox.rbs +766 -0
- data/sig/zm/error.rbs +23 -0
- metadata +99 -91
- data/.gitignore +0 -59
- data/.rubocop.yml +0 -6
- data/.ruby-version +0 -1
- data/Gemfile +0 -11
- data/SECURITY.md +0 -21
- data/bin/console +0 -11
- data/lib/zm/client/account.rb +0 -9
- data/lib/zm/client/ace.rb +0 -7
- data/lib/zm/client/appointment.rb +0 -7
- data/lib/zm/client/backup.rb +0 -6
- data/lib/zm/client/base.rb +0 -21
- data/lib/zm/client/cluster.rb +0 -4
- data/lib/zm/client/common/message.rb +0 -10
- data/lib/zm/client/common.rb +0 -5
- data/lib/zm/client/connector/soap_base.rb +0 -104
- data/lib/zm/client/constant.rb +0 -229
- data/lib/zm/client/contact.rb +0 -11
- data/lib/zm/client/cos.rb +0 -10
- data/lib/zm/client/datasource.rb +0 -7
- data/lib/zm/client/distributionlist.rb +0 -8
- data/lib/zm/client/document.rb +0 -7
- data/lib/zm/client/domain.rb +0 -10
- data/lib/zm/client/filter_rule.rb +0 -7
- data/lib/zm/client/folder.rb +0 -14
- data/lib/zm/client/identity.rb +0 -7
- data/lib/zm/client/license.rb +0 -5
- data/lib/zm/client/message/attachments_collection.rb +0 -55
- data/lib/zm/client/message/message_flags.rb +0 -115
- data/lib/zm/client/message.rb +0 -10
- data/lib/zm/client/mountpoint.rb +0 -7
- data/lib/zm/client/mta_queue.rb +0 -7
- data/lib/zm/client/mta_queue_item.rb +0 -6
- data/lib/zm/client/resource.rb +0 -7
- data/lib/zm/client/search_folder.rb +0 -7
- data/lib/zm/client/server.rb +0 -7
- data/lib/zm/client/share.rb +0 -7
- data/lib/zm/client/signature.rb +0 -7
- data/lib/zm/client/soap_request.rb +0 -11
- data/lib/zm/client/tag.rb +0 -8
- data/lib/zm/client/task.rb +0 -6
- data/lib/zm/client/upload/upload.rb +0 -160
- data/lib/zm/modules/base.rb +0 -9
- data/lib/zm/modules/common/zimbra-attrs.json +0 -58
- data/lib/zm/modules/inspector.rb +0 -24
- data/lib/zm/modules/missing_method_static_collection.rb +0 -13
- data/lib/zm/modules/zm_model.rb +0 -43
- data/zm-ruby-client.gemspec +0 -27
- /data/lib/zm/client/mountpoint/{mountpoints_collection.rb → mount_points_collection.rb} +0 -0
|
@@ -6,7 +6,7 @@ module Zm
|
|
|
6
6
|
class TagsCollection < Base::AccountObjectsCollection
|
|
7
7
|
def initialize(parent)
|
|
8
8
|
@child_class = Tag
|
|
9
|
-
@builder_class =
|
|
9
|
+
@builder_class = TagsBuilder
|
|
10
10
|
super
|
|
11
11
|
end
|
|
12
12
|
|
|
@@ -15,7 +15,7 @@ module Zm
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def build_query
|
|
18
|
-
SoapElement.mail(SoapMailConstants::GET_TAG_REQUEST)
|
|
18
|
+
SoapRequest::SoapElement.mail(SoapRequest::SoapMailConstants::GET_TAG_REQUEST)
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
end
|
data/lib/zm/client/task/task.rb
CHANGED
|
@@ -4,8 +4,8 @@ module Zm
|
|
|
4
4
|
module Client
|
|
5
5
|
# class for account task
|
|
6
6
|
class Task < Base::Object
|
|
7
|
-
include BelongsToFolder
|
|
8
|
-
include BelongsToTag
|
|
7
|
+
include Zm::Utils::BelongsToFolder
|
|
8
|
+
include Zm::Utils::BelongsToTag
|
|
9
9
|
|
|
10
10
|
attr_accessor :uid, :priority, :ptst, :percentComplete, :name, :loc, :alarm, :isOrg,
|
|
11
11
|
:id, :invId, :compNum, :l, :status, :class, :allDay, :f, :tn, :t, :rev,
|
|
@@ -14,7 +14,7 @@ module Zm
|
|
|
14
14
|
@sort_by = 'taskDueAsc'
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def find_each(offset: 0, limit: 500, &
|
|
17
|
+
def find_each(offset: 0, limit: 500, &)
|
|
18
18
|
(Time.at(0).year..(Time.now.year + 10)).each do |year|
|
|
19
19
|
@start_at = Time.new(year, 1, 1)
|
|
20
20
|
@end_at = Time.new(year, 12, 31)
|
|
@@ -23,7 +23,7 @@ module Zm
|
|
|
23
23
|
@limit = limit
|
|
24
24
|
|
|
25
25
|
while @more
|
|
26
|
-
build_response.each
|
|
26
|
+
build_response.each(&)
|
|
27
27
|
@offset += @limit
|
|
28
28
|
end
|
|
29
29
|
end
|
data/lib/zm/client/token.rb
CHANGED
|
@@ -21,7 +21,10 @@ module Zm
|
|
|
21
21
|
def metadatas
|
|
22
22
|
return @metadatas if defined? @metadatas
|
|
23
23
|
|
|
24
|
-
@metadatas = decoded.split(';').
|
|
24
|
+
@metadatas = decoded.split(';').each_with_object({}) do |part, h|
|
|
25
|
+
key, value = part.split(/=\d+:/, 2)
|
|
26
|
+
h[key] = value
|
|
27
|
+
end.freeze
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
def zimbra_id
|
data/lib/zm/client/upload.rb
CHANGED
|
@@ -1,3 +1,181 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
module Zm
|
|
4
|
+
module Client
|
|
5
|
+
# class for upload mailbox file
|
|
6
|
+
class Upload
|
|
7
|
+
FMT_TYPES_H = {
|
|
8
|
+
'ics' => FolderView::APPOINTMENT,
|
|
9
|
+
'vcard' => FolderView::CONTACT,
|
|
10
|
+
'eml' => FolderView::MESSAGE,
|
|
11
|
+
'vcf' => FolderView::CONTACT
|
|
12
|
+
}.freeze
|
|
13
|
+
|
|
14
|
+
AUTHORIZED_FOLDER_FMT = %w[zip tgz ics csv tar xml json rss atom html ifb].freeze
|
|
15
|
+
|
|
16
|
+
AUTHORIZED_PARAMS = %i[charset auth fmt id part list types emptyname disp resolve query meta csvfmt].freeze
|
|
17
|
+
|
|
18
|
+
AUTHORIZED_RESOLVE = %w[replace modify reset skip].freeze
|
|
19
|
+
|
|
20
|
+
attr_reader :rest_connector
|
|
21
|
+
attr_accessor :charset, :auth, :emptyname, :disp
|
|
22
|
+
|
|
23
|
+
def initialize(base_url, token, is_token_admin: false, **rest_options)
|
|
24
|
+
raise Zm::Error::ZmError, 'base_url must to be present' if base_url.nil?
|
|
25
|
+
|
|
26
|
+
@charset = 'UTF-8'
|
|
27
|
+
@auth = 'co'
|
|
28
|
+
@emptyname = 'Empty'
|
|
29
|
+
@disp = 'a'
|
|
30
|
+
|
|
31
|
+
yield(self) if block_given?
|
|
32
|
+
|
|
33
|
+
@base_url = base_url
|
|
34
|
+
|
|
35
|
+
@rest_connector = Zm::Connector::RestConnector.new(**rest_options) do |conn|
|
|
36
|
+
conn.cookies = if is_token_admin
|
|
37
|
+
"ZM_ADMIN_AUTH_TOKEN=#{token}"
|
|
38
|
+
else
|
|
39
|
+
"ZM_AUTH_TOKEN=#{token}"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def download_file(dest_file_path, file_id, type, fmt: nil)
|
|
45
|
+
fmt ||= File.extname(dest_file_path)[1..]
|
|
46
|
+
type ||= FMT_TYPES_H[fmt]
|
|
47
|
+
|
|
48
|
+
raise Zm::Error::RestError, 'Invalid fmt type' if type.nil? && fmt.nil?
|
|
49
|
+
|
|
50
|
+
remote_url = download_file_url(fmt, type, file_id)
|
|
51
|
+
@rest_connector.download(remote_url, dest_file_path)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def read_file(file_id, type, fmt: nil)
|
|
55
|
+
type ||= FMT_TYPES_H[fmt]
|
|
56
|
+
|
|
57
|
+
raise Zm::Error::RestError, 'Invalid fmt type' if type.nil? && fmt.nil?
|
|
58
|
+
|
|
59
|
+
remote_url = download_file_url(fmt, type, file_id)
|
|
60
|
+
@rest_connector.read(remote_url)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def download_files(dest_file_path, file_ids, type, fmt: nil)
|
|
64
|
+
fmt ||= File.extname(dest_file_path)[1..]
|
|
65
|
+
type ||= FMT_TYPES_H[fmt]
|
|
66
|
+
|
|
67
|
+
raise Zm::Error::RestError, 'Invalid fmt type' if type.nil? && fmt.nil?
|
|
68
|
+
|
|
69
|
+
remote_url = download_files_url(fmt, type, file_ids)
|
|
70
|
+
@rest_connector.download(remote_url, dest_file_path)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def download_attachment(dest_file_path, message_id, part)
|
|
74
|
+
remote_url = download_attachment_url(message_id, part)
|
|
75
|
+
@rest_connector.download(remote_url, dest_file_path)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def download_folder(dest_file_path, folder_id, fmt: nil)
|
|
79
|
+
fmt ||= File.extname(dest_file_path)[1..]
|
|
80
|
+
|
|
81
|
+
raise Zm::Error::RestError, 'Unauthorized fmt parameter' unless AUTHORIZED_FOLDER_FMT.include?(fmt)
|
|
82
|
+
|
|
83
|
+
remote_url = download_folder_url(folder_id, fmt)
|
|
84
|
+
@rest_connector.download(remote_url, dest_file_path)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def send_file(src_file_path, folder_id, fmt: nil, type: nil, resolve: nil)
|
|
88
|
+
fmt ||= File.extname(src_file_path)[1..]
|
|
89
|
+
type ||= FMT_TYPES_H[fmt]
|
|
90
|
+
resolve ||= AUTHORIZED_RESOLVE.first
|
|
91
|
+
|
|
92
|
+
raise Zm::Error::RestError, 'Unauthorized resolve parameter' unless AUTHORIZED_RESOLVE.include?(resolve)
|
|
93
|
+
|
|
94
|
+
raise Zm::Error::RestError, 'Invalid fmt type' if type.nil? && fmt.nil?
|
|
95
|
+
|
|
96
|
+
remote_url = send_file_url(folder_id, fmt:, type:, resolve:)
|
|
97
|
+
@rest_connector.upload(remote_url, src_file_path)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def upload_attachment(src_file_path)
|
|
101
|
+
@rest_connector.upload(upload_attachment_url, src_file_path)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def build_params(**params)
|
|
105
|
+
params.select! { |k, _| AUTHORIZED_PARAMS.include?(k) }
|
|
106
|
+
|
|
107
|
+
params[:charset] ||= @charset
|
|
108
|
+
params[:auth] ||= @auth
|
|
109
|
+
params[:emptyname] ||= @emptyname
|
|
110
|
+
params[:disp] ||= @disp
|
|
111
|
+
|
|
112
|
+
params.compact!
|
|
113
|
+
|
|
114
|
+
params
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def format_url_params(params)
|
|
118
|
+
URI.encode_www_form(params)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def format_url(url, str_params)
|
|
122
|
+
return url if str_params.nil? || str_params.empty?
|
|
123
|
+
|
|
124
|
+
"#{url}?#{str_params}"
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def download_file_with_url(url, dest_file_path)
|
|
128
|
+
url = File.join(@base_url, url) unless url.start_with?('http://', 'https://')
|
|
129
|
+
raise Zm::Error::RestError, 'url does not match base_url origin' unless same_origin?(url)
|
|
130
|
+
|
|
131
|
+
@rest_connector.download(url, dest_file_path)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def same_origin?(url)
|
|
135
|
+
uri = URI(url)
|
|
136
|
+
base_uri = URI(@base_url)
|
|
137
|
+
uri.scheme == base_uri.scheme && uri.host == base_uri.host && uri.port == base_uri.port
|
|
138
|
+
rescue URI::InvalidURIError
|
|
139
|
+
false
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def download_folder_url(folder_id, fmt)
|
|
143
|
+
h = build_params(fmt:, id: folder_id)
|
|
144
|
+
|
|
145
|
+
format_url(@base_url, format_url_params(h))
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def download_file_url(fmt, type, id)
|
|
149
|
+
h = build_params(fmt:, types: type, id:)
|
|
150
|
+
|
|
151
|
+
format_url(@base_url, format_url_params(h))
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def download_attachment_url(message_id, part)
|
|
155
|
+
h = build_params(id: message_id, part:)
|
|
156
|
+
|
|
157
|
+
format_url(@base_url, format_url_params(h))
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def download_files_url(fmt, type, ids)
|
|
161
|
+
h = build_params(fmt:, types: type, list: ids.join(','))
|
|
162
|
+
|
|
163
|
+
format_url(@base_url, format_url_params(h))
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def send_file_url(folder_id, fmt:, type:, resolve:)
|
|
167
|
+
h = build_params(fmt:, types: type, resolve:, id: folder_id)
|
|
168
|
+
|
|
169
|
+
format_url(@base_url, format_url_params(h))
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def upload_attachment_url
|
|
173
|
+
h = {
|
|
174
|
+
fmt: 'extended,raw'
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
format_url(File.join(@base_url, 'service/upload'), format_url_params(h))
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
end
|
|
@@ -10,9 +10,12 @@ module Zm
|
|
|
10
10
|
|
|
11
11
|
class << self
|
|
12
12
|
def format_email(email)
|
|
13
|
-
email.
|
|
14
|
-
|
|
15
|
-
email
|
|
13
|
+
raise ArgumentError, "email must be a String, got #{email.class}" unless email.is_a?(String)
|
|
14
|
+
|
|
15
|
+
formatted = email.strip.downcase
|
|
16
|
+
raise ArgumentError, 'email must not be empty' if formatted.empty?
|
|
17
|
+
|
|
18
|
+
formatted
|
|
16
19
|
end
|
|
17
20
|
|
|
18
21
|
# TODO: chercher - remplacer toutes les occurrences dans le code
|
data/lib/zm/client/zm_logger.rb
CHANGED
data/lib/zm/client.rb
CHANGED
|
@@ -1,13 +1,230 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'date'
|
|
4
|
-
|
|
5
|
-
require 'zm/client/soap_request'
|
|
6
|
-
require 'zm/modules/inspector'
|
|
7
|
-
require 'zm/support/cache'
|
|
8
|
-
require 'zm/client/zm_logger'
|
|
9
3
|
require 'zm/client/version'
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
|
|
5
|
+
module Zm
|
|
6
|
+
module Client
|
|
7
|
+
autoload :DeprecatedConstants, 'zm/client/deprecated_constants'
|
|
8
|
+
extend DeprecatedConstants
|
|
9
|
+
|
|
10
|
+
autoload :Utils, 'zm/client/utils'
|
|
11
|
+
autoload :ZmLogger, 'zm/client/zm_logger'
|
|
12
|
+
autoload :Token, 'zm/client/token'
|
|
13
|
+
autoload :Upload, 'zm/client/upload'
|
|
14
|
+
|
|
15
|
+
autoload :Recipients, 'zm/client/recipients'
|
|
16
|
+
autoload :Recipient, 'zm/client/recipient'
|
|
17
|
+
|
|
18
|
+
autoload :LdapFilter, 'zm/client/ldap_filter'
|
|
19
|
+
|
|
20
|
+
autoload :BatchRequest, 'zm/client/batch_request'
|
|
21
|
+
|
|
22
|
+
autoload :MailboxItemConcern, 'zm/client/mailbox/mailbox_item_concern'
|
|
23
|
+
autoload :MailboxItemID, 'zm/client/mailbox/mailbox_item_id'
|
|
24
|
+
|
|
25
|
+
autoload :ClusterConfig, 'zm/client/cluster/cluster_config'
|
|
26
|
+
autoload :ClusterConfigDomain, 'zm/client/cluster/cluster_config'
|
|
27
|
+
autoload :ClusterConfigError, 'zm/client/cluster/cluster_config'
|
|
28
|
+
autoload :Cluster, 'zm/client/cluster/cluster'
|
|
29
|
+
|
|
30
|
+
autoload :Server, 'zm/client/server/server'
|
|
31
|
+
autoload :ServerJsnsInitializer, 'zm/client/server/server_jsns_initializer'
|
|
32
|
+
autoload :ServersBuilder, 'zm/client/server/servers_builder'
|
|
33
|
+
autoload :ServersCollection, 'zm/client/server/servers_collection'
|
|
34
|
+
autoload :ServerAccountsCollection, 'zm/client/server/server_accounts_collection'
|
|
35
|
+
autoload :ServerServices, 'zm/client/server/server_services'
|
|
36
|
+
|
|
37
|
+
autoload :Cos, 'zm/client/cos/cos'
|
|
38
|
+
autoload :CosJsnsInitializer, 'zm/client/cos/cos_jsns_initializer'
|
|
39
|
+
autoload :CosJsnsBuilder, 'zm/client/cos/cos_jsns_builder'
|
|
40
|
+
autoload :CosesBuilder, 'zm/client/cos/coses_builder'
|
|
41
|
+
autoload :CosesCollection, 'zm/client/cos/coses_collection'
|
|
42
|
+
autoload :CosServersCollection, 'zm/client/cos/cos_servers_collection'
|
|
43
|
+
autoload :CosDomainsCollection, 'zm/client/cos/cos_domains_collection'
|
|
44
|
+
autoload :CosAccountsCollection, 'zm/client/cos/cos_accounts_collection'
|
|
45
|
+
|
|
46
|
+
autoload :Domain, 'zm/client/domain/domain'
|
|
47
|
+
autoload :DomainsBuilder, 'zm/client/domain/domains_builder'
|
|
48
|
+
autoload :DomainJsnsBuilder, 'zm/client/domain/domain_jsns_builder'
|
|
49
|
+
autoload :DomainJsnsInitializer, 'zm/client/domain/domain_jsns_initializer'
|
|
50
|
+
autoload :DomainsCollection, 'zm/client/domain/domains_collection'
|
|
51
|
+
autoload :DomainAccountsCollection, 'zm/client/domain/domain_accounts_collection'
|
|
52
|
+
autoload :DomainDistributionListsCollection, 'zm/client/domain/domain_distributionlists_collection'
|
|
53
|
+
autoload :DomainResourcesCollection, 'zm/client/domain/domain_resources_collection'
|
|
54
|
+
|
|
55
|
+
autoload :Account, 'zm/client/account/account'
|
|
56
|
+
autoload :AccountJsnsBuilder, 'zm/client/account/account_jsns_builder'
|
|
57
|
+
autoload :AccountJsnsInitializer, 'zm/client/account/account_jsns_initializer'
|
|
58
|
+
autoload :AccountsBuilder, 'zm/client/account/accounts_builder'
|
|
59
|
+
autoload :AccountsCollection, 'zm/client/account/accounts_collection'
|
|
60
|
+
autoload :AccountAliasesCollection, 'zm/client/account/account_aliases_collection'
|
|
61
|
+
autoload :AccountDlsMembershipCollection, 'zm/client/account/account_dls_membership_collection'
|
|
62
|
+
autoload :AccountDlsOwnerCollection, 'zm/client/account/account_dls_owner_collection'
|
|
63
|
+
|
|
64
|
+
autoload :Resource, 'zm/client/resource/resource'
|
|
65
|
+
autoload :ResourceJsnsBuilder, 'zm/client/resource/resource_jsns_builder'
|
|
66
|
+
autoload :ResourceJsnsInitializer, 'zm/client/resource/resource_jsns_initializer'
|
|
67
|
+
autoload :ResourcesBuilder, 'zm/client/resource/resources_builder'
|
|
68
|
+
autoload :ResourcesCollection, 'zm/client/resource/resources_collection'
|
|
69
|
+
|
|
70
|
+
autoload :DistributionList, 'zm/client/distributionlist/distributionlist'
|
|
71
|
+
autoload :DistributionListJsnsBuilder, 'zm/client/distributionlist/distributionlist_jsns_builder'
|
|
72
|
+
autoload :DistributionListJsnsInitializer, 'zm/client/distributionlist/distributionlist_jsns_initializer'
|
|
73
|
+
autoload :DistributionListsBuilder, 'zm/client/distributionlist/distributionlists_builder'
|
|
74
|
+
autoload :DistributionListsCollection, 'zm/client/distributionlist/distributionlists_collection'
|
|
75
|
+
autoload :DlsMembershipCollection, 'zm/client/distributionlist/dls_membership_collection'
|
|
76
|
+
autoload :DlMembership, 'zm/client/distributionlist/dls_membership_collection'
|
|
77
|
+
autoload :DistributionListAliasesCollection, 'zm/client/distributionlist/distributionlist_aliases_collection'
|
|
78
|
+
autoload :DistributionListMembersCollection, 'zm/client/distributionlist/distributionlist_members_collection'
|
|
79
|
+
autoload :DistributionListOwnersCollection, 'zm/client/distributionlist/distributionlist_owners_collection'
|
|
80
|
+
autoload :DistributionListAcesCollection, 'zm/client/distributionlist/distributionlist_aces_collection'
|
|
81
|
+
|
|
82
|
+
autoload :License, 'zm/client/license/license'
|
|
83
|
+
autoload :LicenseJsnsInitializer, 'zm/client/license/license_jsns_initializer'
|
|
84
|
+
autoload :LicensesCollection, 'zm/client/license/licenses_collection'
|
|
85
|
+
|
|
86
|
+
autoload :MtaQueueName, 'zm/client/mta_queue/mta_queue_name'
|
|
87
|
+
autoload :MtaQueueAction, 'zm/client/mta_queue/mta_queue_action'
|
|
88
|
+
|
|
89
|
+
autoload :FolderDefault, 'zm/client/folder/folder_default'
|
|
90
|
+
autoload :FolderView, 'zm/client/folder/folder_view'
|
|
91
|
+
|
|
92
|
+
autoload :Ace, 'zm/client/ace/ace'
|
|
93
|
+
autoload :AceJsnsBuilder, 'zm/client/ace/ace_jsns_builder'
|
|
94
|
+
autoload :AceJsnsInitializer, 'zm/client/ace/ace_jsns_initializer'
|
|
95
|
+
autoload :AcesBuilder, 'zm/client/ace/aces_builder'
|
|
96
|
+
autoload :AcesCollection, 'zm/client/ace/aces_collection'
|
|
97
|
+
|
|
98
|
+
autoload :Appointment, 'zm/client/appointment/appointment'
|
|
99
|
+
autoload :AppointmentJsnsBuilder, 'zm/client/appointment/appointment_jsns_builder'
|
|
100
|
+
autoload :AppointmentJsnsInitializer, 'zm/client/appointment/appointment_jsns_initializer'
|
|
101
|
+
autoload :AppointmentsBuilder, 'zm/client/appointment/appointments_builder'
|
|
102
|
+
autoload :AppointmentsCollection, 'zm/client/appointment/appointments_collection'
|
|
103
|
+
|
|
104
|
+
autoload :Backup, 'zm/client/backup/backup'
|
|
105
|
+
autoload :BackupJsnsInitializer, 'zm/client/backup/backup_jsns_initializer'
|
|
106
|
+
autoload :BackupsBuilder, 'zm/client/backup/backups_builder'
|
|
107
|
+
autoload :BackupsCollection, 'zm/client/backup/backups_collection'
|
|
108
|
+
|
|
109
|
+
autoload :DataSource, 'zm/client/datasource/datasource'
|
|
110
|
+
autoload :DataSourceJsnsInitializer, 'zm/client/datasource/datasource_jsns_initializer'
|
|
111
|
+
autoload :DataSourceJsnsBuilder, 'zm/client/datasource/datasource_jsns_builder'
|
|
112
|
+
autoload :DataSourcesBuilder, 'zm/client/datasource/datasources_builder'
|
|
113
|
+
autoload :DataSourcesCollection, 'zm/client/datasource/datasources_collection'
|
|
114
|
+
|
|
115
|
+
autoload :Contact, 'zm/client/contact/contact'
|
|
116
|
+
autoload :ContactMembersCollection, 'zm/client/contact/contact_members_collection'
|
|
117
|
+
autoload :ModGroupContact, 'zm/client/contact/mod_group_contact'
|
|
118
|
+
autoload :ContactJsnsInitializer, 'zm/client/contact/contact_jsns_initializer'
|
|
119
|
+
autoload :ContactJsnsBuilder, 'zm/client/contact/contact_jsns_builder'
|
|
120
|
+
autoload :GroupContactJsnsBuilder, 'zm/client/contact/group_contact_jsns_builder'
|
|
121
|
+
autoload :ContactMember, 'zm/client/contact/contact_member'
|
|
122
|
+
autoload :ContactsBuilder, 'zm/client/contact/contacts_builder'
|
|
123
|
+
autoload :ContactsCollection, 'zm/client/contact/contacts_collection'
|
|
124
|
+
|
|
125
|
+
autoload :Document, 'zm/client/document/document'
|
|
126
|
+
autoload :DocumentJsnsInitializer, 'zm/client/document/document_jsns_initializer'
|
|
127
|
+
autoload :DocumentJsnsBuilder, 'zm/client/document/document_jsns_builder'
|
|
128
|
+
autoload :DocumentsBuilder, 'zm/client/document/documents_builder'
|
|
129
|
+
autoload :DocumentsCollection, 'zm/client/document/documents_collection'
|
|
130
|
+
|
|
131
|
+
autoload :FilterRule, 'zm/client/filter_rules/filter_rule'
|
|
132
|
+
autoload :FilterRuleJsnsInitializer, 'zm/client/filter_rules/filter_rule_jsns_initializer'
|
|
133
|
+
autoload :FilterRulesBuilder, 'zm/client/filter_rules/filter_rules_builder'
|
|
134
|
+
autoload :FilterRulesCollection, 'zm/client/filter_rules/filter_rules_collection'
|
|
135
|
+
autoload :OutgoingFilterRulesCollection, 'zm/client/filter_rules/outgoing_filter_rules_collection'
|
|
136
|
+
|
|
137
|
+
autoload :Task, 'zm/client/task/task'
|
|
138
|
+
autoload :TaskJsnsInitializer, 'zm/client/task/task_jsns_initializer'
|
|
139
|
+
autoload :TasksBuilder, 'zm/client/task/tasks_builder'
|
|
140
|
+
autoload :TasksCollection, 'zm/client/task/tasks_collection'
|
|
141
|
+
|
|
142
|
+
autoload :Tag, 'zm/client/tag/tag'
|
|
143
|
+
autoload :TagJsnsBuilder, 'zm/client/tag/tag_jsns_builder'
|
|
144
|
+
autoload :TagJsnsInitializer, 'zm/client/tag/tag_jsns_initializer'
|
|
145
|
+
autoload :TagsBuilder, 'zm/client/tag/tags_builder'
|
|
146
|
+
autoload :TagsCollection, 'zm/client/tag/tags_collection'
|
|
147
|
+
autoload :AccountObjectTagsCollection, 'zm/client/tag/account_object_tags_collection'
|
|
148
|
+
|
|
149
|
+
autoload :Signature, 'zm/client/signature/signature'
|
|
150
|
+
autoload :SignatureJsnsBuilder, 'zm/client/signature/signature_jsns_builder'
|
|
151
|
+
autoload :SignatureJsnsInitializer, 'zm/client/signature/signature_jsns_initializer'
|
|
152
|
+
autoload :SignaturesBuilder, 'zm/client/signature/signatures_builder'
|
|
153
|
+
autoload :SignaturesCollection, 'zm/client/signature/signatures_collection'
|
|
154
|
+
|
|
155
|
+
autoload :Share, 'zm/client/share/share'
|
|
156
|
+
autoload :ShareJsnsInitializer, 'zm/client/share/share_jsns_initializer'
|
|
157
|
+
autoload :SharesBuilder, 'zm/client/share/shares_builder'
|
|
158
|
+
autoload :SharesCollection, 'zm/client/share/shares_collection'
|
|
159
|
+
autoload :ShareMountPointsCollection, 'zm/client/share/share_mountpoints_collection'
|
|
160
|
+
|
|
161
|
+
autoload :SearchFolder, 'zm/client/search_folder/search_folder'
|
|
162
|
+
autoload :SearchFolderJsnsBuilder, 'zm/client/search_folder/search_folder_jsns_builder'
|
|
163
|
+
autoload :SearchFolderJsnsInitializer, 'zm/client/search_folder/search_folder_jsns_initializer'
|
|
164
|
+
autoload :SearchFoldersBuilder, 'zm/client/search_folder/search_folders_builder'
|
|
165
|
+
autoload :SearchFoldersCollection, 'zm/client/search_folder/search_folders_collection'
|
|
166
|
+
|
|
167
|
+
autoload :Folder, 'zm/client/folder/folder'
|
|
168
|
+
autoload :FolderJsnsBuilder, 'zm/client/folder/folder_jsns_builder'
|
|
169
|
+
autoload :FolderJsnsInitializer, 'zm/client/folder/folder_jsns_initializer'
|
|
170
|
+
autoload :FoldersJsnsBuilder, 'zm/client/folder/folders_jsns_builder'
|
|
171
|
+
autoload :FolderGrant, 'zm/client/folder/folder_grant'
|
|
172
|
+
autoload :FolderGrantsCollection, 'zm/client/folder/folder_grants_collection'
|
|
173
|
+
autoload :FolderGrantJsnsBuilder, 'zm/client/folder/folder_grant_jsns_builder'
|
|
174
|
+
autoload :FolderRetentionPolicy, 'zm/client/folder/folder_retention_policy'
|
|
175
|
+
autoload :FolderRetentionPoliciesCollection, 'zm/client/folder/folder_retention_policies_collection'
|
|
176
|
+
autoload :FoldersBuilder, 'zm/client/folder/folders_builder'
|
|
177
|
+
autoload :FoldersCollection, 'zm/client/folder/folders_collection'
|
|
178
|
+
autoload :ModDocumentFolder, 'zm/client/folder/mod_document_folder'
|
|
179
|
+
|
|
180
|
+
autoload :Identity, 'zm/client/identity/identity'
|
|
181
|
+
autoload :IdentityJsnsBuilder, 'zm/client/identity/identity_jsns_builder'
|
|
182
|
+
autoload :IdentityJsnsInitializer, 'zm/client/identity/identity_jsns_initializer'
|
|
183
|
+
autoload :IdentitiesBuilder, 'zm/client/identity/identities_builder'
|
|
184
|
+
autoload :IdentitiesCollection, 'zm/client/identity/identities_collection'
|
|
185
|
+
|
|
186
|
+
autoload :MountPoint, 'zm/client/mountpoint/mount_point'
|
|
187
|
+
autoload :MountPointJsnsBuilder, 'zm/client/mountpoint/mount_point_jsns_builder'
|
|
188
|
+
autoload :MountPointJsnsInitializer, 'zm/client/mountpoint/mount_point_jsns_initializer'
|
|
189
|
+
autoload :MountPointsBuilder, 'zm/client/mountpoint/mount_points_builder'
|
|
190
|
+
autoload :MountPointsCollection, 'zm/client/mountpoint/mount_points_collection'
|
|
191
|
+
|
|
192
|
+
autoload :Message, 'zm/client/message/message'
|
|
193
|
+
autoload :MessageFlagsCollection, 'zm/client/message/message_flags_collection'
|
|
194
|
+
autoload :MessageRecipients, 'zm/client/message/message_recipients'
|
|
195
|
+
autoload :MessageAttachmentsCollection, 'zm/client/message/message_attachments_collection'
|
|
196
|
+
autoload :Attachment, 'zm/client/message/message_attachments_collection'
|
|
197
|
+
autoload :MessageJsnsBuilder, 'zm/client/message/message_jsns_builder'
|
|
198
|
+
autoload :MessageJsnsInitializer, 'zm/client/message/message_jsns_initializer'
|
|
199
|
+
autoload :MessagesBuilder, 'zm/client/message/messages_builder'
|
|
200
|
+
autoload :MessagesCollection, 'zm/client/message/messages_collection'
|
|
201
|
+
|
|
202
|
+
autoload :MtaQueue, 'zm/client/mta_queue/mta_queue'
|
|
203
|
+
autoload :MtaQueueJsnsInitializer, 'zm/client/mta_queue/mta_queue_jsns_initializer'
|
|
204
|
+
autoload :MtaQueueJsnsBuilder, 'zm/client/mta_queue/mta_queue_jsns_builder'
|
|
205
|
+
autoload :MtaQueuesBuilder, 'zm/client/mta_queue/mta_queues_builder'
|
|
206
|
+
autoload :MtaQueuesCollection, 'zm/client/mta_queue/mta_queues_collection'
|
|
207
|
+
|
|
208
|
+
autoload :MtaQueueItem, 'zm/client/mta_queue_item/mta_queue_item'
|
|
209
|
+
autoload :MtaQueueItemJsnsInitializer, 'zm/client/mta_queue_item/mta_queue_item_jsns_initializer'
|
|
210
|
+
autoload :MtaQueueItemsBuilder, 'zm/client/mta_queue_item/mta_queue_items_builder'
|
|
211
|
+
autoload :MtaQueueItemsCollection, 'zm/client/mta_queue_item/mta_queue_items_collection'
|
|
212
|
+
|
|
213
|
+
module Base
|
|
214
|
+
autoload :BaseJsnsBuilder, 'zm/client/base/base_jsns_builder'
|
|
215
|
+
autoload :BaseAccountJsnsBuilder, 'zm/client/base/base_account_jsns_builder'
|
|
216
|
+
autoload :BaseJsnsInitializer, 'zm/client/base/base_jsns_initializer'
|
|
217
|
+
autoload :ObjectsBuilder, 'zm/client/base/objects_builder'
|
|
218
|
+
autoload :ObjectsCollection, 'zm/client/base/objects_collection'
|
|
219
|
+
autoload :AdminObjectsCollection, 'zm/client/base/admin_objects_collection'
|
|
220
|
+
autoload :AccountObjectsCollection, 'zm/client/base/account_objects_collection'
|
|
221
|
+
autoload :AccountSearchObjectsCollection, 'zm/client/base/account_search_objects_collection'
|
|
222
|
+
autoload :ZimbraAttributesCollection, 'zm/client/base/zimbra_attributes_collection'
|
|
223
|
+
autoload :ZimbraAttribute, 'zm/client/base/zimbra_attribute'
|
|
224
|
+
autoload :Object, 'zm/client/base/object'
|
|
225
|
+
autoload :MailboxObject, 'zm/client/base/mailbox_object'
|
|
226
|
+
autoload :MailboxInfosCollection, 'zm/client/base/mailbox_infos_collection'
|
|
227
|
+
autoload :MailboxPrefsCollection, 'zm/client/base/mailbox_prefs_collection'
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Zm
|
|
4
|
+
module Connector
|
|
5
|
+
# convert Faraday network errors into Zm::Error::ConnectionError, the original error is kept as cause
|
|
6
|
+
module NetworkErrorHandler
|
|
7
|
+
NETWORK_ERRORS = [Faraday::ConnectionFailed, Faraday::TimeoutError, Faraday::SSLError].freeze
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def handle_network_errors
|
|
12
|
+
yield
|
|
13
|
+
rescue *NETWORK_ERRORS => e
|
|
14
|
+
raise Zm::Error::ConnectionError, "#{e.class}: #{e.message}"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|