teamlab 0.3.16 → 0.4.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/.overcommit.yml +34 -0
- data/.rubocop.yml +2 -0
- data/.rubocop_todo.yml +85 -0
- data/.travis.yml +6 -0
- data/Changelog.md +4 -0
- data/Gemfile +2 -0
- data/Rakefile +9 -0
- data/lib/teamlab/{Config.rb → config.rb} +5 -5
- data/lib/teamlab/{Modules/Calendar.rb → modules/calendar.rb} +12 -13
- data/lib/teamlab/{Modules/Community.rb → modules/community.rb} +16 -17
- data/lib/teamlab/{Modules/Crm.rb → modules/crm.rb} +62 -63
- data/lib/teamlab/{Modules/Files.rb → modules/files.rb} +14 -15
- data/lib/teamlab/{Modules/Group.rb → modules/group.rb} +6 -8
- data/lib/teamlab/{Modules/Mail.rb → modules/mail.rb} +34 -36
- data/lib/teamlab/{Modules/People.rb → modules/people.rb} +16 -18
- data/lib/teamlab/modules/portals.rb +15 -0
- data/lib/teamlab/{Modules/Project.rb → modules/project.rb} +46 -46
- data/lib/teamlab/{Modules/Settings.rb → modules/settings.rb} +1 -3
- data/lib/teamlab/{Request.rb → request.rb} +5 -5
- data/lib/teamlab/{Response.rb → response.rb} +3 -5
- data/lib/teamlab/version.rb +1 -1
- data/lib/teamlab.rb +18 -14
- data/spec/lib/calendar_spec.rb +2 -3
- data/spec/lib/community_spec.rb +3 -4
- data/spec/lib/crm_spec.rb +25 -26
- data/spec/lib/files_spec.rb +19 -19
- data/spec/lib/group_spec.rb +2 -2
- data/spec/lib/mail_spec.rb +2 -3
- data/spec/lib/people_spec.rb +2 -2
- data/spec/lib/portal_spec.rb +25 -0
- data/spec/lib/project_spec.rb +6 -8
- data/spec/lib/settings_spec.rb +2 -2
- data/spec/lib/{Teamlab_spec.rb → teamlab_spec.rb} +1 -5
- data/spec/spec_helper.rb +1 -2
- data/spec/support/http_data.rb +23 -23
- data/teamlab.gemspec +6 -6
- metadata +23 -16
@@ -1,14 +1,13 @@
|
|
1
1
|
module Teamlab
|
2
2
|
class Mail
|
3
|
-
|
4
3
|
def initialize
|
5
4
|
@request = Teamlab::Request.new('mail')
|
6
5
|
end
|
7
6
|
|
8
|
-
#region Messages
|
7
|
+
# region Messages
|
9
8
|
|
10
9
|
def get_filtered_messages(page, options = {})
|
11
|
-
@request.get(%w(messages), {page: page}.merge(options))
|
10
|
+
@request.get(%w(messages), { page: page }.merge(options))
|
12
11
|
end
|
13
12
|
|
14
13
|
def get_message(id, options = {})
|
@@ -28,15 +27,15 @@ module Teamlab
|
|
28
27
|
end
|
29
28
|
|
30
29
|
def set_message_crm_status(emails, *user_ids)
|
31
|
-
@request.post(%w(messages update_crm),
|
30
|
+
@request.post(%w(messages update_crm), emails: emails, userIds: user_ids.flatten)
|
32
31
|
end
|
33
32
|
|
34
33
|
def attach_teamlab_document(message_id, file_id, options = {})
|
35
|
-
@request.post(['messages', message_id.to_s, 'document'], {fileId: file_id}.merge(options))
|
34
|
+
@request.post(['messages', message_id.to_s, 'document'], { fileId: file_id }.merge(options))
|
36
35
|
end
|
37
36
|
|
38
37
|
def set_message_status(status, *ids)
|
39
|
-
@request.put(%w(messages mark),
|
38
|
+
@request.put(%w(messages mark), status: status, ids: ids.flatten)
|
40
39
|
end
|
41
40
|
|
42
41
|
def move_messages_to_folder(folder_id, *message_ids)
|
@@ -44,11 +43,11 @@ module Teamlab
|
|
44
43
|
end
|
45
44
|
|
46
45
|
def send_message(id, options = {})
|
47
|
-
@request.put(%w(messages send), {id: id}.merge(options))
|
46
|
+
@request.put(%w(messages send), { id: id }.merge(options))
|
48
47
|
end
|
49
48
|
|
50
49
|
def save_message(id, options = {})
|
51
|
-
@request.put(%w(messages save), {id: id}.merge(options))
|
50
|
+
@request.put(%w(messages save), { id: id }.merge(options))
|
52
51
|
end
|
53
52
|
|
54
53
|
def remove_messages(*ids)
|
@@ -75,25 +74,25 @@ module Teamlab
|
|
75
74
|
@request.delete(['messages', message_id.to_s, 'attachments', attachment_id.to_s])
|
76
75
|
end
|
77
76
|
|
78
|
-
#endregion
|
77
|
+
# endregion
|
79
78
|
|
80
|
-
#region HelpCenter
|
79
|
+
# region HelpCenter
|
81
80
|
|
82
81
|
def get_html_of_help_center
|
83
82
|
@request.get(%w(helpcenter))
|
84
83
|
end
|
85
84
|
|
86
|
-
#endregion
|
85
|
+
# endregion
|
87
86
|
|
88
87
|
def get_meail_signature(mailbox_id)
|
89
88
|
@request.get(['signature', mailbox_id.to_s])
|
90
89
|
end
|
91
90
|
|
92
91
|
def update_signature(mailbox_id, html, options = {})
|
93
|
-
@request.post(['signature', 'update', mailbox_id.to_s], {html: html}.merge(options))
|
92
|
+
@request.post(['signature', 'update', mailbox_id.to_s], { html: html }.merge(options))
|
94
93
|
end
|
95
94
|
|
96
|
-
#region Accounts
|
95
|
+
# region Accounts
|
97
96
|
|
98
97
|
def get_account_list
|
99
98
|
@request.get(%w(accounts))
|
@@ -108,19 +107,19 @@ module Teamlab
|
|
108
107
|
end
|
109
108
|
|
110
109
|
def create_account_with_custom_mail_service(name, email, account, password, options = {})
|
111
|
-
@request.post(%w(accounts), {name: name, email: email, account: account, password: password}.merge(options))
|
110
|
+
@request.post(%w(accounts), { name: name, email: email, account: account, password: password }.merge(options))
|
112
111
|
end
|
113
112
|
|
114
113
|
def create_oauth_account(email, token, options = {})
|
115
|
-
@request.post(%w(accounts oauth), {email: email, token: token}.merge(options))
|
114
|
+
@request.post(%w(accounts oauth), { email: email, token: token }.merge(options))
|
116
115
|
end
|
117
116
|
|
118
117
|
def create_account_by_email(email, password)
|
119
|
-
@request.post(%w(accounts simple),
|
118
|
+
@request.post(%w(accounts simple), email: email, password: password)
|
120
119
|
end
|
121
120
|
|
122
121
|
def update_account(name, email, password, options = {})
|
123
|
-
@request.put(%w(accounts), {name: name, email: email, password: password}.merge(options))
|
122
|
+
@request.put(%w(accounts), { name: name, email: email, password: password }.merge(options))
|
124
123
|
end
|
125
124
|
|
126
125
|
def set_account_state(email, state)
|
@@ -134,12 +133,12 @@ module Teamlab
|
|
134
133
|
def delete_account(email)
|
135
134
|
@request.delete(['accounts', email.to_s])
|
136
135
|
rescue
|
137
|
-
@request.delete(['accounts'],
|
136
|
+
@request.delete(['accounts'], email: email.to_s) # for version 8.7
|
138
137
|
end
|
139
138
|
|
140
|
-
#endregion
|
139
|
+
# endregion
|
141
140
|
|
142
|
-
#region Alerts
|
141
|
+
# region Alerts
|
143
142
|
|
144
143
|
def get_alerts_list
|
145
144
|
@request.get('alert')
|
@@ -149,9 +148,9 @@ module Teamlab
|
|
149
148
|
@request.delete(['alert', id.to_s])
|
150
149
|
end
|
151
150
|
|
152
|
-
#endregion
|
151
|
+
# endregion
|
153
152
|
|
154
|
-
#region Contacts
|
153
|
+
# region Contacts
|
155
154
|
|
156
155
|
def get_contact_list_for_auto_complete(term)
|
157
156
|
@request.get(%w(contacts), term: term)
|
@@ -161,9 +160,9 @@ module Teamlab
|
|
161
160
|
@request.get(%w(crm linked entities), messageId: message_id)
|
162
161
|
end
|
163
162
|
|
164
|
-
#endregion
|
163
|
+
# endregion
|
165
164
|
|
166
|
-
#region Conversations
|
165
|
+
# region Conversations
|
167
166
|
|
168
167
|
def get_filtered_conversations(options = {})
|
169
168
|
@request.get(%w(conversations), options)
|
@@ -213,9 +212,9 @@ module Teamlab
|
|
213
212
|
@request.put(['conversations', 'tag', tag_id.to_s, 'unset'], messages: conversation_ids.flatten)
|
214
213
|
end
|
215
214
|
|
216
|
-
#endregion
|
215
|
+
# endregion
|
217
216
|
|
218
|
-
#region Folders
|
217
|
+
# region Folders
|
219
218
|
|
220
219
|
def get_folders(options = {})
|
221
220
|
@request.get(%w(folders), options)
|
@@ -229,17 +228,17 @@ module Teamlab
|
|
229
228
|
@request.get(['folders', folder_id.to_s, 'messages'])
|
230
229
|
end
|
231
230
|
|
232
|
-
#endregion
|
231
|
+
# endregion
|
233
232
|
|
234
|
-
#region GUID
|
233
|
+
# region GUID
|
235
234
|
|
236
235
|
def generate_custom_guid
|
237
236
|
@request.get(%w(random_guid))
|
238
237
|
end
|
239
238
|
|
240
|
-
#endregion
|
239
|
+
# endregion
|
241
240
|
|
242
|
-
#region IMAGES
|
241
|
+
# region IMAGES
|
243
242
|
|
244
243
|
def get_trusted_addresses
|
245
244
|
@request.get(%w(display_messages addresses))
|
@@ -253,20 +252,20 @@ module Teamlab
|
|
253
252
|
@request.delete(%w(display_messages addresses), addres: address)
|
254
253
|
end
|
255
254
|
|
256
|
-
#endregion
|
255
|
+
# endregion
|
257
256
|
|
258
|
-
#region Tags
|
257
|
+
# region Tags
|
259
258
|
|
260
259
|
def get_tag_list
|
261
260
|
@request.get(%w(tags))
|
262
261
|
end
|
263
262
|
|
264
263
|
def create_tag(name, options = {})
|
265
|
-
@request.post(%w(tags), {name: name}.merge(options))
|
264
|
+
@request.post(%w(tags), { name: name }.merge(options))
|
266
265
|
end
|
267
266
|
|
268
267
|
def update_tag(id, name, options = {})
|
269
|
-
@request.put(['tags', id.to_s], {name: name}.merge(options))
|
268
|
+
@request.put(['tags', id.to_s], { name: name }.merge(options))
|
270
269
|
end
|
271
270
|
|
272
271
|
def set_tag_to_messages(id, *message_ids)
|
@@ -281,7 +280,6 @@ module Teamlab
|
|
281
280
|
@request.delete(['tags', id.to_s])
|
282
281
|
end
|
283
282
|
|
284
|
-
#endregion
|
283
|
+
# endregion
|
285
284
|
end
|
286
285
|
end
|
287
|
-
|
@@ -1,7 +1,5 @@
|
|
1
1
|
module Teamlab
|
2
|
-
|
3
2
|
class People
|
4
|
-
|
5
3
|
def initialize
|
6
4
|
@request = Teamlab::Request.new('people')
|
7
5
|
end
|
@@ -15,7 +13,7 @@ module Teamlab
|
|
15
13
|
end
|
16
14
|
|
17
15
|
def search_people(query)
|
18
|
-
@request.get(['search'],
|
16
|
+
@request.get(['search'], query: query)
|
19
17
|
end
|
20
18
|
|
21
19
|
def filter_people(filters)
|
@@ -35,19 +33,19 @@ module Teamlab
|
|
35
33
|
end
|
36
34
|
|
37
35
|
def remind_password(user_id, email)
|
38
|
-
@request.get([user_id, 'password'],
|
36
|
+
@request.get([user_id, 'password'], email: email)
|
39
37
|
end
|
40
38
|
|
41
39
|
def search_with_status(status, query)
|
42
|
-
@request.get(['status', status.to_s, 'search'],
|
40
|
+
@request.get(['status', status.to_s, 'search'], query: query.to_s)
|
43
41
|
end
|
44
42
|
|
45
43
|
def add_user(is_visitor, email, firstname, lastname, options = {})
|
46
|
-
@request.post(nil
|
44
|
+
@request.post(nil, { isVisitor: is_visitor, email: email, firstname: firstname, lastname: lastname }.merge(options))
|
47
45
|
end
|
48
46
|
|
49
47
|
def active(options = {})
|
50
|
-
@request.post(['active'], options)
|
48
|
+
@request.post(['active'], options) # TODO: need some fixing
|
51
49
|
end
|
52
50
|
|
53
51
|
def update_contacts(user_id, contacts = {})
|
@@ -55,35 +53,35 @@ module Teamlab
|
|
55
53
|
end
|
56
54
|
|
57
55
|
def send_invite(*user_ids)
|
58
|
-
@request.put(['invite'],
|
56
|
+
@request.put(['invite'], userIds: user_ids.flatten)
|
59
57
|
end
|
60
58
|
|
61
59
|
def delete(*user_ids)
|
62
|
-
@request.put(['delete'],
|
60
|
+
@request.put(['delete'], userIds: user_ids.flatten)
|
63
61
|
end
|
64
62
|
|
65
63
|
def update_user(user_id, is_visitor, email, firstname, lastname, options = {})
|
66
|
-
@request.put([user_id.to_s], { isVisitor: is_visitor, email: email, firstname: firstname, lastname: lastname}.merge(options)
|
64
|
+
@request.put([user_id.to_s], { isVisitor: is_visitor, email: email, firstname: firstname, lastname: lastname }.merge(options))
|
67
65
|
end
|
68
66
|
|
69
67
|
def change_people_type(type, user_ids)
|
70
|
-
@request.put(['type', type.to_s],
|
68
|
+
@request.put(['type', type.to_s], userIds: user_ids)
|
71
69
|
end
|
72
70
|
|
73
71
|
def update_photo(user_id, path)
|
74
|
-
@request.put([user_id.to_s, 'photo'],
|
72
|
+
@request.put([user_id.to_s, 'photo'], files: path)
|
75
73
|
end
|
76
74
|
|
77
75
|
def change_people_status(status, user_ids)
|
78
|
-
@request.put(['status', status],
|
76
|
+
@request.put(['status', status], userIds: user_ids)
|
79
77
|
end
|
80
78
|
|
81
79
|
def add_contacts(contacts, user_id)
|
82
|
-
@request.put([user_id, 'contacts'],
|
80
|
+
@request.put([user_id, 'contacts'], contacts: contacts)
|
83
81
|
end
|
84
82
|
|
85
83
|
def link_account(profile)
|
86
|
-
@request.put([%w(thirdparty linkaccount)],
|
84
|
+
@request.put([%w(thirdparty linkaccount)], serializedProfile: profile)
|
87
85
|
end
|
88
86
|
|
89
87
|
def delete_user(user_id)
|
@@ -95,11 +93,11 @@ module Teamlab
|
|
95
93
|
end
|
96
94
|
|
97
95
|
def delete_contacts(user_id, contacts)
|
98
|
-
@request.delete([user_id, 'contacts'],
|
96
|
+
@request.delete([user_id, 'contacts'], contacts: contacts)
|
99
97
|
end
|
100
98
|
|
101
99
|
def unlink_account(provider)
|
102
|
-
@request.delete([%
|
100
|
+
@request.delete([%w(thirdparty unlinkaccount)], provider: provider)
|
103
101
|
end
|
104
102
|
end
|
105
|
-
end
|
103
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Teamlab
|
2
|
+
class Portal
|
3
|
+
def initialize
|
4
|
+
@request = Teamlab::Request.new('portal')
|
5
|
+
end
|
6
|
+
|
7
|
+
def invite_user_url
|
8
|
+
@request.get(%w(users invite user))
|
9
|
+
end
|
10
|
+
|
11
|
+
def invite_visitor_url
|
12
|
+
@request.get(%w(users invite visitor))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -4,7 +4,7 @@ module Teamlab
|
|
4
4
|
@request = Teamlab::Request.new('project')
|
5
5
|
end
|
6
6
|
|
7
|
-
#region Import
|
7
|
+
# region Import
|
8
8
|
|
9
9
|
def get_import_status
|
10
10
|
@request.get(['import'])
|
@@ -12,26 +12,26 @@ module Teamlab
|
|
12
12
|
|
13
13
|
def add_importing_url_to_queue(company_url, username, password, import_closed, disable_notifications, import_users_as_collaborators, projects = [])
|
14
14
|
@request.post(%w(import), url: company_url, userName: username, password: password, importClosed: import_closed,
|
15
|
-
|
15
|
+
disableNotifications: disable_notifications, importUsersAsCollaborators: import_users_as_collaborators, projects: projects)
|
16
16
|
end
|
17
17
|
|
18
18
|
def get_projects_for_import(url, username, password)
|
19
19
|
@request.post(%w(import projects), url: url, userName: username, password: password)
|
20
20
|
end
|
21
21
|
|
22
|
-
#endregion
|
22
|
+
# endregion
|
23
23
|
|
24
|
-
#region Discussions
|
24
|
+
# region Discussions
|
25
25
|
|
26
|
-
def get_latest_discussion_messages
|
26
|
+
def get_latest_discussion_messages
|
27
27
|
@request.get(['message'])
|
28
28
|
end
|
29
29
|
|
30
|
-
def get_message_by_filter(options = {})
|
30
|
+
def get_message_by_filter(options = {})
|
31
31
|
@request.get(%w(message filter), options)
|
32
32
|
end
|
33
33
|
|
34
|
-
def get_messages(project_id)
|
34
|
+
def get_messages(project_id)
|
35
35
|
@request.get([project_id.to_s, 'message'])
|
36
36
|
end
|
37
37
|
|
@@ -39,65 +39,65 @@ module Teamlab
|
|
39
39
|
@request.get(['message', message_id.to_s])
|
40
40
|
end
|
41
41
|
|
42
|
-
def check_subscription_to_discussion(message_id)
|
42
|
+
def check_subscription_to_discussion(message_id)
|
43
43
|
@request.get(['message', message_id.to_s, 'subscribe'])
|
44
44
|
end
|
45
45
|
|
46
|
-
def add_message(project_id, title, content, participants, options = {})
|
46
|
+
def add_message(project_id, title, content, participants, options = {})
|
47
47
|
@request.post([project_id.to_s, 'message'], { title: title, content: content, participants: participants }.merge(options))
|
48
48
|
end
|
49
49
|
|
50
|
-
def update_message(message_id, project_id, title, content, options = {})
|
50
|
+
def update_message(message_id, project_id, title, content, options = {})
|
51
51
|
@request.put(['message', message_id.to_s], { projectid: project_id, title: title, content: content }.merge(options))
|
52
52
|
end
|
53
53
|
|
54
54
|
def update_message_status(message_id, status)
|
55
|
-
@request.put(['message', message_id.to_s, 'status'],
|
55
|
+
@request.put(['message', message_id.to_s, 'status'], status: status)
|
56
56
|
end
|
57
57
|
|
58
|
-
def subscribe_to_message_action(message_id)
|
58
|
+
def subscribe_to_message_action(message_id)
|
59
59
|
@request.put(['message', message_id.to_s, 'subscribe'])
|
60
60
|
end
|
61
61
|
|
62
|
-
def delete_message(message_id)
|
62
|
+
def delete_message(message_id)
|
63
63
|
@request.delete(['message', message_id.to_s])
|
64
64
|
end
|
65
65
|
|
66
|
-
#endregion
|
66
|
+
# endregion
|
67
67
|
|
68
|
-
#region Files
|
68
|
+
# region Files
|
69
69
|
|
70
|
-
def get_task_files(task_id)
|
70
|
+
def get_task_files(task_id)
|
71
71
|
@request.get(['task', task_id.to_s, 'files'])
|
72
72
|
end
|
73
73
|
|
74
|
-
def get_entity_files(entity_id, entity_type)
|
74
|
+
def get_entity_files(entity_id, entity_type)
|
75
75
|
@request.get([entity_id.to_s, 'entityfiles'], entityType: entity_type)
|
76
76
|
end
|
77
77
|
|
78
|
-
def get_message_files(message_id)
|
78
|
+
def get_message_files(message_id)
|
79
79
|
@request.get(['message', message_id.to_s, 'files'])
|
80
80
|
end
|
81
81
|
|
82
|
-
def upload_file_to_task(task_id, *files)
|
82
|
+
def upload_file_to_task(task_id, *files)
|
83
83
|
@request.post(['task', task_id.to_s, 'files'], files: files.flatten)
|
84
84
|
end
|
85
85
|
|
86
|
-
def upload_file_to_message(message_id, *files)
|
86
|
+
def upload_file_to_message(message_id, *files)
|
87
87
|
@request.post(['message', message_id.to_s, 'files'], files: files.flatten)
|
88
88
|
end
|
89
89
|
|
90
|
-
def detach_file_from_task(task_id, file_id)
|
90
|
+
def detach_file_from_task(task_id, file_id)
|
91
91
|
@request.delete(['task', task_id.to_s, 'files'], fileid: file_id)
|
92
92
|
end
|
93
93
|
|
94
|
-
def detach_file_from_message(message_id, file_id)
|
94
|
+
def detach_file_from_message(message_id, file_id)
|
95
95
|
@request.delete(['message', message_id.to_s, 'files'], fileid: file_id)
|
96
96
|
end
|
97
97
|
|
98
|
-
#endregion
|
98
|
+
# endregion
|
99
99
|
|
100
|
-
#region Comment
|
100
|
+
# region Comment
|
101
101
|
|
102
102
|
def get_comment(comment_id)
|
103
103
|
@request.get(['comment', comment_id.to_s])
|
@@ -111,25 +111,25 @@ module Teamlab
|
|
111
111
|
@request.get(['message', message_id.to_s, 'comment'])
|
112
112
|
end
|
113
113
|
|
114
|
-
def add_task_comment(task_id, content, options = {})
|
114
|
+
def add_task_comment(task_id, content, options = {})
|
115
115
|
@request.post(['task', task_id.to_s, 'comment'], { content: content }.merge(options))
|
116
116
|
end
|
117
117
|
|
118
|
-
def add_message_comment(message_id, content, options = {})
|
118
|
+
def add_message_comment(message_id, content, options = {})
|
119
119
|
@request.post(['message', message_id.to_s, 'comment'], { content: content }.merge(options))
|
120
120
|
end
|
121
121
|
|
122
|
-
def update_comment(comment_id, content)
|
122
|
+
def update_comment(comment_id, content)
|
123
123
|
@request.put(['comment', comment_id.to_s], content: content)
|
124
124
|
end
|
125
125
|
|
126
|
-
def delete_comment(comment_id)
|
126
|
+
def delete_comment(comment_id)
|
127
127
|
@request.delete(['comment', comment_id.to_s])
|
128
128
|
end
|
129
129
|
|
130
|
-
#endregion
|
130
|
+
# endregion
|
131
131
|
|
132
|
-
#region Report Template
|
132
|
+
# region Report Template
|
133
133
|
|
134
134
|
def create_report_template(name, options = {})
|
135
135
|
@request.post(['report'], { name: name }.merge(options))
|
@@ -143,9 +143,9 @@ module Teamlab
|
|
143
143
|
@request.delete(['report', report_id.to_s])
|
144
144
|
end
|
145
145
|
|
146
|
-
#endregion
|
146
|
+
# endregion
|
147
147
|
|
148
|
-
#region Projects
|
148
|
+
# region Projects
|
149
149
|
|
150
150
|
def get_projects
|
151
151
|
@request.get
|
@@ -204,7 +204,7 @@ module Teamlab
|
|
204
204
|
end
|
205
205
|
|
206
206
|
def create_project(title, description, responsible_id, tags, private, options = {})
|
207
|
-
@request.post('', { title: title, description: description, responsibleid: responsible_id, tags: tags, private: private}.merge(options))
|
207
|
+
@request.post('', { title: title, description: description, responsibleid: responsible_id, tags: tags, private: private }.merge(options))
|
208
208
|
end
|
209
209
|
|
210
210
|
def create_template(title, options = {})
|
@@ -212,7 +212,7 @@ module Teamlab
|
|
212
212
|
end
|
213
213
|
|
214
214
|
def add_milestone(project_id, title, deadline, responsible_id, options = {})
|
215
|
-
@request.post([project_id.to_s, 'milestone'], {title: title, deadline: deadline, responsible: responsible_id}.merge(options))
|
215
|
+
@request.post([project_id.to_s, 'milestone'], { title: title, deadline: deadline, responsible: responsible_id }.merge(options))
|
216
216
|
end
|
217
217
|
|
218
218
|
def update_project_tags(id, tags)
|
@@ -243,7 +243,7 @@ module Teamlab
|
|
243
243
|
@request.delete(['task', id.to_s])
|
244
244
|
end
|
245
245
|
|
246
|
-
#endregion
|
246
|
+
# endregion
|
247
247
|
|
248
248
|
def get_tasks_by_ids(*task_ids)
|
249
249
|
@request.get(['task'], taskid: task_ids.flatten)
|
@@ -270,10 +270,10 @@ module Teamlab
|
|
270
270
|
end
|
271
271
|
|
272
272
|
def update_project_task(task_id, title, options = {})
|
273
|
-
@request.put(['task', task_id.to_s], {title: title.to_s}.merge(options))
|
273
|
+
@request.put(['task', task_id.to_s], { title: title.to_s }.merge(options))
|
274
274
|
end
|
275
275
|
|
276
|
-
#region Team
|
276
|
+
# region Team
|
277
277
|
|
278
278
|
def get_project_team(project_id)
|
279
279
|
@request.get([project_id.to_s, 'team'])
|
@@ -299,9 +299,9 @@ module Teamlab
|
|
299
299
|
@request.delete([project_id.to_s, 'team'], userId: user_id)
|
300
300
|
end
|
301
301
|
|
302
|
-
#endregion
|
302
|
+
# endregion
|
303
303
|
|
304
|
-
#region Tasks
|
304
|
+
# region Tasks
|
305
305
|
|
306
306
|
def get_my_tasks
|
307
307
|
@request.get(%w(task @self))
|
@@ -344,7 +344,7 @@ module Teamlab
|
|
344
344
|
end
|
345
345
|
|
346
346
|
def create_subtask(task_id, responsible_id, title)
|
347
|
-
@request.post(['task', task_id.to_s],
|
347
|
+
@request.post(['task', task_id.to_s], responsible: responsible_id, title: title)
|
348
348
|
end
|
349
349
|
|
350
350
|
def add_task(project_id, title, options = {})
|
@@ -379,9 +379,9 @@ module Teamlab
|
|
379
379
|
@request.delete(['task', task_id.to_s, subtask_id.to_s])
|
380
380
|
end
|
381
381
|
|
382
|
-
#endregion
|
382
|
+
# endregion
|
383
383
|
|
384
|
-
#region Contacts
|
384
|
+
# region Contacts
|
385
385
|
|
386
386
|
def get_projects_for_contact(contact_id)
|
387
387
|
@request.get(['contact', contact_id.to_s])
|
@@ -395,9 +395,9 @@ module Teamlab
|
|
395
395
|
@request.delete([project_id.to_s, 'contact'], contactId: contact_id)
|
396
396
|
end
|
397
397
|
|
398
|
-
#endregion
|
398
|
+
# endregion
|
399
399
|
|
400
|
-
#region Tags
|
400
|
+
# region Tags
|
401
401
|
|
402
402
|
def get_project_tags
|
403
403
|
@request.get(%w(tag))
|
@@ -411,7 +411,7 @@ module Teamlab
|
|
411
411
|
@request.get(%w(tag search), tagName: tag_name)
|
412
412
|
end
|
413
413
|
|
414
|
-
#endregion
|
414
|
+
# endregion
|
415
415
|
|
416
416
|
def get_upcoming_milestones
|
417
417
|
@request.get(%w(milestone))
|
@@ -481,4 +481,4 @@ module Teamlab
|
|
481
481
|
@request.delete(%w(time times remove), timeIds: time_ids.flatten)
|
482
482
|
end
|
483
483
|
end
|
484
|
-
end
|
484
|
+
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
module Teamlab
|
2
|
-
|
3
2
|
class Settings
|
4
|
-
|
5
3
|
def initialize
|
6
4
|
@request = Teamlab::Request.new('settings')
|
7
5
|
end
|
@@ -71,7 +69,7 @@ module Teamlab
|
|
71
69
|
end
|
72
70
|
|
73
71
|
def set_access(id, enabled = true)
|
74
|
-
@request.put(%w(security access), items:[{key: id, value: enabled}])
|
72
|
+
@request.put(%w(security access), items: [{ key: id, value: enabled }])
|
75
73
|
end
|
76
74
|
|
77
75
|
def set_product_admin(product_id, user_id, administrator = true)
|
@@ -2,11 +2,11 @@ require 'net/http'
|
|
2
2
|
require 'json'
|
3
3
|
require 'httparty'
|
4
4
|
require 'httmultiparty'
|
5
|
-
require_relative '
|
5
|
+
require_relative 'response'
|
6
6
|
|
7
7
|
module Teamlab
|
8
8
|
class Request
|
9
|
-
#include HTTParty
|
9
|
+
# include HTTParty
|
10
10
|
include HTTMultiParty
|
11
11
|
|
12
12
|
def initialize(api_additive)
|
@@ -42,9 +42,9 @@ module Teamlab
|
|
42
42
|
retry if attempts < 3
|
43
43
|
raise "Can't #{type} to #{url} because of TimeoutError: #{timeout_exception}"
|
44
44
|
rescue Exception => e
|
45
|
-
|
45
|
+
raise e
|
46
46
|
end
|
47
|
-
fail "Error #{response.code}: #{response.error
|
47
|
+
fail "Error #{response.code}: #{response.error}" unless response.success
|
48
48
|
response
|
49
49
|
end
|
50
50
|
|
@@ -65,4 +65,4 @@ module Teamlab
|
|
65
65
|
[command, opts]
|
66
66
|
end
|
67
67
|
end
|
68
|
-
end
|
68
|
+
end
|
@@ -1,12 +1,10 @@
|
|
1
1
|
module Teamlab
|
2
|
-
|
3
2
|
class Response
|
4
|
-
|
5
3
|
attr_reader :body, :error, :code, :success
|
6
4
|
|
7
5
|
def initialize(http_response)
|
8
6
|
if http_response.is_a?(String) && http_response.code < 400
|
9
|
-
@body = {:
|
7
|
+
@body = { response: http_response.to_s }
|
10
8
|
@success = true
|
11
9
|
@code = 201
|
12
10
|
else
|
@@ -15,8 +13,8 @@ module Teamlab
|
|
15
13
|
fail "Error #{@code}" if @code >= 400
|
16
14
|
fail TimeoutError, 'Portal is warming up' if http_response.parsed_response.include?('portal is being warmed')
|
17
15
|
@body = http_response.respond_to?(:parsed_response) && http_response.parsed_response.key?('result') ? http_response.parsed_response['result'] : http_response.to_hash
|
18
|
-
@error = @body['error']['message'] if @body.key?('error') && @body['error'].key?('message')
|
16
|
+
@error = @body['error']['message'] if @body.key?('error') && @body['error'].key?('message')
|
19
17
|
end
|
20
18
|
end
|
21
19
|
end
|
22
|
-
end
|
20
|
+
end
|
data/lib/teamlab/version.rb
CHANGED