teamlab 0.2.1 → 0.2.2

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