onlyoffice_api 0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/onlyoffice_api.rb +65 -0
- data/lib/teamlab/config.rb +39 -0
- data/lib/teamlab/modules/calendar.rb +111 -0
- data/lib/teamlab/modules/community.rb +20 -0
- data/lib/teamlab/modules/community/community_blogs.rb +54 -0
- data/lib/teamlab/modules/community/community_bookmarks.rb +60 -0
- data/lib/teamlab/modules/community/community_events.rb +50 -0
- data/lib/teamlab/modules/community/community_forums.rb +70 -0
- data/lib/teamlab/modules/community/community_wiki.rb +66 -0
- data/lib/teamlab/modules/crm.rb +32 -0
- data/lib/teamlab/modules/crm/crm_cases.rb +72 -0
- data/lib/teamlab/modules/crm/crm_common.rb +42 -0
- data/lib/teamlab/modules/crm/crm_contacts.rb +243 -0
- data/lib/teamlab/modules/crm/crm_files.rb +44 -0
- data/lib/teamlab/modules/crm/crm_history.rb +42 -0
- data/lib/teamlab/modules/crm/crm_invoices.rb +123 -0
- data/lib/teamlab/modules/crm/crm_opportunities.rb +93 -0
- data/lib/teamlab/modules/crm/crm_organisation.rb +14 -0
- data/lib/teamlab/modules/crm/crm_tags.rb +54 -0
- data/lib/teamlab/modules/crm/crm_tasks.rb +62 -0
- data/lib/teamlab/modules/crm/crm_user_fields.rb +34 -0
- data/lib/teamlab/modules/feed.rb +23 -0
- data/lib/teamlab/modules/files.rb +256 -0
- data/lib/teamlab/modules/group.rb +53 -0
- data/lib/teamlab/modules/group/group_helper.rb +15 -0
- data/lib/teamlab/modules/mail.rb +32 -0
- data/lib/teamlab/modules/mail/mail_accounts.rb +55 -0
- data/lib/teamlab/modules/mail/mail_alerts.rb +14 -0
- data/lib/teamlab/modules/mail/mail_contacts.rb +14 -0
- data/lib/teamlab/modules/mail/mail_conversations.rb +54 -0
- data/lib/teamlab/modules/mail/mail_folders.rb +18 -0
- data/lib/teamlab/modules/mail/mail_helpcenter.rb +10 -0
- data/lib/teamlab/modules/mail/mail_images.rb +18 -0
- data/lib/teamlab/modules/mail/mail_messages.rb +74 -0
- data/lib/teamlab/modules/mail/mail_settings.rb +17 -0
- data/lib/teamlab/modules/mail/mail_signature.rb +14 -0
- data/lib/teamlab/modules/mail/mail_tags.rb +30 -0
- data/lib/teamlab/modules/people.rb +104 -0
- data/lib/teamlab/modules/people/people_reassign.rb +26 -0
- data/lib/teamlab/modules/portals.rb +17 -0
- data/lib/teamlab/modules/project.rb +37 -0
- data/lib/teamlab/modules/projects/projects_comments.rb +34 -0
- data/lib/teamlab/modules/projects/projects_contacts.rb +18 -0
- data/lib/teamlab/modules/projects/projects_discussions.rb +46 -0
- data/lib/teamlab/modules/projects/projects_files.rb +34 -0
- data/lib/teamlab/modules/projects/projects_milestones.rb +46 -0
- data/lib/teamlab/modules/projects/projects_projects.rb +82 -0
- data/lib/teamlab/modules/projects/projects_reports.rb +18 -0
- data/lib/teamlab/modules/projects/projects_settings.rb +11 -0
- data/lib/teamlab/modules/projects/projects_tags.rb +18 -0
- data/lib/teamlab/modules/projects/projects_tasks.rb +94 -0
- data/lib/teamlab/modules/projects/projects_team.rb +30 -0
- data/lib/teamlab/modules/projects/projects_templates.rb +26 -0
- data/lib/teamlab/modules/projects/projects_time.rb +34 -0
- data/lib/teamlab/modules/settings.rb +100 -0
- data/lib/teamlab/name.rb +5 -0
- data/lib/teamlab/request.rb +79 -0
- data/lib/teamlab/response.rb +41 -0
- data/lib/teamlab/version.rb +5 -0
- metadata +140 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail contacts
|
5
|
+
module MailContacts
|
6
|
+
def get_contact_list_for_auto_complete(term)
|
7
|
+
@request.get(%w[contacts], term: term)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_crm_linked_entities(message_id)
|
11
|
+
@request.get(%w[crm linked entities], messageId: message_id)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail conversations
|
5
|
+
module MailConversations
|
6
|
+
def get_filtered_conversations(options = {})
|
7
|
+
@request.get(%w[conversations], options)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_messages_linked_into_one_chain(message_id, load_all_content)
|
11
|
+
@request.get(['conversation', message_id.to_s], loadAllContent: load_all_content)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_previous_or_next_conversation_id(id, direction, options = {})
|
15
|
+
@request.get(['conversation', id.to_s, direction.to_s], options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def chain_crm_linked_by_message?(message_id)
|
19
|
+
@request.get(%w[conversations link crm status], messageId: message_id)
|
20
|
+
end
|
21
|
+
|
22
|
+
def move_conversations_to_folder(folder_id, *message_ids)
|
23
|
+
@request.put(%w[conversations move], folderId: folder_id, ids: message_ids.flatten)
|
24
|
+
end
|
25
|
+
|
26
|
+
def set_conversations_status(status, *ids)
|
27
|
+
@request.put(%w[conversations mark], status: status, ids: ids.flatten)
|
28
|
+
end
|
29
|
+
|
30
|
+
def remove_conversations(*ids)
|
31
|
+
@request.put(%w[conversations remove], ids: ids.flatten)
|
32
|
+
end
|
33
|
+
|
34
|
+
def restore_conversations_to_folders(*ids)
|
35
|
+
@request.put(%w[conversations restore], ids: ids.flatten)
|
36
|
+
end
|
37
|
+
|
38
|
+
def mark_conversation_as_crm_linked(message_id, *crm_contact_ids)
|
39
|
+
@request.put(%w[conversations crm mark], messageId: message_id, crmContactIds: crm_contact_ids.flatten)
|
40
|
+
end
|
41
|
+
|
42
|
+
def unmark_conversation_link_with_crm(message_id, *crm_contact_ids)
|
43
|
+
@request.put(%w[conversations crm unmark], messageId: message_id, crmContactIds: crm_contact_ids.flatten)
|
44
|
+
end
|
45
|
+
|
46
|
+
def add_tag_to_conversations(tag_id, *conversation_ids)
|
47
|
+
@request.put(['conversations', 'tag', tag_id.to_s, 'set'], messages: conversation_ids.flatten)
|
48
|
+
end
|
49
|
+
|
50
|
+
def remove_tag_from_conversations(tag_id, *conversation_ids)
|
51
|
+
@request.put(['conversations', 'tag', tag_id.to_s, 'unset'], messages: conversation_ids.flatten)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail folders
|
5
|
+
module MailFolders
|
6
|
+
def get_folders(options = {})
|
7
|
+
@request.get(%w[folders], options)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_folder_change_date(folder_id)
|
11
|
+
@request.get(['folders', folder_id.to_s, 'modify_date'])
|
12
|
+
end
|
13
|
+
|
14
|
+
def remove_all_messages_from_folder(folder_id)
|
15
|
+
@request.delete(['folders', folder_id.to_s, 'messages'])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail images
|
5
|
+
module MailImages
|
6
|
+
def get_trusted_addresses
|
7
|
+
@request.get(%w[display_images addresses])
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_trusted_address(address)
|
11
|
+
@request.post(%w[display_images addresses], addres: address)
|
12
|
+
end
|
13
|
+
|
14
|
+
def remove_from_trusted_addresses(address)
|
15
|
+
@request.delete(%w[display_images addresses], addres: address)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail messages
|
5
|
+
module MailMessages
|
6
|
+
def get_filtered_messages(page, options = {})
|
7
|
+
@request.get(%w[messages], { page: page }.merge(options))
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_message(id, options = {})
|
11
|
+
@request.get(['messages', id.to_s], options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_message_template
|
15
|
+
@request.get(%w[messages template])
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_message_modify_date
|
19
|
+
@request.get(%w[messages modify_date])
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_previous_or_next_message_id(id, direction, options = {})
|
23
|
+
@request.get(['messages', id.to_s, direction.to_s], options)
|
24
|
+
end
|
25
|
+
|
26
|
+
def set_message_crm_status(emails, *user_ids)
|
27
|
+
@request.post(%w[messages update_crm], emails: emails, userIds: user_ids.flatten)
|
28
|
+
end
|
29
|
+
|
30
|
+
def attach_teamlab_document(message_id, file_id, options = {})
|
31
|
+
@request.post(['messages', message_id.to_s, 'document'], { fileId: file_id }.merge(options))
|
32
|
+
end
|
33
|
+
|
34
|
+
def set_message_status(status, *ids)
|
35
|
+
@request.put(%w[messages mark], status: status, ids: ids.flatten)
|
36
|
+
end
|
37
|
+
|
38
|
+
def move_messages_to_folder(folder_id, *message_ids)
|
39
|
+
@request.put(%w[,essages move], folderId: folder_id, ids: message_ids.flatten)
|
40
|
+
end
|
41
|
+
|
42
|
+
def send_message(id, options = {})
|
43
|
+
@request.put(%w[messages send], { id: id }.merge(options))
|
44
|
+
end
|
45
|
+
|
46
|
+
def save_message(id, options = {})
|
47
|
+
@request.put(%w[messages save], { id: id }.merge(options))
|
48
|
+
end
|
49
|
+
|
50
|
+
def remove_messages(*ids)
|
51
|
+
@request.put(%w[messages remove], ids: ids.flatten)
|
52
|
+
end
|
53
|
+
|
54
|
+
def restore_message_to_folders
|
55
|
+
@request.put(%w[messages restore])
|
56
|
+
end
|
57
|
+
|
58
|
+
def export_mail_to_crm_relations_history(message_id, *crm_contact_ids)
|
59
|
+
@request.put(%w[messages crm export], messageId: message_id, crmContactIds: crm_contact_ids.flatten)
|
60
|
+
end
|
61
|
+
|
62
|
+
def export_attachments_to_my_docs(attachment_id)
|
63
|
+
@request.put(%w[attachment mydocuments export], attachmentId: attachment_id)
|
64
|
+
end
|
65
|
+
|
66
|
+
def export_all_message_attachments_to_my_docs(message_id)
|
67
|
+
@request.put(%w[attachments mydocuments export], messageId: message_id)
|
68
|
+
end
|
69
|
+
|
70
|
+
def delete_attachment_from_message(message_id, attachment_id)
|
71
|
+
@request.delete(['messages', message_id.to_s, 'attachments', attachment_id.to_s])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail settings
|
5
|
+
module MailSettings
|
6
|
+
# @param enabled [True, False] set value of always display image
|
7
|
+
# @return [Void]
|
8
|
+
def set_always_display_images(enabled = true)
|
9
|
+
@request.put(%w[settings alwaysDisplayImages], enabled: enabled.to_s)
|
10
|
+
end
|
11
|
+
|
12
|
+
# @return [True, False] get value of flag for dispay images
|
13
|
+
def always_display_images
|
14
|
+
@request.get(%w[settings alwaysDisplayImages])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail signatures
|
5
|
+
module MailSignature
|
6
|
+
def get_meail_signature(mailbox_id)
|
7
|
+
@request.get(['signature', mailbox_id.to_s])
|
8
|
+
end
|
9
|
+
|
10
|
+
def update_signature(mailbox_id, html, options = {})
|
11
|
+
@request.post(['signature', 'update', mailbox_id.to_s], { html: html }.merge(options))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Methods for working with mail tags
|
5
|
+
module MailTags
|
6
|
+
def get_tag_list
|
7
|
+
@request.get(%w[tags])
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_tag(name, options = {})
|
11
|
+
@request.post(%w[tags], { name: name }.merge(options))
|
12
|
+
end
|
13
|
+
|
14
|
+
def update_tag(id, name, options = {})
|
15
|
+
@request.put(['tags', id.to_s], { name: name }.merge(options))
|
16
|
+
end
|
17
|
+
|
18
|
+
def set_tag_to_messages(id, *message_ids)
|
19
|
+
@request.put(['tags', id.to_s, 'set'], messages: message_ids.flatten)
|
20
|
+
end
|
21
|
+
|
22
|
+
def remove_tag_from_messages(id, *message_ids)
|
23
|
+
@request.put(['tags', id.to_s, 'remove'], messages: message_ids.flatten)
|
24
|
+
end
|
25
|
+
|
26
|
+
def delete_tag(id)
|
27
|
+
@request.delete(['tags', id.to_s])
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'people/people_reassign'
|
4
|
+
module Teamlab
|
5
|
+
class People
|
6
|
+
include PeopleReassign
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@request = Teamlab::Request.new('people')
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_people
|
13
|
+
@request.get
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_self
|
17
|
+
@request.get(['@self'])
|
18
|
+
end
|
19
|
+
|
20
|
+
def search_people(query)
|
21
|
+
@request.get(['search'], query: query)
|
22
|
+
end
|
23
|
+
|
24
|
+
def filter_people(filters)
|
25
|
+
@request.get(['filter'], filters)
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_user_by_username(username)
|
29
|
+
@request.get([username.to_s])
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_people_by_status(status)
|
33
|
+
@request.get(['status', status])
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_people_by_search_query(query)
|
37
|
+
@request.get(['@search', query])
|
38
|
+
end
|
39
|
+
|
40
|
+
def search_with_status(status, query)
|
41
|
+
@request.get(['status', status.to_s, 'search'], query: query.to_s)
|
42
|
+
end
|
43
|
+
|
44
|
+
def add_user(is_visitor, email, firstname, lastname, options = {})
|
45
|
+
@request.post(nil, { isVisitor: is_visitor, email: email, firstname: firstname, lastname: lastname }.merge(options))
|
46
|
+
end
|
47
|
+
|
48
|
+
def active(options = {})
|
49
|
+
@request.post(['active'], options) # TODO: need some fixing
|
50
|
+
end
|
51
|
+
|
52
|
+
def update_contacts(user_id, contacts = {})
|
53
|
+
@request.post([user_id, 'contacts'], contacts)
|
54
|
+
end
|
55
|
+
|
56
|
+
def send_invite(*user_ids)
|
57
|
+
@request.put(['invite'], userIds: user_ids.flatten)
|
58
|
+
end
|
59
|
+
|
60
|
+
def delete(*user_ids)
|
61
|
+
@request.put(['delete'], userIds: user_ids.flatten)
|
62
|
+
end
|
63
|
+
|
64
|
+
def update_user(user_id, is_visitor, email, firstname, lastname, options = {})
|
65
|
+
@request.put([user_id.to_s], { isVisitor: is_visitor, email: email, firstname: firstname, lastname: lastname }.merge(options))
|
66
|
+
end
|
67
|
+
|
68
|
+
def change_people_type(type, user_ids)
|
69
|
+
@request.put(['type', type.to_s], userIds: user_ids)
|
70
|
+
end
|
71
|
+
|
72
|
+
def update_photo(user_id, path)
|
73
|
+
@request.put([user_id.to_s, 'photo'], files: path)
|
74
|
+
end
|
75
|
+
|
76
|
+
def change_people_status(status, user_ids)
|
77
|
+
@request.put(['status', status], userIds: user_ids)
|
78
|
+
end
|
79
|
+
|
80
|
+
def add_contacts(contacts, user_id)
|
81
|
+
@request.put([user_id, 'contacts'], contacts: contacts)
|
82
|
+
end
|
83
|
+
|
84
|
+
def link_account(profile)
|
85
|
+
@request.put([%w[thirdparty linkaccount]], serializedProfile: profile)
|
86
|
+
end
|
87
|
+
|
88
|
+
def delete_user(user_id)
|
89
|
+
@request.delete([user_id])
|
90
|
+
end
|
91
|
+
|
92
|
+
def delete_photo(user_id)
|
93
|
+
@request.delete([user_id, 'photo'])
|
94
|
+
end
|
95
|
+
|
96
|
+
def delete_contacts(user_id, contacts)
|
97
|
+
@request.delete([user_id, 'contacts'], contacts: contacts)
|
98
|
+
end
|
99
|
+
|
100
|
+
def unlink_account(provider)
|
101
|
+
@request.delete([%w[thirdparty unlinkaccount]], provider: provider)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
# Module for people reassign data
|
5
|
+
module PeopleReassign
|
6
|
+
# Start a reassign process
|
7
|
+
# @param from_user_id [String] guid of user from whom reassign
|
8
|
+
# @param to_user_id [String] guid of user to whom reassign
|
9
|
+
# @param delete_profile [True, False] Delete profile when reassignment will be finished
|
10
|
+
def start_reassign_user_data(from_user_id, to_user_id, delete_profile = true)
|
11
|
+
@request.post(%w[reassign start], fromUserId: from_user_id, toUserId: to_user_id, deleteProfile: delete_profile)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Returns the progress of the started reassign process
|
15
|
+
# @param from_user_id [String] User ID (guid) whose data is reassigned
|
16
|
+
def get_reassign_progress(from_user_id)
|
17
|
+
@request.get(%w[reassign progress], userId: from_user_id)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Terminate reassign process
|
21
|
+
# @param user_id [String] User ID (guid) whose data is reassigned
|
22
|
+
def terminate_reassign(user_id)
|
23
|
+
@request.put(%w[reassign terminate], userId: user_id)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Teamlab
|
4
|
+
class Portal
|
5
|
+
def initialize
|
6
|
+
@request = Teamlab::Request.new('portal')
|
7
|
+
end
|
8
|
+
|
9
|
+
def invite_user_url
|
10
|
+
@request.get(%w[users invite user])
|
11
|
+
end
|
12
|
+
|
13
|
+
def invite_visitor_url
|
14
|
+
@request.get(%w[users invite visitor])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'projects/projects_comments'
|
4
|
+
require_relative 'projects/projects_contacts'
|
5
|
+
require_relative 'projects/projects_discussions'
|
6
|
+
require_relative 'projects/projects_files'
|
7
|
+
require_relative 'projects/projects_milestones'
|
8
|
+
require_relative 'projects/projects_projects'
|
9
|
+
require_relative 'projects/projects_reports'
|
10
|
+
require_relative 'projects/projects_settings'
|
11
|
+
require_relative 'projects/projects_tags'
|
12
|
+
require_relative 'projects/projects_tasks'
|
13
|
+
require_relative 'projects/projects_team'
|
14
|
+
require_relative 'projects/projects_templates'
|
15
|
+
require_relative 'projects/projects_time'
|
16
|
+
|
17
|
+
module Teamlab
|
18
|
+
class Project
|
19
|
+
include ProjectsComments
|
20
|
+
include ProjectsContacts
|
21
|
+
include ProjectsDiscussions
|
22
|
+
include ProjectsFiles
|
23
|
+
include ProjectsMilestones
|
24
|
+
include ProjectsProjects
|
25
|
+
include ProjectsReports
|
26
|
+
include ProjectsSettings
|
27
|
+
include ProjectsTags
|
28
|
+
include ProjectsTasks
|
29
|
+
include ProjectsTeam
|
30
|
+
include ProjectsTemplates
|
31
|
+
include ProjectsTime
|
32
|
+
|
33
|
+
def initialize
|
34
|
+
@request = Teamlab::Request.new('project')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|