teamlab 0.2.1 → 0.2.2

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.
@@ -5,22 +5,254 @@ module Teamlab
5
5
  @request = Teamlab::Request.new('mail')
6
6
  end
7
7
 
8
+ #region Messages
9
+
10
+ def get_filtered_messages(page, options = {})
11
+ @request.get(%w(messages), {page: page}.merge(options))
12
+ end
13
+
8
14
  def get_message(id, options = {})
9
15
  @request.get(['messages', id.to_s], options)
10
16
  end
11
17
 
18
+ def get_message_template
19
+ @request.get(%w(messages template))
20
+ end
21
+
22
+ def get_message_modify_date
23
+ @request.get(%w(messages modify_date))
24
+ end
25
+
26
+ def get_previous_or_next_message_id(id, direction, options = {})
27
+ @request.get(['messages', id.to_s, direction.to_s], options)
28
+ end
29
+
30
+ def set_message_crm_status(emails, *user_ids)
31
+ @request.post(%w(messages update_crm), {emails: emails, userIds: user_ids.flatten})
32
+ end
33
+
34
+ def attach_teamlab_document(message_id, file_id, options = {})
35
+ @request.post(['messages', message_id.to_s, 'document'], {fileId: file_id}.merge(options))
36
+ end
37
+
38
+ def set_message_status(status, *ids)
39
+ @request.put(%w(messages mark), {status: status, ids: ids.flatten})
40
+ end
41
+
42
+ def move_messages_to_folder(folder_id, *message_ids)
43
+ @request.put(%w(,essages move), folderId: folder_id, ids: message_ids.flatten)
44
+ end
45
+
46
+ def send_message(id, options = {})
47
+ @request.put(%w(messages send), {id: id}.merge(options))
48
+ end
49
+
50
+ def save_message(id, options = {})
51
+ @request.put(%w(messages save), {id: id}.merge(options))
52
+ end
53
+
54
+ def remove_messages(*ids)
55
+ @request.put(%w(messages remove), ids: ids.flatten)
56
+ end
57
+
58
+ def restore_message_to_folders
59
+ @request.put(%w(messages restore))
60
+ end
61
+
62
+ def export_mail_to_crm_relations_history(message_id, *crm_contact_ids)
63
+ @request.put(%w(messages crm export), messageId: message_id, crmContactIds: crm_contact_ids.flatten)
64
+ end
65
+
66
+ def export_attachments_to_my_docs(attachment_id)
67
+ @request.put(%w(attachment mydocuments export), attachmentId: attachment_id)
68
+ end
69
+
70
+ def export_all_message_attachments_to_my_docs(message_id)
71
+ @request.put(%w(attachments mydocuments export), messageId: message_id)
72
+ end
73
+
74
+ def delete_attachment_from_message(message_id, attachment_id)
75
+ @request.delete(['messages', message_id.to_s, 'attachments', attachment_id.to_s])
76
+ end
77
+
78
+ #endregion
79
+
80
+ #region HelpCenter
81
+
82
+ def get_html_of_help_center
83
+ @request.get(%w(helpcenter))
84
+ end
85
+
86
+ #endregion
87
+
88
+ def get_meail_signature(mailbox_id)
89
+ @request.get(['signature', mailbox_id.to_s])
90
+ end
91
+
92
+ def update_signature(mailbox_id, html, options = {})
93
+ @request.post(['signature', 'update', mailbox_id.to_s], {html: html}.merge(options))
94
+ end
95
+
96
+ #region Accounts
97
+
12
98
  def get_account_list
13
99
  @request.get(%w(accounts))
14
100
  end
15
101
 
102
+ def get_account_by_email(email)
103
+ @request.get(['accounts', email.to_s])
104
+ end
105
+
106
+ def get_default_account_settings(email, options = {})
107
+ @request.get(['accounts', email.to_s, 'default'], options)
108
+ end
109
+
110
+ 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))
112
+ end
113
+
114
+ def create_oauth_account(email, token, options = {})
115
+ @request.post(%w(accounts oauth), {email: email, token: token}.merge(options))
116
+ end
117
+
16
118
  def create_account_by_email(email, password)
17
119
  @request.post(%w(accounts simple), {email: email, password: password})
18
120
  end
19
121
 
122
+ def update_account(name, email, password, options = {})
123
+ @request.put(%w(accounts), {name: name, email: email, password: password}.merge(options))
124
+ end
125
+
126
+ def set_account_state(email, state)
127
+ @request.put(['accounts', email.to_s, 'state'], state: state)
128
+ end
129
+
130
+ def set_account_state_by_mailbox(mailbox_id, email_in_folder)
131
+ @request.put(['accounts', mailbox_id.to_s, 'emailinfolder'], emailInFolder: email_in_folder)
132
+ end
133
+
20
134
  def delete_account(email)
21
135
  @request.delete(['accounts', email.to_s])
22
136
  end
23
137
 
138
+ #endregion
139
+
140
+ #region Alerts
141
+
142
+ def get_alerts_list
143
+ @request.get('alert')
144
+ end
145
+
146
+ def delete_alert_by_id(id)
147
+ @request.delete(['alert', id.to_s])
148
+ end
149
+
150
+ #endregion
151
+
152
+ #region Contacts
153
+
154
+ def get_contact_list_for_auto_complete(term)
155
+ @request.get(%w(contacts), term: term)
156
+ end
157
+
158
+ def get_crm_linked_entities(message_id)
159
+ @request.get(%w(crm linked entities), messageId: message_id)
160
+ end
161
+
162
+ #endregion
163
+
164
+ #region Conversations
165
+
166
+ def get_filtered_conversations(options = {})
167
+ @request.get(%w(conversations), options)
168
+ end
169
+
170
+ def get_messages_linked_into_one_chain(message_id, load_all_content)
171
+ @request.get(['conversation', message_id.to_s], loadAllContent: load_all_content)
172
+ end
173
+
174
+ def get_previous_or_next_conversation_id(id, direction, options = {})
175
+ @request.get(['conversation', id.to_s, direction.to_s], options)
176
+ end
177
+
178
+ def is_chain_crm_linked_by_message(message_id)
179
+ @request.get(%w(conversations link crm status), messageId: message_id)
180
+ end
181
+
182
+ def move_conversations_to_folder(folder_id, *message_ids)
183
+ @request.put(%w(conversations move), folderId: folder_id, ids: message_ids.flatten)
184
+ end
185
+
186
+ def set_conversations_status(status, *ids)
187
+ @request.put(%w(conversations mark), status: status, ids: ids.flatten)
188
+ end
189
+
190
+ def remove_conversations(*ids)
191
+ @request.put(%w(conversations remove), ids: ids.flatten)
192
+ end
193
+
194
+ def restore_conversations_to_folders(*ids)
195
+ @request.put(%w(conversations restore), ids: ids.flatten)
196
+ end
197
+
198
+ def mark_conversation_as_crm_linked(message_id, *crm_contact_ids)
199
+ @request.put(%w(conversations crm mark), messageId: message_id, crmContactIds: crm_contact_ids.flatten)
200
+ end
201
+
202
+ def unmark_conversation_link_with_crm(message_id, *crm_contact_ids)
203
+ @request.put(%w(conversations crm unmark), messageId: message_id, crmContactIds: crm_contact_ids.flatten)
204
+ end
205
+
206
+ def add_tag_to_conversations(tag_id, *conversation_ids)
207
+ @request.put(['conversations', 'tag', tag_id.to_s, 'set'], messages: conversation_ids.flatten)
208
+ end
209
+
210
+ def remove_tag_from_conversations(tag_id, *conversation_ids)
211
+ @request.put(['conversations', 'tag', tag_id.to_s, 'unset'], messages: conversation_ids.flatten)
212
+ end
213
+
214
+ #endregion
215
+
216
+ #region Folders
217
+
218
+ def get_folders(options = {})
219
+ @request.get(%w(folders), options)
220
+ end
221
+
222
+ def get_folder_change_date(folder_id)
223
+ @request.get(['folders', folder_id.to_s, 'modify_date'])
224
+ end
225
+
226
+ def remove_all_messages_from_folder(folder_id)
227
+ @request.get(['folders', folder_id.to_s, 'messages'])
228
+ end
229
+
230
+ #endregion
231
+
232
+ #region GUID
233
+
234
+ def generate_custom_guid
235
+ @request.get(%w(random_guid))
236
+ end
237
+
238
+ #endregion
239
+
240
+ #region IMAGES
241
+
242
+ def get_trusted_addresses
243
+ @request.get(%w(display_messages addresses))
244
+ end
245
+
246
+ def add_trusted_address(address)
247
+ @request.post(%w(display_messages addresses), addres: address)
248
+ end
249
+
250
+ def remove_from_trusted_addresses(address)
251
+ @request.delete(%w(display_messages addresses), addres: address)
252
+ end
253
+
254
+ #endregion
255
+
24
256
  #region Tags
25
257
 
26
258
  def get_tag_list
@@ -15,7 +15,7 @@ module Teamlab
15
15
  end
16
16
 
17
17
  def search_people(query)
18
- @request.get(['search'], { 'query' => query })
18
+ @request.get(['search'], { query: query })
19
19
  end
20
20
 
21
21
  def filter_people(filters)
@@ -35,7 +35,7 @@ module Teamlab
35
35
  end
36
36
 
37
37
  def remind_password(user_id, email)
38
- @request.get([user_id, 'password'], { 'email' => email })
38
+ @request.get([user_id, 'password'], { email: email })
39
39
  end
40
40
 
41
41
  def search_with_status(status, query)
@@ -43,7 +43,7 @@ module Teamlab
43
43
  end
44
44
 
45
45
  def add_user(is_visitor, email, firstname, lastname, options = {})
46
- @request.post(nil , { 'isVisitor' => is_visitor, 'email' => email, 'firstname' => firstname, 'lastname' =>lastname}.merge(options))
46
+ @request.post(nil , { isVisitor: is_visitor, email: email, firstname: firstname, lastname: lastname}.merge(options))
47
47
  end
48
48
 
49
49
  def active(options = {})
@@ -54,16 +54,16 @@ module Teamlab
54
54
  @request.post([user_id, 'contacts'], contacts)
55
55
  end
56
56
 
57
- def send_invite(user_ids = [])
58
- @request.put(['invite'], { 'userIds' => user_ids })
57
+ def send_invite(*user_ids)
58
+ @request.put(['invite'], { userIds: user_ids.flatten })
59
59
  end
60
60
 
61
61
  def delete(*user_ids)
62
- @request.put(['delete'], { 'userIds' => user_ids.flatten })
62
+ @request.put(['delete'], { userIds: user_ids.flatten })
63
63
  end
64
64
 
65
65
  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) )
66
+ @request.put([user_id.to_s], { isVisitor: is_visitor, email: email, firstname: firstname, lastname: lastname}.merge(options) )
67
67
  end
68
68
 
69
69
  def change_people_type(type, user_ids)
@@ -257,8 +257,8 @@ module Teamlab
257
257
  @request.put([id.to_s], { title: title, responsibleId: responsible_id }.merge(options))
258
258
  end
259
259
 
260
- def set_task_order(id, order)
261
- @request.put([id.to_s, 'order'], order: order)
260
+ def set_task_order(project_id, order)
261
+ @request.put([project_id.to_s, 'order'], order: order)
262
262
  end
263
263
 
264
264
  def update_project_task(task_id, title, options = {})
@@ -371,6 +371,10 @@ module Teamlab
371
371
  @request.delete(['task', task_id.to_s, subtask_id.to_s])
372
372
  end
373
373
 
374
+ #endregion
375
+
376
+ #region Contacts
377
+
374
378
  def get_projects_for_contact(contact_id)
375
379
  @request.get(['contact', contact_id.to_s])
376
380
  end
@@ -383,6 +387,10 @@ module Teamlab
383
387
  @request.delete([project_id.to_s, 'contact'], contactId: contact_id)
384
388
  end
385
389
 
390
+ #endregion
391
+
392
+ #region Tags
393
+
386
394
  def get_project_tags
387
395
  @request.get(%w(tag))
388
396
  end
@@ -395,6 +403,8 @@ module Teamlab
395
403
  @request.get(%w(tag search), tagName: tag_name)
396
404
  end
397
405
 
406
+ #endregion
407
+
398
408
  def get_upcoming_milestones
399
409
  @request.get(%w(milestone))
400
410
  end
@@ -447,20 +457,20 @@ module Teamlab
447
457
  @request.get(['task', task_id.to_s, 'time'])
448
458
  end
449
459
 
450
- def add_task_time(task_id, note, date, person_id, hours, project_id)
451
- @request.post(['task', task_id.to_s, 'time'], { date: date, note: note, personId: person_id, hours: hours, projectId: project_id })
460
+ def add_task_time(task_id, date, person_id, project_id, options = {})
461
+ @request.post(['task', task_id.to_s, 'time'], { date: date, personId: person_id, projectId: project_id }.merge(options))
452
462
  end
453
463
 
454
- def update_task_time(time_id, note, date, person_id, hours)
455
- @request.put(['time', time_id.to_s], note: note, date: date, personId: person_id, hours: hours)
464
+ def update_task_time(time_id, date, person_id, options = {})
465
+ @request.put(['time', time_id.to_s], { date: date, personId: person_id }.merge(options))
456
466
  end
457
467
 
458
468
  def update_time_status_of_payment(time_ids, status)
459
469
  @request.put(%w(time times status), timeids: time_ids, status: status)
460
470
  end
461
471
 
462
- def delete_time_spents(time_ids)
463
- @request.delete(%w(time times remove), timeIds: time_ids)
472
+ def delete_time_spents(*time_ids)
473
+ @request.delete(%w(time times remove), timeIds: time_ids.flatten)
464
474
  end
465
475
  end
466
476
  end
@@ -44,7 +44,7 @@ module Teamlab
44
44
  rescue Exception => e
45
45
  fail e
46
46
  end
47
- fail response.error.to_s unless response.success
47
+ fail "Error #{response.code}: #{response.error.to_s}" unless response.success
48
48
  response
49
49
  end
50
50
 
@@ -6,9 +6,10 @@ module Teamlab
6
6
 
7
7
  def initialize(http_response)
8
8
  @code = http_response.code
9
+ @success = @code < 400
10
+ fail 'Error 404' if @code == 404
9
11
  @body = http_response.respond_to?(:parsed_response) && http_response.parsed_response.key?('result') ? http_response.parsed_response['result'] : nil
10
12
  @error = @body['error']['message'] if @body.key?('error') && @body['error'].key?('message')
11
- @success = @code < 400
12
13
  end
13
14
  end
14
15
  end
@@ -1,3 +1,3 @@
1
1
  module Teamlab
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
  end