telerivet 1.4.5 → 1.4.6
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 +131 -0
- data/lib/telerivet/broadcast.rb +1 -1
- data/lib/telerivet/contact.rb +15 -1
- data/lib/telerivet/label.rb +2 -1
- data/lib/telerivet/message.rb +1 -1
- data/lib/telerivet/phone.rb +2 -1
- data/lib/telerivet/project.rb +81 -1
- data/lib/telerivet/service.rb +27 -3
- 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: b442bc6d2aab45f4be47acc976f991bbd399de9a68ac092ec6dd2d717c3373e9
|
4
|
+
data.tar.gz: 7c629053a6f168be87bb4e705e6cad78c9e7ec3aebe34cbb7553843dcf0cb02b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2585a9e281177331fe9615cbf02d91169f5f6bb178ebe228cd81b4def87576a7486b4e5457261b324f6fe1b958bace906e2e3a28d5b9bef8cb7c77f09bc9586
|
7
|
+
data.tar.gz: 35cb63dc5fbcdb5400808a8f3c4db85e4e5b07d85bd273c01d4693975ae10682e758a67e92797b7e771ccaba6fcd573e3629389aed7696346eff142da6186ef7
|
data/lib/telerivet.rb
CHANGED
@@ -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
|
data/lib/telerivet/broadcast.rb
CHANGED
@@ -109,7 +109,7 @@ module Telerivet
|
|
109
109
|
#
|
110
110
|
# - source
|
111
111
|
# * How the message originated within Telerivet
|
112
|
-
# * Allowed values: phone, provider, web, api, service, webhook, scheduled
|
112
|
+
# * Allowed values: phone, provider, web, api, service, webhook, scheduled, integration
|
113
113
|
# * Read-only
|
114
114
|
#
|
115
115
|
# - simulated (bool)
|
data/lib/telerivet/contact.rb
CHANGED
@@ -27,6 +27,11 @@ module Telerivet
|
|
27
27
|
# * True if Telerivet is blocked from sending messages to this contact
|
28
28
|
# * Updatable via API
|
29
29
|
#
|
30
|
+
# - conversation_status
|
31
|
+
# * Current status of the conversation with this contact
|
32
|
+
# * Allowed values: closed, active, handled
|
33
|
+
# * Updatable via API
|
34
|
+
#
|
30
35
|
# - last_message_time (UNIX timestamp)
|
31
36
|
# * Last time the contact sent or received a message (null if no messages have been sent
|
32
37
|
# or received)
|
@@ -133,7 +138,8 @@ class Contact < Entity
|
|
133
138
|
#
|
134
139
|
# - source
|
135
140
|
# * Filter messages by source
|
136
|
-
# * Allowed values: phone, provider, web, api, service, webhook, scheduled
|
141
|
+
# * Allowed values: phone, provider, web, api, service, webhook, scheduled,
|
142
|
+
# integration
|
137
143
|
#
|
138
144
|
# - starred (bool)
|
139
145
|
# * Filter messages by starred/unstarred
|
@@ -405,6 +411,14 @@ class Contact < Entity
|
|
405
411
|
set('send_blocked', value)
|
406
412
|
end
|
407
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
|
+
|
408
422
|
def last_message_time
|
409
423
|
get('last_message_time')
|
410
424
|
end
|
data/lib/telerivet/label.rb
CHANGED
@@ -43,7 +43,8 @@ class Label < Entity
|
|
43
43
|
#
|
44
44
|
# - source
|
45
45
|
# * Filter messages by source
|
46
|
-
# * Allowed values: phone, provider, web, api, service, webhook, scheduled
|
46
|
+
# * Allowed values: phone, provider, web, api, service, webhook, scheduled,
|
47
|
+
# integration
|
47
48
|
#
|
48
49
|
# - starred (bool)
|
49
50
|
# * Filter messages by starred/unstarred
|
data/lib/telerivet/message.rb
CHANGED
@@ -28,7 +28,7 @@ module Telerivet
|
|
28
28
|
#
|
29
29
|
# - source
|
30
30
|
# * How the message originated within Telerivet
|
31
|
-
# * Allowed values: phone, provider, web, api, service, webhook, scheduled
|
31
|
+
# * Allowed values: phone, provider, web, api, service, webhook, scheduled, integration
|
32
32
|
# * Read-only
|
33
33
|
#
|
34
34
|
# - time_created (UNIX timestamp)
|
data/lib/telerivet/phone.rb
CHANGED
@@ -115,7 +115,8 @@ class Phone < Entity
|
|
115
115
|
#
|
116
116
|
# - source
|
117
117
|
# * Filter messages by source
|
118
|
-
# * Allowed values: phone, provider, web, api, service, webhook, scheduled
|
118
|
+
# * Allowed values: phone, provider, web, api, service, webhook, scheduled,
|
119
|
+
# integration
|
119
120
|
#
|
120
121
|
# - starred (bool)
|
121
122
|
# * Filter messages by starred/unstarred
|
data/lib/telerivet/project.rb
CHANGED
@@ -853,7 +853,8 @@ class Project < Entity
|
|
853
853
|
#
|
854
854
|
# - source
|
855
855
|
# * Filter messages by source
|
856
|
-
# * Allowed values: phone, provider, web, api, service, webhook, scheduled
|
856
|
+
# * Allowed values: phone, provider, web, api, service, webhook, scheduled,
|
857
|
+
# integration
|
857
858
|
#
|
858
859
|
# - starred (bool)
|
859
860
|
# * Filter messages by starred/unstarred
|
@@ -1510,6 +1511,85 @@ class Project < Entity
|
|
1510
1511
|
return @api.do_request("GET", get_base_api_path() + "/users")
|
1511
1512
|
end
|
1512
1513
|
|
1514
|
+
#
|
1515
|
+
# Returns information about each airtime transaction.
|
1516
|
+
#
|
1517
|
+
# Arguments:
|
1518
|
+
# - options (Hash)
|
1519
|
+
#
|
1520
|
+
# - time_created[min] (UNIX timestamp)
|
1521
|
+
# * Filter transactions created on or after a particular time
|
1522
|
+
#
|
1523
|
+
# - time_created[max] (UNIX timestamp)
|
1524
|
+
# * Filter transactions created before a particular time
|
1525
|
+
#
|
1526
|
+
# - contact_id
|
1527
|
+
# * Filter transactions sent to a particular contact
|
1528
|
+
#
|
1529
|
+
# - to_number
|
1530
|
+
# * Filter transactions sent to a particular phone number
|
1531
|
+
#
|
1532
|
+
# - service_id
|
1533
|
+
# * Filter transactions sent by a particular service
|
1534
|
+
#
|
1535
|
+
# - status
|
1536
|
+
# * Filter transactions by status
|
1537
|
+
# * Allowed values: pending, queued, processing, successful, failed, cancelled,
|
1538
|
+
# pending_payment, pending_approval
|
1539
|
+
#
|
1540
|
+
# - sort_dir
|
1541
|
+
# * Sort the results in ascending or descending order
|
1542
|
+
# * Allowed values: asc, desc
|
1543
|
+
# * Default: asc
|
1544
|
+
#
|
1545
|
+
# - page_size (int)
|
1546
|
+
# * Number of results returned per page (max 500)
|
1547
|
+
# * Default: 50
|
1548
|
+
#
|
1549
|
+
# - offset (int)
|
1550
|
+
# * Number of items to skip from beginning of result set
|
1551
|
+
# * Default: 0
|
1552
|
+
#
|
1553
|
+
# Returns:
|
1554
|
+
# Telerivet::APICursor (of Telerivet::AirtimeTransaction)
|
1555
|
+
#
|
1556
|
+
def query_airtime_transactions(options = nil)
|
1557
|
+
require_relative 'airtimetransaction'
|
1558
|
+
@api.cursor(AirtimeTransaction, get_base_api_path() + "/airtime_transactions", options)
|
1559
|
+
end
|
1560
|
+
|
1561
|
+
#
|
1562
|
+
# Gets an airtime transaction by ID
|
1563
|
+
#
|
1564
|
+
# Arguments:
|
1565
|
+
# - id
|
1566
|
+
# * ID of the airtime transaction
|
1567
|
+
# * Required
|
1568
|
+
#
|
1569
|
+
# Returns:
|
1570
|
+
# Telerivet::AirtimeTransaction
|
1571
|
+
#
|
1572
|
+
def get_airtime_transaction_by_id(id)
|
1573
|
+
require_relative 'airtimetransaction'
|
1574
|
+
AirtimeTransaction.new(@api, @api.do_request("GET", get_base_api_path() + "/airtime_transactions/#{id}"))
|
1575
|
+
end
|
1576
|
+
|
1577
|
+
#
|
1578
|
+
# Initializes an airtime transaction by ID without making an API request.
|
1579
|
+
#
|
1580
|
+
# Arguments:
|
1581
|
+
# - id
|
1582
|
+
# * ID of the airtime transaction
|
1583
|
+
# * Required
|
1584
|
+
#
|
1585
|
+
# Returns:
|
1586
|
+
# Telerivet::AirtimeTransaction
|
1587
|
+
#
|
1588
|
+
def init_airtime_transaction_by_id(id)
|
1589
|
+
require_relative 'airtimetransaction'
|
1590
|
+
return AirtimeTransaction.new(@api, {'project_id' => self.id, 'id' => id}, false)
|
1591
|
+
end
|
1592
|
+
|
1513
1593
|
#
|
1514
1594
|
# Saves any fields or custom variables that have changed for the project.
|
1515
1595
|
#
|
data/lib/telerivet/service.rb
CHANGED
@@ -109,11 +109,35 @@ class Service < Entity
|
|
109
109
|
# * Required if context is 'message'
|
110
110
|
#
|
111
111
|
# - contact_id
|
112
|
-
# * The ID of the contact this service is triggered for
|
113
|
-
#
|
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
|
114
123
|
#
|
115
124
|
# Returns:
|
116
|
-
#
|
125
|
+
# (associative array)
|
126
|
+
# - return_value (any)
|
127
|
+
# * Return value of the service. May be any JSON type (boolean, number, string,
|
128
|
+
# array, object, or null).
|
129
|
+
#
|
130
|
+
# - log_entries (array)
|
131
|
+
# * Array of log entry strings generated by the service
|
132
|
+
#
|
133
|
+
# - errors (array)
|
134
|
+
# * Array of error message strings generated by the service
|
135
|
+
#
|
136
|
+
# - sent_messages (array of objects)
|
137
|
+
# * Array of messages sent by the service
|
138
|
+
#
|
139
|
+
# - airtime_transactions (array of objects)
|
140
|
+
# * Array of airtime transactions sent by the service
|
117
141
|
#
|
118
142
|
def invoke(options)
|
119
143
|
invoke_result = @api.do_request('POST', get_base_api_path() + '/invoke', options)
|
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.
|
4
|
+
version: 1.4.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:
|
11
|
+
date: 2020-07-14 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
|