telerivet 1.4.6 → 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 +4 -4
- data/lib/telerivet.rb +1 -1
- data/lib/telerivet/airtimetransaction.rb +8 -0
- data/lib/telerivet/contact.rb +5 -5
- data/lib/telerivet/datatable.rb +6 -5
- data/lib/telerivet/group.rb +14 -14
- data/lib/telerivet/project.rb +307 -17
- data/lib/telerivet/service.rb +14 -9
- data/lib/telerivet/task.rb +151 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e063e2ce507f6d45b86d12c584475887c050c3d439863d91d545b0ba331e823
|
4
|
+
data.tar.gz: d8040eb663854c7df190aa8f49984d9854687238532b6278af53dea6ebc77250
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da5e09e1c639a5e1bd3b704214c4a276d62469e6ae0853d71cbe4b9dc2a2aacbb1f58d5e5bcbf1093e5cbf24a7a99abcf30d029883aca055d4b41ae9f3a7f8ff
|
7
|
+
data.tar.gz: 4ad80ced036f9d8810e3e7f693443247740791ed4097b26ce179c2c2ef0ca06986b41942fde40401ea8989df19591f84834439efb74900f9bb57ec7f939d8f25
|
data/lib/telerivet.rb
CHANGED
@@ -65,6 +65,10 @@ module Telerivet
|
|
65
65
|
# * ID of the project that the airtime transaction belongs to
|
66
66
|
# * Read-only
|
67
67
|
#
|
68
|
+
# - external_id
|
69
|
+
# * The ID of this transaction from an external airtime gateway provider, if available.
|
70
|
+
# * Read-only
|
71
|
+
#
|
68
72
|
# - vars (Hash)
|
69
73
|
# * Custom variables stored for this transaction
|
70
74
|
# * Updatable via API
|
@@ -122,6 +126,10 @@ class AirtimeTransaction < Entity
|
|
122
126
|
get('project_id')
|
123
127
|
end
|
124
128
|
|
129
|
+
def external_id
|
130
|
+
get('external_id')
|
131
|
+
end
|
132
|
+
|
125
133
|
def get_base_api_path()
|
126
134
|
"/projects/#{get('project_id')}/airtime_transactions/#{get('id')}"
|
127
135
|
end
|
data/lib/telerivet/contact.rb
CHANGED
@@ -253,8 +253,8 @@ class Contact < Entity
|
|
253
253
|
#
|
254
254
|
# - next_time (UNIX timestamp)
|
255
255
|
# * Filter scheduled messages by next_time
|
256
|
-
# * Allowed modifiers: next_time[
|
257
|
-
# next_time[
|
256
|
+
# * Allowed modifiers: next_time[ne], next_time[min], next_time[max],
|
257
|
+
# next_time[exists]
|
258
258
|
#
|
259
259
|
# - sort
|
260
260
|
# * Sort the results based on a field
|
@@ -331,9 +331,9 @@ class Contact < Entity
|
|
331
331
|
#
|
332
332
|
# - vars (Hash)
|
333
333
|
# * Filter states by value of a custom variable (e.g. vars[email], vars[foo], etc.)
|
334
|
-
# * Allowed modifiers: vars[foo][
|
335
|
-
# vars[foo][
|
336
|
-
# vars[foo][
|
334
|
+
# * Allowed modifiers: vars[foo][ne], vars[foo][prefix], vars[foo][not_prefix],
|
335
|
+
# vars[foo][gte], vars[foo][gt], vars[foo][lt], vars[foo][lte], vars[foo][min],
|
336
|
+
# vars[foo][max], vars[foo][exists]
|
337
337
|
#
|
338
338
|
# - sort
|
339
339
|
# * Sort the results based on a field
|
data/lib/telerivet/datatable.rb
CHANGED
@@ -22,7 +22,8 @@ module Telerivet
|
|
22
22
|
# * Updatable via API
|
23
23
|
#
|
24
24
|
# - num_rows (int)
|
25
|
-
# * Number of rows in the table
|
25
|
+
# * Number of rows in the table. For performance reasons, this number may sometimes be
|
26
|
+
# out-of-date.
|
26
27
|
# * Read-only
|
27
28
|
#
|
28
29
|
# - show_add_row (bool)
|
@@ -61,9 +62,9 @@ class DataTable < Entity
|
|
61
62
|
#
|
62
63
|
# - vars (Hash)
|
63
64
|
# * Filter data rows by value of a custom variable (e.g. vars[q1], vars[foo], etc.)
|
64
|
-
# * Allowed modifiers: vars[foo][
|
65
|
-
# vars[foo][
|
66
|
-
# vars[foo][
|
65
|
+
# * Allowed modifiers: vars[foo][ne], vars[foo][prefix], vars[foo][not_prefix],
|
66
|
+
# vars[foo][gte], vars[foo][gt], vars[foo][lt], vars[foo][lte], vars[foo][min],
|
67
|
+
# vars[foo][max], vars[foo][exists]
|
67
68
|
#
|
68
69
|
# - sort
|
69
70
|
# * Sort the results based on a field
|
@@ -175,7 +176,7 @@ class DataTable < Entity
|
|
175
176
|
# - type (string)
|
176
177
|
# * Field type
|
177
178
|
# * Allowed values: text, long_text, number, boolean, email, url, audio, phone_number,
|
178
|
-
# date, date_time, groups, route, select, buttons
|
179
|
+
# date, date_time, groups, route, select, buttons, contact
|
179
180
|
#
|
180
181
|
# - order (int)
|
181
182
|
# * Order in which to display the field
|
data/lib/telerivet/group.rb
CHANGED
@@ -50,7 +50,7 @@ class Group < Entity
|
|
50
50
|
# * Filter contacts by phone number
|
51
51
|
# * Allowed modifiers: phone_number[ne], phone_number[prefix],
|
52
52
|
# phone_number[not_prefix], phone_number[gte], phone_number[gt], phone_number[lt],
|
53
|
-
# phone_number[lte]
|
53
|
+
# phone_number[lte], phone_number[exists]
|
54
54
|
#
|
55
55
|
# - time_created (UNIX timestamp)
|
56
56
|
# * Filter contacts by time created
|
@@ -58,20 +58,20 @@ class Group < Entity
|
|
58
58
|
#
|
59
59
|
# - last_message_time (UNIX timestamp)
|
60
60
|
# * Filter contacts by last time a message was sent or received
|
61
|
-
# * Allowed modifiers: last_message_time[
|
62
|
-
# last_message_time[
|
61
|
+
# * Allowed modifiers: last_message_time[ne], last_message_time[min],
|
62
|
+
# last_message_time[max], last_message_time[exists]
|
63
63
|
#
|
64
64
|
# - last_incoming_message_time (UNIX timestamp)
|
65
65
|
# * Filter contacts by last time a message was received
|
66
|
-
# * Allowed modifiers: last_incoming_message_time[
|
67
|
-
# last_incoming_message_time[
|
68
|
-
# last_incoming_message_time[
|
66
|
+
# * Allowed modifiers: last_incoming_message_time[ne],
|
67
|
+
# last_incoming_message_time[min], last_incoming_message_time[max],
|
68
|
+
# last_incoming_message_time[exists]
|
69
69
|
#
|
70
70
|
# - last_outgoing_message_time (UNIX timestamp)
|
71
71
|
# * Filter contacts by last time a message was sent
|
72
|
-
# * Allowed modifiers: last_outgoing_message_time[
|
73
|
-
# last_outgoing_message_time[
|
74
|
-
# last_outgoing_message_time[
|
72
|
+
# * Allowed modifiers: last_outgoing_message_time[ne],
|
73
|
+
# last_outgoing_message_time[min], last_outgoing_message_time[max],
|
74
|
+
# last_outgoing_message_time[exists]
|
75
75
|
#
|
76
76
|
# - incoming_message_count (int)
|
77
77
|
# * Filter contacts by number of messages received from the contact
|
@@ -88,9 +88,9 @@ class Group < Entity
|
|
88
88
|
#
|
89
89
|
# - vars (Hash)
|
90
90
|
# * Filter contacts by value of a custom variable (e.g. vars[email], vars[foo], etc.)
|
91
|
-
# * Allowed modifiers: vars[foo][
|
92
|
-
# vars[foo][
|
93
|
-
# vars[foo][
|
91
|
+
# * Allowed modifiers: vars[foo][ne], vars[foo][prefix], vars[foo][not_prefix],
|
92
|
+
# vars[foo][gte], vars[foo][gt], vars[foo][lt], vars[foo][lte], vars[foo][min],
|
93
|
+
# vars[foo][max], vars[foo][exists]
|
94
94
|
#
|
95
95
|
# - sort
|
96
96
|
# * Sort the results based on a field
|
@@ -134,8 +134,8 @@ class Group < Entity
|
|
134
134
|
#
|
135
135
|
# - next_time (UNIX timestamp)
|
136
136
|
# * Filter scheduled messages by next_time
|
137
|
-
# * Allowed modifiers: next_time[
|
138
|
-
# next_time[
|
137
|
+
# * Allowed modifiers: next_time[ne], next_time[min], next_time[max],
|
138
|
+
# next_time[exists]
|
139
139
|
#
|
140
140
|
# - sort
|
141
141
|
# * Sort the results based on a field
|
data/lib/telerivet/project.rb
CHANGED
@@ -648,6 +648,9 @@ class Project < Entity
|
|
648
648
|
# Arguments:
|
649
649
|
# - options (Hash)
|
650
650
|
#
|
651
|
+
# - group_id
|
652
|
+
# * Filter contacts within a group
|
653
|
+
#
|
651
654
|
# - name
|
652
655
|
# * Filter contacts by name
|
653
656
|
# * Allowed modifiers: name[ne], name[prefix], name[not_prefix], name[gte], name[gt],
|
@@ -657,7 +660,7 @@ class Project < Entity
|
|
657
660
|
# * Filter contacts by phone number
|
658
661
|
# * Allowed modifiers: phone_number[ne], phone_number[prefix],
|
659
662
|
# phone_number[not_prefix], phone_number[gte], phone_number[gt], phone_number[lt],
|
660
|
-
# phone_number[lte]
|
663
|
+
# phone_number[lte], phone_number[exists]
|
661
664
|
#
|
662
665
|
# - time_created (UNIX timestamp)
|
663
666
|
# * Filter contacts by time created
|
@@ -665,20 +668,20 @@ class Project < Entity
|
|
665
668
|
#
|
666
669
|
# - last_message_time (UNIX timestamp)
|
667
670
|
# * Filter contacts by last time a message was sent or received
|
668
|
-
# * Allowed modifiers: last_message_time[
|
669
|
-
# last_message_time[
|
671
|
+
# * Allowed modifiers: last_message_time[ne], last_message_time[min],
|
672
|
+
# last_message_time[max], last_message_time[exists]
|
670
673
|
#
|
671
674
|
# - last_incoming_message_time (UNIX timestamp)
|
672
675
|
# * Filter contacts by last time a message was received
|
673
|
-
# * Allowed modifiers: last_incoming_message_time[
|
674
|
-
# last_incoming_message_time[
|
675
|
-
# last_incoming_message_time[
|
676
|
+
# * Allowed modifiers: last_incoming_message_time[ne],
|
677
|
+
# last_incoming_message_time[min], last_incoming_message_time[max],
|
678
|
+
# last_incoming_message_time[exists]
|
676
679
|
#
|
677
680
|
# - last_outgoing_message_time (UNIX timestamp)
|
678
681
|
# * Filter contacts by last time a message was sent
|
679
|
-
# * Allowed modifiers: last_outgoing_message_time[
|
680
|
-
# last_outgoing_message_time[
|
681
|
-
# last_outgoing_message_time[
|
682
|
+
# * Allowed modifiers: last_outgoing_message_time[ne],
|
683
|
+
# last_outgoing_message_time[min], last_outgoing_message_time[max],
|
684
|
+
# last_outgoing_message_time[exists]
|
682
685
|
#
|
683
686
|
# - incoming_message_count (int)
|
684
687
|
# * Filter contacts by number of messages received from the contact
|
@@ -695,9 +698,9 @@ class Project < Entity
|
|
695
698
|
#
|
696
699
|
# - vars (Hash)
|
697
700
|
# * Filter contacts by value of a custom variable (e.g. vars[email], vars[foo], etc.)
|
698
|
-
# * Allowed modifiers: vars[foo][
|
699
|
-
# vars[foo][
|
700
|
-
# vars[foo][
|
701
|
+
# * Allowed modifiers: vars[foo][ne], vars[foo][prefix], vars[foo][not_prefix],
|
702
|
+
# vars[foo][gte], vars[foo][gt], vars[foo][lt], vars[foo][lte], vars[foo][min],
|
703
|
+
# vars[foo][max], vars[foo][exists]
|
701
704
|
#
|
702
705
|
# - sort
|
703
706
|
# * Sort the results based on a field
|
@@ -776,8 +779,8 @@ class Project < Entity
|
|
776
779
|
#
|
777
780
|
# - last_active_time (UNIX timestamp)
|
778
781
|
# * Filter phones by last active time
|
779
|
-
# * Allowed modifiers: last_active_time[
|
780
|
-
# last_active_time[
|
782
|
+
# * Allowed modifiers: last_active_time[ne], last_active_time[min],
|
783
|
+
# last_active_time[max], last_active_time[exists]
|
781
784
|
#
|
782
785
|
# - sort
|
783
786
|
# * Sort the results based on a field
|
@@ -843,6 +846,9 @@ class Project < Entity
|
|
843
846
|
# Arguments:
|
844
847
|
# - options (Hash)
|
845
848
|
#
|
849
|
+
# - label_id
|
850
|
+
# * Filter messages with a label
|
851
|
+
#
|
846
852
|
# - direction
|
847
853
|
# * Filter messages by direction
|
848
854
|
# * Allowed values: incoming, outgoing
|
@@ -1019,6 +1025,290 @@ class Project < Entity
|
|
1019
1025
|
return Broadcast.new(@api, {'project_id' => self.id, 'id' => id}, false)
|
1020
1026
|
end
|
1021
1027
|
|
1028
|
+
#
|
1029
|
+
# Creates and starts an asynchronous task that is applied to all entities matching a filter
|
1030
|
+
# (e.g. contacts, messages, or data rows).
|
1031
|
+
# Tasks are designed to efficiently process a large number of
|
1032
|
+
# entities. When processing a large number of entities,
|
1033
|
+
# tasks are much faster than using the API to query and loop over
|
1034
|
+
# all objects matching a filter.
|
1035
|
+
#
|
1036
|
+
# Several different types of tasks are supported, including
|
1037
|
+
# applying services to contacts, messages, or data rows;
|
1038
|
+
# adding or removing contacts from a group; blocking or unblocking
|
1039
|
+
# sending messages to a contact; updating a custom variable;
|
1040
|
+
# deleting contacts, messages, or data rows; or exporting data to
|
1041
|
+
# CSV.
|
1042
|
+
#
|
1043
|
+
# When using a task to apply a Custom Actions or Cloud Script API
|
1044
|
+
# service (`apply_service_to_contacts`, `apply_service_to_rows`, or
|
1045
|
+
# `apply_service_to_messages`),
|
1046
|
+
# the `task` variable will be available within the service. The
|
1047
|
+
# service can use custom variables on the task object (e.g. `task.vars.example`), such as
|
1048
|
+
# to store aggregate statistics for the rows matching the filter.
|
1049
|
+
#
|
1050
|
+
# Arguments:
|
1051
|
+
# - options (Hash)
|
1052
|
+
# * Required
|
1053
|
+
#
|
1054
|
+
# - task_type
|
1055
|
+
# * Type of task to create. Each `task_type` applies to a certain type of entity (such
|
1056
|
+
# as a contact, message, or data row).
|
1057
|
+
#
|
1058
|
+
# Tasks for contacts:
|
1059
|
+
#
|
1060
|
+
# - `update_contact_var`
|
1061
|
+
# - `add_group_members`
|
1062
|
+
# - `remove_group_members`
|
1063
|
+
# - `set_conversation_status`
|
1064
|
+
# - `set_send_blocked`
|
1065
|
+
# - `apply_service_to_contacts`
|
1066
|
+
# - `delete_contacts`
|
1067
|
+
# - `export_contacts`
|
1068
|
+
#
|
1069
|
+
# Tasks for data rows:
|
1070
|
+
#
|
1071
|
+
# - `update_row_var`
|
1072
|
+
# - `apply_service_to_rows`
|
1073
|
+
# - `delete_rows`
|
1074
|
+
# - `export_rows`
|
1075
|
+
#
|
1076
|
+
# Tasks for messages:
|
1077
|
+
#
|
1078
|
+
# - `cancel_messages`
|
1079
|
+
# - `resend_messages`
|
1080
|
+
# - `retry_message_services`
|
1081
|
+
# - `apply_service_to_messages`
|
1082
|
+
# - `add_label`
|
1083
|
+
# - `remove_label`
|
1084
|
+
# - `update_message_var`
|
1085
|
+
# - `delete_messages`
|
1086
|
+
# - `export_messages`
|
1087
|
+
# * Allowed values: update_contact_var, delete_contacts, add_group_members,
|
1088
|
+
# remove_group_members, set_conversation_status, set_send_blocked,
|
1089
|
+
# apply_service_to_contacts, update_row_var, delete_rows, apply_service_to_rows,
|
1090
|
+
# delete_messages, cancel_messages, resend_messages, retry_message_services,
|
1091
|
+
# apply_service_to_messages, add_label, remove_label, update_message_var,
|
1092
|
+
# export_messages, export_contacts, export_rows
|
1093
|
+
# * Required
|
1094
|
+
#
|
1095
|
+
# - task_params (Hash)
|
1096
|
+
# * Parameters applied to all matching rows (specific to `task_type`).
|
1097
|
+
#
|
1098
|
+
# **`apply_service_to_contacts`**,
|
1099
|
+
# **`apply_service_to_messages`**, **`apply_service_to_rows`**:
|
1100
|
+
# <table>
|
1101
|
+
# <tr><td> `service_id` </td> <td> The ID of the
|
1102
|
+
# service to apply (string) </td></tr>
|
1103
|
+
# </table>
|
1104
|
+
#
|
1105
|
+
# **`update_contact_var`**, **`update_message_var`**,
|
1106
|
+
# **`update_row_var`**:
|
1107
|
+
# <table>
|
1108
|
+
# <tr><td> `variable` </td> <td> The custom variable
|
1109
|
+
# name (string) </td></tr>
|
1110
|
+
# <tr><td> `value` </td> <td> The value to set
|
1111
|
+
# (string, boolean, float, null) </td></tr>
|
1112
|
+
# </table>
|
1113
|
+
#
|
1114
|
+
# **`add_group_members`**, **`remove_group_members`**:
|
1115
|
+
# <table>
|
1116
|
+
# <tr><td> `group_id` </td> <td> The ID of the group
|
1117
|
+
# (string) </td></tr>
|
1118
|
+
# </table>
|
1119
|
+
#
|
1120
|
+
# **`add_label`**, **`remove_label`**:
|
1121
|
+
# <table>
|
1122
|
+
# <tr><td> `label_id` </td> <td> The ID of the label
|
1123
|
+
# (string) </td></tr>
|
1124
|
+
# </table>
|
1125
|
+
#
|
1126
|
+
# **`resend_messages`**:
|
1127
|
+
# <table>
|
1128
|
+
# <tr><td> `route_id` </td> <td> ID of the new route
|
1129
|
+
# to use, or null to use the original route (string) </td></tr>
|
1130
|
+
# </table>
|
1131
|
+
#
|
1132
|
+
# **`set_send_blocked`**:
|
1133
|
+
# <table>
|
1134
|
+
# <tr><td> `send_blocked` </td> <td> `true` to block
|
1135
|
+
# sending messages, `false` to unblock sending messages (boolean) </td></tr>
|
1136
|
+
# </table>
|
1137
|
+
#
|
1138
|
+
# **`set_conversation_status`**:
|
1139
|
+
# <table>
|
1140
|
+
# <tr><td> `conversation_status` </td> <td> "active",
|
1141
|
+
# "handled", or "closed" (string) </td></tr>
|
1142
|
+
# </table>
|
1143
|
+
#
|
1144
|
+
# **`export_contacts`**, **`export_messages`**,
|
1145
|
+
# **`export_rows`**:
|
1146
|
+
# <table>
|
1147
|
+
# <tr><td>`storage_id` </td> <td> ID of a storage
|
1148
|
+
# backend where the CSV file will be saved. (string)
|
1149
|
+
#
|
1150
|
+
# Currently only AWS S3 is supported as a storage
|
1151
|
+
# backend.
|
1152
|
+
# This requires creating a S3 bucket in your own
|
1153
|
+
# AWS account, as well as an IAM user with access key and secret that has permission
|
1154
|
+
# to write to that bucket.
|
1155
|
+
# To configure your own S3 bucket as a storage
|
1156
|
+
# backend, contact support.
|
1157
|
+
#
|
1158
|
+
# Direct downloads are not supported when
|
1159
|
+
# exporting data via the API.
|
1160
|
+
# (string) </td></tr>
|
1161
|
+
# <tr><td>`filename` </td> <td> Path within the
|
1162
|
+
# storage backend where the CSV file will be saved </td></tr>
|
1163
|
+
# <tr><td>`column_ids` </td> <td> IDs of columns to
|
1164
|
+
# save in the CSV file. If not provided, all default columns will be saved. (array of
|
1165
|
+
# strings, optional) </td></tr>
|
1166
|
+
# </table>
|
1167
|
+
#
|
1168
|
+
# **`delete_contacts`**, **`delete_messages`**,
|
1169
|
+
# **`delete_rows`**, **`cancel_messages`**, **`retry_message_services`**: <br />
|
1170
|
+
# No parameters.
|
1171
|
+
#
|
1172
|
+
# - filter_type
|
1173
|
+
# * Type of filter defining the rows that the task is applied to.
|
1174
|
+
#
|
1175
|
+
# Each `filter_type` queries a certain type of
|
1176
|
+
# entity (such as contacts, messages, or data rows).
|
1177
|
+
#
|
1178
|
+
# In general, the `task_type` and the
|
1179
|
+
# `filter_type` must return the same type of entity; however, tasks applied to
|
1180
|
+
# contacts (other than `export_contacts`) can also be applied
|
1181
|
+
# when the filter returns entities that are
|
1182
|
+
# associated with a contact, such as messages or data rows. (Note that in this case,
|
1183
|
+
# it is possible for the task to be applied multiple times to an individual contact if
|
1184
|
+
# multiple messages or data rows are associated with the same contact.)
|
1185
|
+
# * Allowed values: query_contacts, contact_ids, query_rows, row_ids, query_messages,
|
1186
|
+
# message_ids
|
1187
|
+
# * Required
|
1188
|
+
#
|
1189
|
+
# - filter_params (Hash)
|
1190
|
+
# * Parameters defining the rows that the task is applied to (specific to
|
1191
|
+
# `filter_type`).
|
1192
|
+
#
|
1193
|
+
# **`query_contacts`**: <br />
|
1194
|
+
# The same filter parameters as used by
|
1195
|
+
# [project.queryContacts](#Project.queryContacts). If you want to apply the task to
|
1196
|
+
# all contacts, use the parameters {"all": true}.
|
1197
|
+
#
|
1198
|
+
# **`contact_ids`**:
|
1199
|
+
# <table>
|
1200
|
+
# <tr><td> `contact_ids` </td> <td> IDs of up to 100
|
1201
|
+
# contacts to apply this task to (array of strings) </td></tr>
|
1202
|
+
# </table>
|
1203
|
+
#
|
1204
|
+
# **`query_messages`**: <br />
|
1205
|
+
# The same filter parameters as used by
|
1206
|
+
# [project.queryMessages](#Project.queryMessages). If you want to apply the task to
|
1207
|
+
# all messages, use the parameters {"all": true}.
|
1208
|
+
#
|
1209
|
+
# **`message_ids`**:
|
1210
|
+
# <table>
|
1211
|
+
# <tr><td> `message_ids` </td> <td> IDs of up to 100
|
1212
|
+
# messages to apply this task to (array of strings) </td></tr>
|
1213
|
+
# </table>
|
1214
|
+
#
|
1215
|
+
# **`query_rows`**: <br />
|
1216
|
+
# The same filter parameters as used by
|
1217
|
+
# [table.queryRows](#DataTable.queryRows). If you want to apply the task to all rows
|
1218
|
+
# in the table, use the parameters {"all": true}.
|
1219
|
+
#
|
1220
|
+
# **`row_ids`**:
|
1221
|
+
# <table>
|
1222
|
+
# <tr><td> `row_ids` </td> <td> IDs of up to 100 data
|
1223
|
+
# rows to apply this task to (array of strings) </td></tr>
|
1224
|
+
# </table>
|
1225
|
+
# * Required
|
1226
|
+
#
|
1227
|
+
# - table_id (string, max 34 characters)
|
1228
|
+
# * ID of the data table this task is applied to (if applicable).
|
1229
|
+
#
|
1230
|
+
# Required if filter_type is `query_rows` or `row_ids`.
|
1231
|
+
#
|
1232
|
+
# - vars (Hash)
|
1233
|
+
# * Initial custom variables to set for the task.
|
1234
|
+
#
|
1235
|
+
# If the task applies a service, the service can read
|
1236
|
+
# and write custom variables on the task object (e.g. `task.vars.example`), such as
|
1237
|
+
# to store aggregate statistics for the rows matching
|
1238
|
+
# the filter.
|
1239
|
+
#
|
1240
|
+
# Returns:
|
1241
|
+
# Telerivet::Task
|
1242
|
+
#
|
1243
|
+
def create_task(options)
|
1244
|
+
require_relative 'task'
|
1245
|
+
Task.new(@api, @api.do_request("POST", get_base_api_path() + "/tasks", options))
|
1246
|
+
end
|
1247
|
+
|
1248
|
+
#
|
1249
|
+
# Queries batch tasks within the given project.
|
1250
|
+
#
|
1251
|
+
# Arguments:
|
1252
|
+
# - options (Hash)
|
1253
|
+
#
|
1254
|
+
# - sort
|
1255
|
+
# * Sort the results based on a field
|
1256
|
+
# * Allowed values: default
|
1257
|
+
# * Default: default
|
1258
|
+
#
|
1259
|
+
# - sort_dir
|
1260
|
+
# * Sort the results in ascending or descending order
|
1261
|
+
# * Allowed values: asc, desc
|
1262
|
+
# * Default: asc
|
1263
|
+
#
|
1264
|
+
# - page_size (int)
|
1265
|
+
# * Number of results returned per page (max 500)
|
1266
|
+
# * Default: 50
|
1267
|
+
#
|
1268
|
+
# - offset (int)
|
1269
|
+
# * Number of items to skip from beginning of result set
|
1270
|
+
# * Default: 0
|
1271
|
+
#
|
1272
|
+
# Returns:
|
1273
|
+
# Telerivet::APICursor (of Telerivet::Task)
|
1274
|
+
#
|
1275
|
+
def query_tasks(options = nil)
|
1276
|
+
require_relative 'task'
|
1277
|
+
@api.cursor(Task, get_base_api_path() + "/tasks", options)
|
1278
|
+
end
|
1279
|
+
|
1280
|
+
#
|
1281
|
+
# Retrieves the task with the given ID.
|
1282
|
+
#
|
1283
|
+
# Arguments:
|
1284
|
+
# - id
|
1285
|
+
# * ID of the task
|
1286
|
+
# * Required
|
1287
|
+
#
|
1288
|
+
# Returns:
|
1289
|
+
# Telerivet::Task
|
1290
|
+
#
|
1291
|
+
def get_task_by_id(id)
|
1292
|
+
require_relative 'task'
|
1293
|
+
Task.new(@api, @api.do_request("GET", get_base_api_path() + "/tasks/#{id}"))
|
1294
|
+
end
|
1295
|
+
|
1296
|
+
#
|
1297
|
+
# Initializes the task with the given ID without making an API request.
|
1298
|
+
#
|
1299
|
+
# Arguments:
|
1300
|
+
# - id
|
1301
|
+
# * ID of the task
|
1302
|
+
# * Required
|
1303
|
+
#
|
1304
|
+
# Returns:
|
1305
|
+
# Telerivet::Task
|
1306
|
+
#
|
1307
|
+
def init_task_by_id(id)
|
1308
|
+
require_relative 'task'
|
1309
|
+
return Task.new(@api, {'project_id' => self.id, 'id' => id}, false)
|
1310
|
+
end
|
1311
|
+
|
1022
1312
|
#
|
1023
1313
|
# Queries groups within the given project.
|
1024
1314
|
#
|
@@ -1293,8 +1583,8 @@ class Project < Entity
|
|
1293
1583
|
#
|
1294
1584
|
# - next_time (UNIX timestamp)
|
1295
1585
|
# * Filter scheduled messages by next_time
|
1296
|
-
# * Allowed modifiers: next_time[
|
1297
|
-
# next_time[
|
1586
|
+
# * Allowed modifiers: next_time[ne], next_time[min], next_time[max],
|
1587
|
+
# next_time[exists]
|
1298
1588
|
#
|
1299
1589
|
# - sort
|
1300
1590
|
# * Sort the results based on a field
|
@@ -1370,7 +1660,7 @@ class Project < Entity
|
|
1370
1660
|
#
|
1371
1661
|
# - context
|
1372
1662
|
# * Filter services that can be invoked in a particular context
|
1373
|
-
# * Allowed values: message, call, contact, project
|
1663
|
+
# * Allowed values: message, call, ussd_session, row, contact, project
|
1374
1664
|
#
|
1375
1665
|
# - sort
|
1376
1666
|
# * Sort the results based on a field
|
data/lib/telerivet/service.rb
CHANGED
@@ -97,7 +97,7 @@ class Service < Entity
|
|
97
97
|
#
|
98
98
|
# - context
|
99
99
|
# * The name of the context in which this service is invoked
|
100
|
-
# * Allowed values: message, call, contact, project
|
100
|
+
# * Allowed values: message, call, ussd_session, row, contact, project
|
101
101
|
# * Required
|
102
102
|
#
|
103
103
|
# - event
|
@@ -120,24 +120,29 @@ class Service < Entity
|
|
120
120
|
# - route_id
|
121
121
|
# * The ID of the phone or route that the service will use for sending messages by
|
122
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.
|
123
127
|
#
|
124
128
|
# Returns:
|
125
129
|
# (associative array)
|
126
130
|
# - return_value (any)
|
127
131
|
# * Return value of the service. May be any JSON type (boolean, number, string,
|
128
|
-
# array, object, or null).
|
132
|
+
# array, object, or null). (Undefined if async=true.)
|
129
133
|
#
|
130
134
|
# - log_entries (array)
|
131
|
-
# * Array of log entry strings generated by the service
|
135
|
+
# * Array of log entry strings generated by the service. (Undefined if async=true.)
|
132
136
|
#
|
133
137
|
# - errors (array)
|
134
|
-
# * Array of error message strings generated by the service
|
138
|
+
# * Array of error message strings generated by the service. (Undefined if
|
139
|
+
# async=true.)
|
135
140
|
#
|
136
141
|
# - sent_messages (array of objects)
|
137
|
-
# * Array of messages sent by the service
|
142
|
+
# * Array of messages sent by the service (Undefined if async=true.)
|
138
143
|
#
|
139
144
|
# - airtime_transactions (array of objects)
|
140
|
-
# * Array of airtime transactions sent by the service
|
145
|
+
# * Array of airtime transactions sent by the service (Undefined if async=true.)
|
141
146
|
#
|
142
147
|
def invoke(options)
|
143
148
|
invoke_result = @api.do_request('POST', get_base_api_path() + '/invoke', options)
|
@@ -234,9 +239,9 @@ class Service < Entity
|
|
234
239
|
#
|
235
240
|
# - vars (Hash)
|
236
241
|
# * Filter states by value of a custom variable (e.g. vars[email], vars[foo], etc.)
|
237
|
-
# * Allowed modifiers: vars[foo][
|
238
|
-
# vars[foo][
|
239
|
-
# 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]
|
240
245
|
#
|
241
246
|
# - sort
|
242
247
|
# * Sort the results based on a field
|
@@ -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
|
@@ -35,6 +35,7 @@ files:
|
|
35
35
|
- lib/telerivet/route.rb
|
36
36
|
- lib/telerivet/scheduledmessage.rb
|
37
37
|
- lib/telerivet/service.rb
|
38
|
+
- lib/telerivet/task.rb
|
38
39
|
homepage: http://telerivet.com
|
39
40
|
licenses:
|
40
41
|
- MIT
|