telerivet 1.4.0 → 1.5.0
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.
- checksums.yaml +5 -5
- data/lib/telerivet.rb +3 -3
- data/lib/telerivet/airtimetransaction.rb +139 -0
- data/lib/telerivet/broadcast.rb +42 -2
- data/lib/telerivet/contact.rb +38 -13
- data/lib/telerivet/datatable.rb +76 -7
- data/lib/telerivet/group.rb +17 -17
- data/lib/telerivet/label.rb +7 -3
- data/lib/telerivet/message.rb +72 -2
- data/lib/telerivet/organization.rb +1 -1
- data/lib/telerivet/phone.rb +7 -3
- data/lib/telerivet/project.rb +595 -92
- data/lib/telerivet/scheduledmessage.rb +22 -1
- data/lib/telerivet/service.rb +40 -9
- data/lib/telerivet/task.rb +151 -0
- metadata +5 -4
@@ -87,7 +87,7 @@ module Telerivet
|
|
87
87
|
#
|
88
88
|
# - message_type
|
89
89
|
# * Type of scheduled message
|
90
|
-
# * Allowed values: sms, ussd, call
|
90
|
+
# * Allowed values: sms, mms, ussd, call, service
|
91
91
|
# * Read-only
|
92
92
|
#
|
93
93
|
# - time_created (UNIX timestamp)
|
@@ -122,6 +122,19 @@ module Telerivet
|
|
122
122
|
# content, false otherwise
|
123
123
|
# * Read-only
|
124
124
|
#
|
125
|
+
# - track_clicks (boolean)
|
126
|
+
# * If true, URLs in the message content will automatically be replaced with unique
|
127
|
+
# short URLs
|
128
|
+
# * Read-only
|
129
|
+
#
|
130
|
+
# - media (array)
|
131
|
+
# * For text messages containing media files, this is an array of objects with the
|
132
|
+
# properties `url`, `type` (MIME type), `filename`, and `size` (file size in bytes).
|
133
|
+
# Unknown properties are null. This property is undefined for messages that do not
|
134
|
+
# contain media files. Note: For files uploaded via the Telerivet web app, the URL is
|
135
|
+
# temporary and may not be valid for more than 1 day.
|
136
|
+
# * Read-only
|
137
|
+
#
|
125
138
|
# - vars (Hash)
|
126
139
|
# * Custom variables stored for this scheduled message (copied to Message when sent)
|
127
140
|
# * Updatable via API
|
@@ -237,6 +250,14 @@ class ScheduledMessage < Entity
|
|
237
250
|
get('is_template')
|
238
251
|
end
|
239
252
|
|
253
|
+
def track_clicks
|
254
|
+
get('track_clicks')
|
255
|
+
end
|
256
|
+
|
257
|
+
def media
|
258
|
+
get('media')
|
259
|
+
end
|
260
|
+
|
240
261
|
def label_ids
|
241
262
|
get('label_ids')
|
242
263
|
end
|
data/lib/telerivet/service.rb
CHANGED
@@ -82,7 +82,9 @@ class Service < Entity
|
|
82
82
|
#
|
83
83
|
# For example, to send a poll to a particular contact (or resend the
|
84
84
|
# current question), you can invoke the poll service with context=contact, and `contact_id` as
|
85
|
-
# the ID of the contact to send the poll to.
|
85
|
+
# the ID of the contact to send the poll to. (To trigger a service to multiple contacts, use
|
86
|
+
# [project.sendBroadcast](#Project.sendBroadcast). To schedule a service in the future, use
|
87
|
+
# [project.scheduleMessage](#Project.scheduleMessage).)
|
86
88
|
#
|
87
89
|
# Or, to manually apply a service for an incoming message, you can
|
88
90
|
# invoke the service with `context`=`message`, `event`=`incoming_message`, and `message_id` as
|
@@ -95,7 +97,7 @@ class Service < Entity
|
|
95
97
|
#
|
96
98
|
# - context
|
97
99
|
# * The name of the context in which this service is invoked
|
98
|
-
# * Allowed values: message, call, contact, project
|
100
|
+
# * Allowed values: message, call, ussd_session, row, contact, project
|
99
101
|
# * Required
|
100
102
|
#
|
101
103
|
# - event
|
@@ -107,11 +109,40 @@ class Service < Entity
|
|
107
109
|
# * Required if context is 'message'
|
108
110
|
#
|
109
111
|
# - contact_id
|
110
|
-
# * The ID of the contact this service is triggered for
|
111
|
-
#
|
112
|
+
# * The ID of the contact this service is triggered for (either `contact_id` or
|
113
|
+
# `phone_number` is required if `context` is 'contact')
|
114
|
+
#
|
115
|
+
# - phone_number
|
116
|
+
# * The phone number of the contact this service is triggered for (either `contact_id`
|
117
|
+
# or `phone_number` is required if `context` is 'contact'). If no contact exists with
|
118
|
+
# this phone number, a new contact will be created.
|
119
|
+
#
|
120
|
+
# - route_id
|
121
|
+
# * The ID of the phone or route that the service will use for sending messages by
|
122
|
+
# default
|
123
|
+
#
|
124
|
+
# - async (bool)
|
125
|
+
# * If set to true, the service will be invoked asynchronously. By default, queued
|
126
|
+
# services will be invoked one at a time for each project.
|
112
127
|
#
|
113
128
|
# Returns:
|
114
|
-
#
|
129
|
+
# (associative array)
|
130
|
+
# - return_value (any)
|
131
|
+
# * Return value of the service. May be any JSON type (boolean, number, string,
|
132
|
+
# array, object, or null). (Undefined if async=true.)
|
133
|
+
#
|
134
|
+
# - log_entries (array)
|
135
|
+
# * Array of log entry strings generated by the service. (Undefined if async=true.)
|
136
|
+
#
|
137
|
+
# - errors (array)
|
138
|
+
# * Array of error message strings generated by the service. (Undefined if
|
139
|
+
# async=true.)
|
140
|
+
#
|
141
|
+
# - sent_messages (array of objects)
|
142
|
+
# * Array of messages sent by the service (Undefined if async=true.)
|
143
|
+
#
|
144
|
+
# - airtime_transactions (array of objects)
|
145
|
+
# * Array of airtime transactions sent by the service (Undefined if async=true.)
|
115
146
|
#
|
116
147
|
def invoke(options)
|
117
148
|
invoke_result = @api.do_request('POST', get_base_api_path() + '/invoke', options)
|
@@ -208,9 +239,9 @@ class Service < Entity
|
|
208
239
|
#
|
209
240
|
# - vars (Hash)
|
210
241
|
# * Filter states by value of a custom variable (e.g. vars[email], vars[foo], etc.)
|
211
|
-
# * Allowed modifiers: vars[foo][
|
212
|
-
# vars[foo][
|
213
|
-
# vars[foo][
|
242
|
+
# * Allowed modifiers: vars[foo][ne], vars[foo][prefix], vars[foo][not_prefix],
|
243
|
+
# vars[foo][gte], vars[foo][gt], vars[foo][lt], vars[foo][lte], vars[foo][min],
|
244
|
+
# vars[foo][max], vars[foo][exists]
|
214
245
|
#
|
215
246
|
# - sort
|
216
247
|
# * Sort the results based on a field
|
@@ -223,7 +254,7 @@ class Service < Entity
|
|
223
254
|
# * Default: asc
|
224
255
|
#
|
225
256
|
# - page_size (int)
|
226
|
-
# * Number of results returned per page (max
|
257
|
+
# * Number of results returned per page (max 500)
|
227
258
|
# * Default: 50
|
228
259
|
#
|
229
260
|
# - offset (int)
|
@@ -0,0 +1,151 @@
|
|
1
|
+
|
2
|
+
module Telerivet
|
3
|
+
|
4
|
+
#
|
5
|
+
# Represents an asynchronous task that is applied to all entities matching a filter.
|
6
|
+
#
|
7
|
+
# Tasks include services applied to contacts, messages, or data rows; adding
|
8
|
+
# or removing contacts from a group; blocking or unblocking sending messages to a contact;
|
9
|
+
# updating a custom variable; deleting contacts, messages, or data rows; or
|
10
|
+
# exporting data to CSV.
|
11
|
+
#
|
12
|
+
# Fields:
|
13
|
+
#
|
14
|
+
# - id (string, max 34 characters)
|
15
|
+
# * ID of the task
|
16
|
+
# * Read-only
|
17
|
+
#
|
18
|
+
# - task_type (string)
|
19
|
+
# * The task type
|
20
|
+
# * Read-only
|
21
|
+
#
|
22
|
+
# - task_params (Hash)
|
23
|
+
# * Parameters applied to all matching rows (specific to `task_type`). See
|
24
|
+
# [project.createTask](#Project.createTask).
|
25
|
+
# * Read-only
|
26
|
+
#
|
27
|
+
# - filter_type
|
28
|
+
# * Type of filter defining the rows that the task is applied to
|
29
|
+
# * Read-only
|
30
|
+
#
|
31
|
+
# - filter_params (Hash)
|
32
|
+
# * Parameters defining the rows that the task is applied to (specific to
|
33
|
+
# `filter_type`). See [project.createTask](#Project.createTask).
|
34
|
+
# * Read-only
|
35
|
+
#
|
36
|
+
# - time_created (UNIX timestamp)
|
37
|
+
# * Time the task was created in Telerivet
|
38
|
+
# * Read-only
|
39
|
+
#
|
40
|
+
# - time_active (UNIX timestamp)
|
41
|
+
# * Time Telerivet started executing the task
|
42
|
+
# * Read-only
|
43
|
+
#
|
44
|
+
# - time_complete (UNIX timestamp)
|
45
|
+
# * Time Telerivet finished executing the task
|
46
|
+
# * Read-only
|
47
|
+
#
|
48
|
+
# - total_rows (int)
|
49
|
+
# * The total number of rows matching the filter (null if not known)
|
50
|
+
# * Read-only
|
51
|
+
#
|
52
|
+
# - current_row (int)
|
53
|
+
# * The number of rows that have been processed so far
|
54
|
+
# * Read-only
|
55
|
+
#
|
56
|
+
# - status (string)
|
57
|
+
# * The current status of the task
|
58
|
+
# * Allowed values: created, queued, active, complete, failed, cancelled
|
59
|
+
# * Read-only
|
60
|
+
#
|
61
|
+
# - vars (Hash)
|
62
|
+
# * Custom variables stored for this task
|
63
|
+
# * Read-only
|
64
|
+
#
|
65
|
+
# - table_id (string, max 34 characters)
|
66
|
+
# * ID of the data table this task is applied to (if applicable)
|
67
|
+
# * Read-only
|
68
|
+
#
|
69
|
+
# - user_id (string, max 34 characters)
|
70
|
+
# * ID of the Telerivet user who created the task (if applicable)
|
71
|
+
# * Read-only
|
72
|
+
#
|
73
|
+
# - project_id
|
74
|
+
# * ID of the project this task belongs to
|
75
|
+
# * Read-only
|
76
|
+
#
|
77
|
+
class Task < Entity
|
78
|
+
#
|
79
|
+
# Cancels a task that is not yet complete.
|
80
|
+
#
|
81
|
+
# Returns:
|
82
|
+
# Telerivet::Task
|
83
|
+
#
|
84
|
+
def cancel()
|
85
|
+
require_relative 'task'
|
86
|
+
Task.new(@api, @api.do_request("POST", get_base_api_path() + "/cancel"))
|
87
|
+
end
|
88
|
+
|
89
|
+
def id
|
90
|
+
get('id')
|
91
|
+
end
|
92
|
+
|
93
|
+
def task_type
|
94
|
+
get('task_type')
|
95
|
+
end
|
96
|
+
|
97
|
+
def task_params
|
98
|
+
get('task_params')
|
99
|
+
end
|
100
|
+
|
101
|
+
def filter_type
|
102
|
+
get('filter_type')
|
103
|
+
end
|
104
|
+
|
105
|
+
def filter_params
|
106
|
+
get('filter_params')
|
107
|
+
end
|
108
|
+
|
109
|
+
def time_created
|
110
|
+
get('time_created')
|
111
|
+
end
|
112
|
+
|
113
|
+
def time_active
|
114
|
+
get('time_active')
|
115
|
+
end
|
116
|
+
|
117
|
+
def time_complete
|
118
|
+
get('time_complete')
|
119
|
+
end
|
120
|
+
|
121
|
+
def total_rows
|
122
|
+
get('total_rows')
|
123
|
+
end
|
124
|
+
|
125
|
+
def current_row
|
126
|
+
get('current_row')
|
127
|
+
end
|
128
|
+
|
129
|
+
def status
|
130
|
+
get('status')
|
131
|
+
end
|
132
|
+
|
133
|
+
def table_id
|
134
|
+
get('table_id')
|
135
|
+
end
|
136
|
+
|
137
|
+
def user_id
|
138
|
+
get('user_id')
|
139
|
+
end
|
140
|
+
|
141
|
+
def project_id
|
142
|
+
get('project_id')
|
143
|
+
end
|
144
|
+
|
145
|
+
def get_base_api_path()
|
146
|
+
"/projects/#{get('project_id')}/tasks/#{get('id')}"
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
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.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jesse Young
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Ruby client library for Telerivet REST API
|
14
14
|
email: support@telerivet.com
|
@@ -18,6 +18,7 @@ extra_rdoc_files: []
|
|
18
18
|
files:
|
19
19
|
- lib/cacert.pem
|
20
20
|
- lib/telerivet.rb
|
21
|
+
- lib/telerivet/airtimetransaction.rb
|
21
22
|
- lib/telerivet/apicursor.rb
|
22
23
|
- lib/telerivet/broadcast.rb
|
23
24
|
- lib/telerivet/contact.rb
|
@@ -34,6 +35,7 @@ files:
|
|
34
35
|
- lib/telerivet/route.rb
|
35
36
|
- lib/telerivet/scheduledmessage.rb
|
36
37
|
- lib/telerivet/service.rb
|
38
|
+
- lib/telerivet/task.rb
|
37
39
|
homepage: http://telerivet.com
|
38
40
|
licenses:
|
39
41
|
- MIT
|
@@ -53,8 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
55
|
- !ruby/object:Gem::Version
|
54
56
|
version: '0'
|
55
57
|
requirements: []
|
56
|
-
|
57
|
-
rubygems_version: 2.6.7
|
58
|
+
rubygems_version: 3.0.3
|
58
59
|
signing_key:
|
59
60
|
specification_version: 4
|
60
61
|
summary: Telerivet REST API Client
|