telerivet 1.1.4 → 1.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be1f221262cc98190c641723d908f68310443816
4
- data.tar.gz: a6226f0040d537a9d57e8cb0ba5096cd146d86b1
3
+ metadata.gz: 069e4d71945ecfebc99b45656fdf47b36fd35e19
4
+ data.tar.gz: d5bd1f041f21e6e7b14fd48852cbf8f8d3fecafb
5
5
  SHA512:
6
- metadata.gz: d4305ddcd83b4eb883be1cc34a182034e34911e7bf511532c28db91f728b5341d974b722d4b679de2954583e4f22b760745b01c9ec4e7e9be707bc8fb12ce4b8
7
- data.tar.gz: d4fa2bd64725feb1459cbfa018a0755154e5dd8a9cf79cf75244248b254a566a6d71fccc71004e6ce3e9471c79fad55063ddd9f6cbdc93d5a21b16b11d08d73e
6
+ metadata.gz: 2e6b9787dc8fdddbad0ef1b1c35f52bbbefb25c245f8588b49801606f90664b99f52c552a581a46b6bc5f83b5b31477be66f8aa1482002250fca5ffe6091c51d
7
+ data.tar.gz: 53288dabcb2af64d9e5341e1c1e495f9f676aa1f7decf595e0bdc28a32804408ab2a13fb6a6813cd7d6d8a518d25327af55401431104d73248c157fd0174dad2
@@ -8,7 +8,7 @@ module Telerivet
8
8
  class API
9
9
  attr_reader :num_requests
10
10
 
11
- @@client_version = '1.1.4'
11
+ @@client_version = '1.1.6'
12
12
 
13
13
  #
14
14
  # Initializes a client handle to the Telerivet REST API.
@@ -19,14 +19,38 @@ module Telerivet
19
19
  # * Time the contact was added in Telerivet
20
20
  # * Read-only
21
21
  #
22
+ # - send_blocked (bool)
23
+ # * True if Telerivet is blocked from sending messages to this contact
24
+ # * Updatable via API
25
+ #
22
26
  # - last_message_time (UNIX timestamp)
23
27
  # * Last time the contact sent or received a message (null if no messages have been sent
24
28
  # or received)
25
29
  # * Read-only
26
30
  #
31
+ # - last_incoming_message_time (UNIX timestamp)
32
+ # * Last time a message was received from this contact
33
+ # * Read-only
34
+ #
35
+ # - last_outgoing_message_time (UNIX timestamp)
36
+ # * Last time a message was sent to this contact
37
+ # * Read-only
38
+ #
39
+ # - message_count (int)
40
+ # * Total number of non-deleted messages sent to or received from this contact
41
+ # * Read-only
42
+ #
43
+ # - incoming_message_count (int)
44
+ # * Number of messages received from this contact
45
+ # * Read-only
46
+ #
47
+ # - outgoing_message_count (int)
48
+ # * Number of messages sent to this contact
49
+ # * Read-only
50
+ #
27
51
  # - last_message_id
28
- # * ID of the last message sent or received by this contact (null if no messages have
29
- # been sent or received)
52
+ # * ID of the last message sent to or received from this contact (null if no messages
53
+ # have been sent or received)
30
54
  # * Read-only
31
55
  #
32
56
  # - default_route_id
@@ -164,6 +188,9 @@ class Contact < Entity
164
188
  # * Allowed modifiers: name[ne], name[prefix], name[not_prefix], name[gte], name[gt],
165
189
  # name[lt], name[lte]
166
190
  #
191
+ # - dynamic (bool)
192
+ # * Filter groups by dynamic/non-dynamic
193
+ #
167
194
  # - sort
168
195
  # * Sort the results based on a field
169
196
  # * Allowed values: default, name
@@ -246,12 +273,6 @@ class Contact < Entity
246
273
  # * Filter data rows by the time they were created
247
274
  # * Allowed modifiers: time_created[ne], time_created[min], time_created[max]
248
275
  #
249
- # - vars (Hash)
250
- # * Filter data rows by value of a custom variable (e.g. vars[q1], vars[foo], etc.)
251
- # * Allowed modifiers: vars[foo][exists], vars[foo][ne], vars[foo][prefix],
252
- # vars[foo][not_prefix], vars[foo][gte], vars[foo][gt], vars[foo][lt], vars[foo][lte],
253
- # vars[foo][min], vars[foo][max]
254
- #
255
276
  # - sort
256
277
  # * Sort the results based on a field
257
278
  # * Allowed values: default
@@ -359,10 +380,38 @@ class Contact < Entity
359
380
  get('time_created')
360
381
  end
361
382
 
383
+ def send_blocked
384
+ get('send_blocked')
385
+ end
386
+
387
+ def send_blocked=(value)
388
+ set('send_blocked', value)
389
+ end
390
+
362
391
  def last_message_time
363
392
  get('last_message_time')
364
393
  end
365
394
 
395
+ def last_incoming_message_time
396
+ get('last_incoming_message_time')
397
+ end
398
+
399
+ def last_outgoing_message_time
400
+ get('last_outgoing_message_time')
401
+ end
402
+
403
+ def message_count
404
+ get('message_count')
405
+ end
406
+
407
+ def incoming_message_count
408
+ get('incoming_message_count')
409
+ end
410
+
411
+ def outgoing_message_count
412
+ get('outgoing_message_count')
413
+ end
414
+
366
415
  def last_message_id
367
416
  get('last_message_id')
368
417
  end
@@ -14,8 +14,12 @@ module Telerivet
14
14
  # * Name of the group
15
15
  # * Updatable via API
16
16
  #
17
+ # - dynamic (bool)
18
+ # * Whether this is a dynamic or normal group
19
+ # * Read-only
20
+ #
17
21
  # - num_members (int)
18
- # * Number of contacts in the group
22
+ # * Number of contacts in the group (null if the group is dynamic)
19
23
  # * Read-only
20
24
  #
21
25
  # - time_created (UNIX timestamp)
@@ -57,6 +61,31 @@ class Group < Entity
57
61
  # * Allowed modifiers: last_message_time[exists], last_message_time[ne],
58
62
  # last_message_time[min], last_message_time[max]
59
63
  #
64
+ # - last_incoming_message_time (UNIX timestamp)
65
+ # * Filter contacts by last time a message was received
66
+ # * Allowed modifiers: last_incoming_message_time[exists],
67
+ # last_incoming_message_time[ne], last_incoming_message_time[min],
68
+ # last_incoming_message_time[max]
69
+ #
70
+ # - last_outgoing_message_time (UNIX timestamp)
71
+ # * Filter contacts by last time a message was sent
72
+ # * Allowed modifiers: last_outgoing_message_time[exists],
73
+ # last_outgoing_message_time[ne], last_outgoing_message_time[min],
74
+ # last_outgoing_message_time[max]
75
+ #
76
+ # - incoming_message_count (int)
77
+ # * Filter contacts by number of messages received from the contact
78
+ # * Allowed modifiers: incoming_message_count[ne], incoming_message_count[min],
79
+ # incoming_message_count[max]
80
+ #
81
+ # - outgoing_message_count (int)
82
+ # * Filter contacts by number of messages sent to the contact
83
+ # * Allowed modifiers: outgoing_message_count[ne], outgoing_message_count[min],
84
+ # outgoing_message_count[max]
85
+ #
86
+ # - send_blocked (bool)
87
+ # * Filter contacts by blocked status
88
+ #
60
89
  # - vars (Hash)
61
90
  # * Filter contacts by value of a custom variable (e.g. vars[email], vars[foo], etc.)
62
91
  # * Allowed modifiers: vars[foo][exists], vars[foo][ne], vars[foo][prefix],
@@ -160,6 +189,10 @@ class Group < Entity
160
189
  set('name', value)
161
190
  end
162
191
 
192
+ def dynamic
193
+ get('dynamic')
194
+ end
195
+
163
196
  def num_members
164
197
  get('num_members')
165
198
  end
@@ -89,6 +89,15 @@ module Telerivet
89
89
  # * The currency of the message price, if applicable.
90
90
  # * Read-only
91
91
  #
92
+ # - duration (number)
93
+ # * The duration of the call in seconds, if known, or -1 if the call was not answered.
94
+ # * Read-only
95
+ #
96
+ # - ring_time (number)
97
+ # * The length of time the call rang in seconds before being answered or hung up, if
98
+ # known.
99
+ # * Read-only
100
+ #
92
101
  # - mms_parts (array)
93
102
  # * A list of parts in the MMS message, the same as returned by the
94
103
  # [getMMSParts](#Message.getMMSParts) method.
@@ -110,6 +119,10 @@ module Telerivet
110
119
  # * ID of the route that sent the message (if applicable)
111
120
  # * Read-only
112
121
  #
122
+ # - user_id (string, max 34 characters)
123
+ # * ID of the Telerivet user who sent the message (if applicable)
124
+ # * Read-only
125
+ #
113
126
  # - project_id
114
127
  # * ID of the project this contact belongs to
115
128
  # * Read-only
@@ -301,6 +314,14 @@ class Message < Entity
301
314
  get('price_currency')
302
315
  end
303
316
 
317
+ def duration
318
+ get('duration')
319
+ end
320
+
321
+ def ring_time
322
+ get('ring_time')
323
+ end
324
+
304
325
  def mms_parts
305
326
  get('mms_parts')
306
327
  end
@@ -317,6 +338,10 @@ class Message < Entity
317
338
  get('route_id')
318
339
  end
319
340
 
341
+ def user_id
342
+ get('user_id')
343
+ end
344
+
320
345
  def project_id
321
346
  get('project_id')
322
347
  end
@@ -57,6 +57,11 @@ module Telerivet
57
57
  # the last time it connected to Telerivet (only present for Android phones)
58
58
  # * Read-only
59
59
  #
60
+ # - internet_type
61
+ # * String describing the current type of internet connectivity for an Android phone,
62
+ # for example WIFI or MOBILE (only present for Android phones)
63
+ # * Read-only
64
+ #
60
65
  # - app_version
61
66
  # * Currently installed version of Telerivet Android app (only present for Android
62
67
  # phones)
@@ -217,6 +222,10 @@ class Phone < Entity
217
222
  get('charging')
218
223
  end
219
224
 
225
+ def internet_type
226
+ get('internet_type')
227
+ end
228
+
220
229
  def app_version
221
230
  get('app_version')
222
231
  end
@@ -114,12 +114,12 @@ class Project < Entity
114
114
  # - status_url
115
115
  # * Webhook callback URL to be notified when message status changes
116
116
  #
117
- # - label_ids (array)
118
- # * Array of IDs of labels to add to all messages sent (maximum 5)
119
- #
120
117
  # - status_secret
121
118
  # * POST parameter 'secret' passed to status_url
122
119
  #
120
+ # - label_ids (array)
121
+ # * Array of IDs of labels to add to all messages sent (maximum 5)
122
+ #
123
123
  # - exclude_contact_id
124
124
  # * Optionally excludes one contact from receiving the message (only when group_id is
125
125
  # set)
@@ -264,29 +264,48 @@ class Project < Entity
264
264
  #
265
265
  # Retrieves OR creates and possibly updates a contact by name or phone number.
266
266
  #
267
- # If a phone number is provided, Telerivet will search for an existing
268
- # contact with that phone number (including suffix matches to allow finding contacts with
269
- # phone numbers in a different format).
270
- #
271
- # If a phone number is not provided but a name is provided, Telerivet
272
- # will search for a contact with that exact name (case insensitive).
267
+ # If a phone number is provided, by default, Telerivet will search for
268
+ # an existing contact with that phone number (including suffix matches to allow finding
269
+ # contacts with phone numbers in a different format). If a phone number is not provided but a
270
+ # name is provided, Telerivet will search for a contact with that exact name (case
271
+ # insensitive). This behavior can be modified by setting the lookup_key parameter to look up a
272
+ # contact by another field, including a custom variable.
273
273
  #
274
274
  # If no existing contact is found, a new contact will be created.
275
275
  #
276
276
  # Then that contact will be updated with any parameters provided
277
- # (name, phone_number, and vars).
277
+ # (name, phone_number, vars, default\_route\_id, send\_blocked, add\_group\_ids,
278
+ # remove\_group\_ids).
278
279
  #
279
280
  # Arguments:
280
281
  # - options (Hash)
281
- # * Required
282
282
  #
283
283
  # - name
284
284
  # * Name of the contact
285
- # * Required if phone_number not set
286
285
  #
287
286
  # - phone_number
288
287
  # * Phone number of the contact
289
- # * Required if name not set
288
+ #
289
+ # - lookup_key
290
+ # * The field used to search for a matching contact, or 'none' to always create a new
291
+ # contact. To search by a custom variable, precede the variable name with 'vars.'.
292
+ # * Allowed values: phone_number, name, id, vars.variable_name, none
293
+ # * Default: phone_number
294
+ #
295
+ # - send_blocked (bool)
296
+ # * True if Telerivet is blocked from sending messages to this contact
297
+ #
298
+ # - default_route_id
299
+ # * ID of the route to use by default to send messages to this contact
300
+ #
301
+ # - add_group_ids (array)
302
+ # * ID of one or more groups to add this contact as a member (max 20)
303
+ #
304
+ # - id
305
+ # * ID of an existing contact (only used if lookup_key is 'id')
306
+ #
307
+ # - remove_group_ids (array)
308
+ # * ID of one or more groups to remove this contact as a member (max 20)
290
309
  #
291
310
  # - vars (Hash)
292
311
  # * Custom variables and values to update on the contact
@@ -294,7 +313,7 @@ class Project < Entity
294
313
  # Returns:
295
314
  # Telerivet::Contact
296
315
  #
297
- def get_or_create_contact(options)
316
+ def get_or_create_contact(options = nil)
298
317
  require_relative 'contact'
299
318
  Contact.new(@api, @api.do_request("POST", get_base_api_path() + "/contacts", options))
300
319
  end
@@ -325,6 +344,31 @@ class Project < Entity
325
344
  # * Allowed modifiers: last_message_time[exists], last_message_time[ne],
326
345
  # last_message_time[min], last_message_time[max]
327
346
  #
347
+ # - last_incoming_message_time (UNIX timestamp)
348
+ # * Filter contacts by last time a message was received
349
+ # * Allowed modifiers: last_incoming_message_time[exists],
350
+ # last_incoming_message_time[ne], last_incoming_message_time[min],
351
+ # last_incoming_message_time[max]
352
+ #
353
+ # - last_outgoing_message_time (UNIX timestamp)
354
+ # * Filter contacts by last time a message was sent
355
+ # * Allowed modifiers: last_outgoing_message_time[exists],
356
+ # last_outgoing_message_time[ne], last_outgoing_message_time[min],
357
+ # last_outgoing_message_time[max]
358
+ #
359
+ # - incoming_message_count (int)
360
+ # * Filter contacts by number of messages received from the contact
361
+ # * Allowed modifiers: incoming_message_count[ne], incoming_message_count[min],
362
+ # incoming_message_count[max]
363
+ #
364
+ # - outgoing_message_count (int)
365
+ # * Filter contacts by number of messages sent to the contact
366
+ # * Allowed modifiers: outgoing_message_count[ne], outgoing_message_count[min],
367
+ # outgoing_message_count[max]
368
+ #
369
+ # - send_blocked (bool)
370
+ # * Filter contacts by blocked status
371
+ #
328
372
  # - vars (Hash)
329
373
  # * Filter contacts by value of a custom variable (e.g. vars[email], vars[foo], etc.)
330
374
  # * Allowed modifiers: vars[foo][exists], vars[foo][ne], vars[foo][prefix],
@@ -576,6 +620,9 @@ class Project < Entity
576
620
  # * Allowed modifiers: name[ne], name[prefix], name[not_prefix], name[gte], name[gt],
577
621
  # name[lt], name[lte]
578
622
  #
623
+ # - dynamic (bool)
624
+ # * Filter groups by dynamic/non-dynamic
625
+ #
579
626
  # - sort
580
627
  # * Sort the results based on a field
581
628
  # * Allowed values: default, name
@@ -913,7 +960,7 @@ class Project < Entity
913
960
  #
914
961
  # - context
915
962
  # * Filter services that can be invoked in a particular context
916
- # * Allowed values: message, contact, project, receipt
963
+ # * Allowed values: message, contact, project
917
964
  #
918
965
  # - sort
919
966
  # * Sort the results based on a field
@@ -1129,6 +1176,18 @@ class Project < Entity
1129
1176
  return Route.new(@api, {'project_id' => self.id, 'id' => id}, false)
1130
1177
  end
1131
1178
 
1179
+ #
1180
+ # Returns an array of user accounts that have access to this project. Each item in the array
1181
+ # is an object containing `id`, `email`, and `name` properties. (The id corresponds to the
1182
+ # `user_id` property of the Message object.)
1183
+ #
1184
+ # Returns:
1185
+ # array
1186
+ #
1187
+ def get_users()
1188
+ return @api.do_request("GET", get_base_api_path() + "/users")
1189
+ end
1190
+
1132
1191
  #
1133
1192
  # Saves any fields or custom variables that have changed for the project.
1134
1193
  #
@@ -94,7 +94,7 @@ class Service < Entity
94
94
  #
95
95
  # - context
96
96
  # * The name of the context in which this service is invoked
97
- # * Allowed values: message, contact, project, receipt
97
+ # * Allowed values: message, contact, project
98
98
  # * Required
99
99
  #
100
100
  # - event
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telerivet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesse Young
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-03 00:00:00.000000000 Z
11
+ date: 2015-09-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby client library for Telerivet REST API
14
14
  email: support@telerivet.com
@@ -16,8 +16,8 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
- - lib/telerivet.rb
20
19
  - lib/cacert.pem
20
+ - lib/telerivet.rb
21
21
  - lib/telerivet/apicursor.rb
22
22
  - lib/telerivet/contact.rb
23
23
  - lib/telerivet/contactservicestate.rb
@@ -43,17 +43,17 @@ require_paths:
43
43
  - lib
44
44
  required_ruby_version: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  required_rubygems_version: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '>='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  requirements: []
55
55
  rubyforge_project:
56
- rubygems_version: 2.0.0
56
+ rubygems_version: 2.4.5
57
57
  signing_key:
58
58
  specification_version: 4
59
59
  summary: Telerivet REST API Client