teamlab 0.3.16 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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