telerivet 1.3.0 → 1.4.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
- SHA1:
3
- metadata.gz: f29fae453430b0721c120ed759f6471eb6353a5a
4
- data.tar.gz: 20efe5389264b4ff2ba936b23a77ff1ade66aec5
2
+ SHA256:
3
+ metadata.gz: b442bc6d2aab45f4be47acc976f991bbd399de9a68ac092ec6dd2d717c3373e9
4
+ data.tar.gz: 7c629053a6f168be87bb4e705e6cad78c9e7ec3aebe34cbb7553843dcf0cb02b
5
5
  SHA512:
6
- metadata.gz: 0caee23855bbca0c7bc86ac0c5c4e057ab11470999871542d884d7c1c381713203f7d2f136653208833a4f5528a40e63965b9a20ea6c8b0fcde6553d2a605ab2
7
- data.tar.gz: 39e7a0403bba946173d14ecbe1e02016cf4b160b7e81b06efdd6df18a01178340f015e3b89a93eb5191aa061a04ed30e854cbc31794e8a1cf58007e0fe112d4b
6
+ metadata.gz: b2585a9e281177331fe9615cbf02d91169f5f6bb178ebe228cd81b4def87576a7486b4e5457261b324f6fe1b958bace906e2e3a28d5b9bef8cb7c77f09bc9586
7
+ data.tar.gz: 35cb63dc5fbcdb5400808a8f3c4db85e4e5b07d85bd273c01d4693975ae10682e758a67e92797b7e771ccaba6fcd573e3629389aed7696346eff142da6186ef7
@@ -1,5 +1,6 @@
1
1
  require 'net/http'
2
2
  require 'json'
3
+ require 'zlib'
3
4
  require_relative 'telerivet/entity'
4
5
  require_relative 'telerivet/apicursor'
5
6
 
@@ -8,7 +9,7 @@ module Telerivet
8
9
  class API
9
10
  attr_reader :num_requests
10
11
 
11
- @@client_version = '1.3.0'
12
+ @@client_version = '1.4.6'
12
13
 
13
14
  #
14
15
  # Initializes a client handle to the Telerivet REST API.
@@ -61,7 +62,14 @@ class API
61
62
  if has_post_data
62
63
  request.set_content_type("application/json")
63
64
  if params != nil
64
- request.body = JSON.dump(params)
65
+ data = JSON.dump(params)
66
+
67
+ if data.length >= 400
68
+ request['Content-Encoding'] = 'gzip'
69
+ data = Zlib::Deflate.new(nil, 31).deflate(data, Zlib::FINISH)
70
+ end
71
+
72
+ request.body = data
65
73
  end
66
74
  end
67
75
 
@@ -145,7 +153,7 @@ class API
145
153
  # * Default: asc
146
154
  #
147
155
  # - page_size (int)
148
- # * Number of results returned per page (max 200)
156
+ # * Number of results returned per page (max 500)
149
157
  # * Default: 50
150
158
  #
151
159
  # - offset (int)
@@ -214,7 +222,7 @@ class API
214
222
  # * Default: asc
215
223
  #
216
224
  # - page_size (int)
217
- # * Number of results returned per page (max 200)
225
+ # * Number of results returned per page (max 500)
218
226
  # * Default: 50
219
227
  #
220
228
  # - offset (int)
@@ -0,0 +1,131 @@
1
+
2
+ module Telerivet
3
+
4
+ #
5
+ # Represents a transaction where airtime is sent to a mobile phone number.
6
+ #
7
+ # To send airtime, first [create a Custom Actions service to send a particular amount of
8
+ # airtime](/dashboard/add_service?subtype_id=main.service.rules.contact&action_id=main.rule.sendairtime),
9
+ # then trigger the service using [service.invoke](#Service.invoke),
10
+ # [project.sendBroadcast](#Project.sendBroadcast), or
11
+ # [project.scheduleMessage](#Project.scheduleMessage).
12
+ #
13
+ # Fields:
14
+ #
15
+ # - id
16
+ # * ID of the airtime transaction
17
+ # * Read-only
18
+ #
19
+ # - to_number
20
+ # * Destination phone number in international format (no leading +)
21
+ # * Read-only
22
+ #
23
+ # - operator_name
24
+ # * Operator name
25
+ # * Read-only
26
+ #
27
+ # - country
28
+ # * Country code
29
+ # * Read-only
30
+ #
31
+ # - status
32
+ # * Current status of airtime transaction (`successful`, `failed`, `cancelled`,
33
+ # `queued`, `pending_approval`, or `pending_payment`)
34
+ # * Read-only
35
+ #
36
+ # - status_text
37
+ # * Error or success message returned by airtime provider, if available
38
+ # * Read-only
39
+ #
40
+ # - value
41
+ # * Value of airtime sent to destination phone number, in units of value_currency
42
+ # * Read-only
43
+ #
44
+ # - value_currency
45
+ # * Currency code of price
46
+ # * Read-only
47
+ #
48
+ # - price
49
+ # * Price charged for airtime transaction, in units of price_currency
50
+ # * Read-only
51
+ #
52
+ # - price_currency
53
+ # * Currency code of price
54
+ # * Read-only
55
+ #
56
+ # - contact_id
57
+ # * ID of the contact the airtime was sent to
58
+ # * Read-only
59
+ #
60
+ # - service_id
61
+ # * ID of the service that sent the airtime
62
+ # * Read-only
63
+ #
64
+ # - project_id
65
+ # * ID of the project that the airtime transaction belongs to
66
+ # * Read-only
67
+ #
68
+ # - vars (Hash)
69
+ # * Custom variables stored for this transaction
70
+ # * Updatable via API
71
+ #
72
+ class AirtimeTransaction < Entity
73
+ def id
74
+ get('id')
75
+ end
76
+
77
+ def to_number
78
+ get('to_number')
79
+ end
80
+
81
+ def operator_name
82
+ get('operator_name')
83
+ end
84
+
85
+ def country
86
+ get('country')
87
+ end
88
+
89
+ def status
90
+ get('status')
91
+ end
92
+
93
+ def status_text
94
+ get('status_text')
95
+ end
96
+
97
+ def value
98
+ get('value')
99
+ end
100
+
101
+ def value_currency
102
+ get('value_currency')
103
+ end
104
+
105
+ def price
106
+ get('price')
107
+ end
108
+
109
+ def price_currency
110
+ get('price_currency')
111
+ end
112
+
113
+ def contact_id
114
+ get('contact_id')
115
+ end
116
+
117
+ def service_id
118
+ get('service_id')
119
+ end
120
+
121
+ def project_id
122
+ get('project_id')
123
+ end
124
+
125
+ def get_base_api_path()
126
+ "/projects/#{get('project_id')}/airtime_transactions/#{get('id')}"
127
+ end
128
+
129
+ end
130
+
131
+ end
@@ -2,6 +2,13 @@
2
2
  module Telerivet
3
3
 
4
4
  #
5
+ # Represents a collection of related outgoing messages.
6
+ # Typically, messages in a broadcast have the same content template and were
7
+ # sent at the same time; however, a broadcast can also contain messages with unrelated content
8
+ # and messages that were sent at different times.
9
+ # A broadcast is automatically created when sending a message to a group of
10
+ # contacts.
11
+ #
5
12
  # Fields:
6
13
  #
7
14
  # - id (string, max 34 characters)
@@ -25,9 +32,10 @@ module Telerivet
25
32
  # `filter_params` properties, as they may change without notice.)
26
33
  # * Read-only
27
34
  #
28
- # - recipients_str
29
- # * A string with a human readable description of the first few recipients (possibly
30
- # truncated)
35
+ # - title
36
+ # * Title of the broadcast. If a title was not provided when the broadcast was sent, it
37
+ # is automatically set to a human readable description of the first few recipients
38
+ # (possibly truncated)
31
39
  # * Read-only
32
40
  #
33
41
  # - time_created (UNIX timestamp)
@@ -67,7 +75,7 @@ module Telerivet
67
75
  #
68
76
  # - message_type
69
77
  # * Type of message sent from this broadcast
70
- # * Allowed values: sms, mms, ussd, call
78
+ # * Allowed values: sms, mms, ussd, call, service
71
79
  # * Read-only
72
80
  #
73
81
  # - content (string)
@@ -101,7 +109,7 @@ module Telerivet
101
109
  #
102
110
  # - source
103
111
  # * How the message originated within Telerivet
104
- # * Allowed values: phone, provider, web, api, service, webhook, scheduled
112
+ # * Allowed values: phone, provider, web, api, service, webhook, scheduled, integration
105
113
  # * Read-only
106
114
  #
107
115
  # - simulated (bool)
@@ -109,12 +117,31 @@ module Telerivet
109
117
  # sent to or received by a real phone)
110
118
  # * Read-only
111
119
  #
120
+ # - track_clicks (boolean)
121
+ # * If true, URLs in the message content will automatically be replaced with unique
122
+ # short URLs.
123
+ # * Read-only
124
+ #
125
+ # - clicked_count (int)
126
+ # * The number of messages in this broadcast containing short links that were clicked.
127
+ # At most one click per message is counted. If track_clicks is false, this property will
128
+ # be null.
129
+ # * Read-only
130
+ #
112
131
  # - label_ids (array)
113
132
  # * List of IDs of labels applied to all messages in the broadcast
114
133
  # * Read-only
115
134
  #
135
+ # - media (array)
136
+ # * For text messages containing media files, this is an array of objects with the
137
+ # properties `url`, `type` (MIME type), `filename`, and `size` (file size in bytes).
138
+ # Unknown properties are null. This property is undefined for messages that do not
139
+ # contain media files. Note: For files uploaded via the Telerivet web app, the URL is
140
+ # temporary and may not be valid for more than 1 day.
141
+ # * Read-only
142
+ #
116
143
  # - vars (Hash)
117
- # * Custom variables stored for this message
144
+ # * Custom variables stored for this broadcast
118
145
  # * Read-only
119
146
  #
120
147
  # - price (number)
@@ -139,6 +166,11 @@ module Telerivet
139
166
  # * ID of the phone or route used to send the broadcast (if applicable)
140
167
  # * Read-only
141
168
  #
169
+ # - service_id (string, max 34 characters)
170
+ # * The service associated with this broadcast (for voice calls, the service defines the
171
+ # call flow)
172
+ # * Read-only
173
+ #
142
174
  # - user_id (string, max 34 characters)
143
175
  # * ID of the Telerivet user who sent the broadcast (if applicable)
144
176
  # * Read-only
@@ -170,8 +202,8 @@ class Broadcast < Entity
170
202
  get('recipients')
171
203
  end
172
204
 
173
- def recipients_str
174
- get('recipients_str')
205
+ def title
206
+ get('title')
175
207
  end
176
208
 
177
209
  def time_created
@@ -234,10 +266,22 @@ class Broadcast < Entity
234
266
  get('simulated')
235
267
  end
236
268
 
269
+ def track_clicks
270
+ get('track_clicks')
271
+ end
272
+
273
+ def clicked_count
274
+ get('clicked_count')
275
+ end
276
+
237
277
  def label_ids
238
278
  get('label_ids')
239
279
  end
240
280
 
281
+ def media
282
+ get('media')
283
+ end
284
+
241
285
  def price
242
286
  get('price')
243
287
  end
@@ -258,6 +302,10 @@ class Broadcast < Entity
258
302
  get('route_id')
259
303
  end
260
304
 
305
+ def service_id
306
+ get('service_id')
307
+ end
308
+
261
309
  def user_id
262
310
  get('user_id')
263
311
  end
@@ -19,10 +19,19 @@ module Telerivet
19
19
  # * Time the contact was added in Telerivet
20
20
  # * Read-only
21
21
  #
22
+ # - time_updated (UNIX timestamp)
23
+ # * Time the contact was last updated in Telerivet
24
+ # * Read-only
25
+ #
22
26
  # - send_blocked (bool)
23
27
  # * True if Telerivet is blocked from sending messages to this contact
24
28
  # * Updatable via API
25
29
  #
30
+ # - conversation_status
31
+ # * Current status of the conversation with this contact
32
+ # * Allowed values: closed, active, handled
33
+ # * Updatable via API
34
+ #
26
35
  # - last_message_time (UNIX timestamp)
27
36
  # * Last time the contact sent or received a message (null if no messages have been sent
28
37
  # or received)
@@ -125,11 +134,12 @@ class Contact < Entity
125
134
  #
126
135
  # - message_type
127
136
  # * Filter messages by message_type
128
- # * Allowed values: sms, mms, ussd, call
137
+ # * Allowed values: sms, mms, ussd, call, service
129
138
  #
130
139
  # - source
131
140
  # * Filter messages by source
132
- # * Allowed values: phone, provider, web, api, service, webhook, scheduled
141
+ # * Allowed values: phone, provider, web, api, service, webhook, scheduled,
142
+ # integration
133
143
  #
134
144
  # - starred (bool)
135
145
  # * Filter messages by starred/unstarred
@@ -152,7 +162,13 @@ class Contact < Entity
152
162
  # * ID of the contact who sent/received the message
153
163
  #
154
164
  # - phone_id
155
- # * ID of the phone that sent/received the message
165
+ # * ID of the phone (basic route) that sent/received the message
166
+ #
167
+ # - broadcast_id
168
+ # * ID of the broadcast containing the message
169
+ #
170
+ # - scheduled_id
171
+ # * ID of the scheduled message that created this message
156
172
  #
157
173
  # - sort
158
174
  # * Sort the results based on a field
@@ -165,7 +181,7 @@ class Contact < Entity
165
181
  # * Default: asc
166
182
  #
167
183
  # - page_size (int)
168
- # * Number of results returned per page (max 200)
184
+ # * Number of results returned per page (max 500)
169
185
  # * Default: 50
170
186
  #
171
187
  # - offset (int)
@@ -205,7 +221,7 @@ class Contact < Entity
205
221
  # * Default: asc
206
222
  #
207
223
  # - page_size (int)
208
- # * Number of results returned per page (max 200)
224
+ # * Number of results returned per page (max 500)
209
225
  # * Default: 50
210
226
  #
211
227
  # - offset (int)
@@ -229,7 +245,7 @@ class Contact < Entity
229
245
  #
230
246
  # - message_type
231
247
  # * Filter scheduled messages by message_type
232
- # * Allowed values: sms, mms, ussd, call
248
+ # * Allowed values: sms, mms, ussd, call, service
233
249
  #
234
250
  # - time_created (UNIX timestamp)
235
251
  # * Filter scheduled messages by time_created
@@ -251,7 +267,7 @@ class Contact < Entity
251
267
  # * Default: asc
252
268
  #
253
269
  # - page_size (int)
254
- # * Number of results returned per page (max 200)
270
+ # * Number of results returned per page (max 500)
255
271
  # * Default: 50
256
272
  #
257
273
  # - offset (int)
@@ -287,7 +303,7 @@ class Contact < Entity
287
303
  # * Default: asc
288
304
  #
289
305
  # - page_size (int)
290
- # * Number of results returned per page (max 200)
306
+ # * Number of results returned per page (max 500)
291
307
  # * Default: 50
292
308
  #
293
309
  # - offset (int)
@@ -330,7 +346,7 @@ class Contact < Entity
330
346
  # * Default: asc
331
347
  #
332
348
  # - page_size (int)
333
- # * Number of results returned per page (max 200)
349
+ # * Number of results returned per page (max 500)
334
350
  # * Default: 50
335
351
  #
336
352
  # - offset (int)
@@ -383,6 +399,10 @@ class Contact < Entity
383
399
  get('time_created')
384
400
  end
385
401
 
402
+ def time_updated
403
+ get('time_updated')
404
+ end
405
+
386
406
  def send_blocked
387
407
  get('send_blocked')
388
408
  end
@@ -391,6 +411,14 @@ class Contact < Entity
391
411
  set('send_blocked', value)
392
412
  end
393
413
 
414
+ def conversation_status
415
+ get('conversation_status')
416
+ end
417
+
418
+ def conversation_status=(value)
419
+ set('conversation_status', value)
420
+ end
421
+
394
422
  def last_message_time
395
423
  get('last_message_time')
396
424
  end