telnyx 2.3.0 → 2.4.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/.github/scripts/before_install.sh +9 -0
- data/.github/workflows/ruby.yml +39 -0
- data/.rubocop.yml +6 -36
- data/.rubocop_todo.yml +300 -0
- data/.travis.yml.bak +48 -0
- data/Gemfile +6 -6
- data/README.md +1 -1
- data/VERSION +1 -1
- data/bin/telnyx-console +5 -0
- data/examples/2 factor authentication/Gemfile +7 -0
- data/examples/2 factor authentication/main.rb +67 -0
- data/examples/2 factor authentication/readme.md +5 -0
- data/examples/fax/Gemfile +7 -0
- data/examples/fax/config.yaml +4 -0
- data/examples/fax/fax.rb +42 -0
- data/examples/fax/options.rb +41 -0
- data/examples/fax/readme.md +18 -0
- data/lib/telnyx.rb +5 -1
- data/lib/telnyx/api_operations/save.rb +1 -1
- data/lib/telnyx/api_resource.rb +14 -3
- data/lib/telnyx/conference.rb +17 -1
- data/lib/telnyx/fax.rb +13 -0
- data/lib/telnyx/fax_application.rb +12 -0
- data/lib/telnyx/messaging_phone_number.rb +9 -0
- data/lib/telnyx/phone_number.rb +5 -1
- data/lib/telnyx/sim_card.rb +12 -1
- data/lib/telnyx/telnyx_client.rb +15 -24
- data/lib/telnyx/util.rb +7 -1
- data/lib/telnyx/verification.rb +27 -0
- data/lib/telnyx/verify_profile.rb +11 -0
- data/lib/telnyx/version.rb +1 -1
- data/telnyx.gemspec +1 -1
- data/test/telnyx/call_control_test.rb +3 -3
- data/test/telnyx/conference_test.rb +57 -20
- data/test/telnyx/credential_connection_test.rb +5 -1
- data/test/telnyx/fax_application_test.rb +32 -0
- data/test/telnyx/fax_test.rb +32 -0
- data/test/telnyx/fqdn_connection_test.rb +1 -1
- data/test/telnyx/fqdn_test.rb +1 -1
- data/test/telnyx/messaging_phone_number_test.rb +8 -4
- data/test/telnyx/messaging_profile_test.rb +1 -1
- data/test/telnyx/phone_number_test.rb +9 -21
- data/test/telnyx/sim_card_test.rb +6 -6
- data/test/telnyx/telnyx_object_test.rb +5 -5
- data/test/telnyx/verification_test.rb +22 -0
- data/test/telnyx/verify_profile_test.rb +31 -0
- data/test/test_helper.rb +1 -1
- metadata +36 -7
- data/.travis.yml +0 -51
@@ -69,41 +69,29 @@ module Telnyx
|
|
69
69
|
assert_equal voice.data.connection_id, "456"
|
70
70
|
end
|
71
71
|
|
72
|
+
should "list messaging" do
|
73
|
+
list = Telnyx::PhoneNumber.messaging
|
74
|
+
assert_kind_of Telnyx::ListObject, list
|
75
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/phone_numbers/messaging"
|
76
|
+
end
|
77
|
+
|
72
78
|
should "get messaging" do
|
73
|
-
stub_request(:get, "#{Telnyx.api_base}/v2/phone_numbers/123")
|
74
|
-
.to_return(body: JSON.generate(data: mock_response("123")))
|
75
|
-
command_stub = stub_request(:get, "#{Telnyx.api_base}/v2/phone_numbers/123/messaging")
|
76
|
-
.to_return(body: JSON.generate(data: mock_messaging_response("456")))
|
77
79
|
phone_number = Telnyx::PhoneNumber.retrieve("123")
|
78
80
|
phone_number.messaging
|
79
|
-
assert_requested
|
81
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/phone_numbers/123/messaging"
|
80
82
|
end
|
81
83
|
|
82
84
|
should "update messaging" do
|
83
|
-
stub_request(:get, "#{Telnyx.api_base}/v2/phone_numbers/123")
|
84
|
-
.to_return(body: JSON.generate(data: mock_response("123")))
|
85
|
-
command_stub = stub_request(:patch, "#{Telnyx.api_base}/v2/phone_numbers/123/messaging")
|
86
|
-
.with(body: { messaging_profile_id: "12345", messaging_product: "P2P" })
|
87
|
-
.to_return(body: JSON.generate(data: mock_messaging_response))
|
88
85
|
phone_number = Telnyx::PhoneNumber.retrieve("123")
|
89
86
|
phone_number.update_messaging(messaging_profile_id: "12345", messaging_product: "P2P")
|
90
|
-
assert_requested
|
87
|
+
assert_requested :patch, "#{Telnyx.api_base}/v2/phone_numbers/123/messaging"
|
91
88
|
end
|
92
89
|
|
93
90
|
should "list inbound channels" do
|
94
|
-
stub_request(:get, "#{Telnyx.api_base}/v2/phone_numbers/123")
|
95
|
-
.to_return(body: JSON.generate(data: mock_response("123")))
|
96
|
-
command_stub = stub_request(:get, "#{Telnyx.api_base}/v2/phone_numbers/inbound_channels")
|
97
|
-
.to_return(body: JSON.generate(
|
98
|
-
data: {
|
99
|
-
channels: 7,
|
100
|
-
record_type: "inbound_channels",
|
101
|
-
}
|
102
|
-
))
|
103
91
|
phone_number = Telnyx::PhoneNumber.retrieve("123")
|
104
92
|
inbound_channels = phone_number.inbound_channels
|
105
93
|
assert_equal inbound_channels, 7
|
106
|
-
assert_requested
|
94
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/phone_numbers/inbound_channels"
|
107
95
|
end
|
108
96
|
|
109
97
|
should "update inbound channel" do
|
@@ -28,16 +28,16 @@ module Telnyx
|
|
28
28
|
end
|
29
29
|
|
30
30
|
context "actions" do
|
31
|
-
should "
|
31
|
+
should "disable" do
|
32
32
|
sim = Telnyx::SimCard.retrieve "123"
|
33
|
-
sim.
|
34
|
-
assert_requested(:post, "#{Telnyx.api_base}/v2/sim_cards/#{sim.id}/actions/
|
33
|
+
sim.disable
|
34
|
+
assert_requested(:post, "#{Telnyx.api_base}/v2/sim_cards/#{sim.id}/actions/disable")
|
35
35
|
end
|
36
36
|
|
37
|
-
should "
|
37
|
+
should "enable" do
|
38
38
|
sim = Telnyx::SimCard.retrieve "123"
|
39
|
-
sim.
|
40
|
-
assert_requested(:post, "#{Telnyx.api_base}/v2/sim_cards/#{sim.id}/actions/
|
39
|
+
sim.enable
|
40
|
+
assert_requested(:post, "#{Telnyx.api_base}/v2/sim_cards/#{sim.id}/actions/enable")
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -212,26 +212,26 @@ module Telnyx
|
|
212
212
|
|
213
213
|
should "mass assign values with #update_attributes" do
|
214
214
|
obj = Telnyx::TelnyxObject.construct_from(id: 1, name: "Telnyx")
|
215
|
-
obj.update_attributes(name: "telnyx")
|
215
|
+
obj.update_attributes({ name: "telnyx" })
|
216
216
|
assert_equal "telnyx", obj.name
|
217
217
|
|
218
218
|
# unfortunately, we even assign unknown properties to duplicate the
|
219
219
|
# behavior that we currently have via magic accessors with
|
220
220
|
# method_missing
|
221
|
-
obj.update_attributes(unknown: "foo")
|
221
|
+
obj.update_attributes({ unknown: "foo" })
|
222
222
|
assert_equal "foo", obj.unknown
|
223
223
|
end
|
224
224
|
|
225
225
|
should "#update_attributes with a hash" do
|
226
226
|
obj = Telnyx::TelnyxObject.construct_from({})
|
227
|
-
obj.update_attributes(metadata: { foo: "bar" })
|
227
|
+
obj.update_attributes({ metadata: { foo: "bar" } })
|
228
228
|
assert_equal Telnyx::TelnyxObject, obj.metadata.class
|
229
229
|
end
|
230
230
|
|
231
231
|
should "create accessors when #update_attributes is called" do
|
232
232
|
obj = Telnyx::TelnyxObject.construct_from({})
|
233
233
|
assert_equal false, obj.send(:metaclass).method_defined?(:foo)
|
234
|
-
obj.update_attributes(foo: "bar")
|
234
|
+
obj.update_attributes({ foo: "bar" })
|
235
235
|
assert_equal true, obj.send(:metaclass).method_defined?(:foo)
|
236
236
|
end
|
237
237
|
|
@@ -268,7 +268,7 @@ module Telnyx
|
|
268
268
|
|
269
269
|
should "#serialize_params on a basic object" do
|
270
270
|
obj = Telnyx::TelnyxObject.construct_from(foo: nil)
|
271
|
-
obj.update_attributes(foo: "bar")
|
271
|
+
obj.update_attributes({ foo: "bar" })
|
272
272
|
assert_equal({ foo: "bar" }, obj.serialize_params)
|
273
273
|
end
|
274
274
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telnyx
|
4
|
+
class VerificationTest < Test::Unit::TestCase
|
5
|
+
should "create verification" do
|
6
|
+
Verification.create phone_number: "+15555555555", twofa_profile_id: "1234", type: "sms", verify_profile_id: "foobar"
|
7
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verifications"
|
8
|
+
end
|
9
|
+
|
10
|
+
should "retrieve verification" do
|
11
|
+
verification = Verification.retrieve("id")
|
12
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/verifications/id"
|
13
|
+
assert_kind_of Verification, verification
|
14
|
+
end
|
15
|
+
|
16
|
+
should "send verification code" do
|
17
|
+
Verification.submit_code code: "12345", phone_number: "+13035551234"
|
18
|
+
|
19
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verifications/by_phone_number/+13035551234/actions/verify"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telnyx
|
4
|
+
class VerifyProfileTest < Test::Unit::TestCase
|
5
|
+
should "list verify_profiles" do
|
6
|
+
verify_profile = VerifyProfile.list
|
7
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/verify_profiles"
|
8
|
+
assert_kind_of ListObject, verify_profile
|
9
|
+
assert_kind_of VerifyProfile, verify_profile.first
|
10
|
+
end
|
11
|
+
|
12
|
+
should "create verify_profile" do
|
13
|
+
VerifyProfile.create name: "test"
|
14
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verify_profiles"
|
15
|
+
end
|
16
|
+
|
17
|
+
should "retrieve verify_profile" do
|
18
|
+
verify_profile = VerifyProfile.retrieve("id")
|
19
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/verify_profiles/id"
|
20
|
+
assert_kind_of VerifyProfile, verify_profile
|
21
|
+
end
|
22
|
+
|
23
|
+
should "update verify_profile" do
|
24
|
+
verify_profile = VerifyProfile.retrieve("id")
|
25
|
+
|
26
|
+
verify_profile.name = "123"
|
27
|
+
verify_profile.save
|
28
|
+
assert_requested :patch, "#{Telnyx.api_base}/v2/verify_profiles/#{verify_profile.id}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -17,7 +17,7 @@ require ::File.expand_path("../test_data", __FILE__)
|
|
17
17
|
require ::File.expand_path("../telnyx_mock", __FILE__)
|
18
18
|
|
19
19
|
# If changing this number, please also change it in `.travis.yml`.
|
20
|
-
MOCK_MINIMUM_VERSION = "0.8.
|
20
|
+
MOCK_MINIMUM_VERSION = "0.8.10".freeze
|
21
21
|
MOCK_PORT = Telnyx::TelnyxMock.start
|
22
22
|
|
23
23
|
# Disable all real network connections except those that are outgoing to
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telnyx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Telnyx
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -26,6 +26,9 @@ dependencies:
|
|
26
26
|
- - "!="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 0.16.2
|
29
|
+
- - "!="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 0.17.1
|
29
32
|
type: :runtime
|
30
33
|
prerelease: false
|
31
34
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,6 +45,9 @@ dependencies:
|
|
42
45
|
- - "!="
|
43
46
|
- !ruby/object:Gem::Version
|
44
47
|
version: 0.16.2
|
48
|
+
- - "!="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 0.17.1
|
45
51
|
- !ruby/object:Gem::Dependency
|
46
52
|
name: net-http-persistent
|
47
53
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,9 +85,12 @@ extensions: []
|
|
79
85
|
extra_rdoc_files: []
|
80
86
|
files:
|
81
87
|
- ".github/ISSUE_TEMPLATE.md"
|
88
|
+
- ".github/scripts/before_install.sh"
|
89
|
+
- ".github/workflows/ruby.yml"
|
82
90
|
- ".gitignore"
|
83
91
|
- ".rubocop.yml"
|
84
|
-
- ".
|
92
|
+
- ".rubocop_todo.yml"
|
93
|
+
- ".travis.yml.bak"
|
85
94
|
- CHANGELOG.md
|
86
95
|
- CONTRIBUTORS
|
87
96
|
- Gemfile
|
@@ -91,6 +100,14 @@ files:
|
|
91
100
|
- Rakefile
|
92
101
|
- VERSION
|
93
102
|
- bin/telnyx-console
|
103
|
+
- examples/2 factor authentication/Gemfile
|
104
|
+
- examples/2 factor authentication/main.rb
|
105
|
+
- examples/2 factor authentication/readme.md
|
106
|
+
- examples/fax/Gemfile
|
107
|
+
- examples/fax/config.yaml
|
108
|
+
- examples/fax/fax.rb
|
109
|
+
- examples/fax/options.rb
|
110
|
+
- examples/fax/readme.md
|
94
111
|
- lib/telnyx.rb
|
95
112
|
- lib/telnyx/address.rb
|
96
113
|
- lib/telnyx/alphanumeric_sender_id.rb
|
@@ -111,6 +128,8 @@ files:
|
|
111
128
|
- lib/telnyx/credential_connection.rb
|
112
129
|
- lib/telnyx/errors.rb
|
113
130
|
- lib/telnyx/event.rb
|
131
|
+
- lib/telnyx/fax.rb
|
132
|
+
- lib/telnyx/fax_application.rb
|
114
133
|
- lib/telnyx/fqdn.rb
|
115
134
|
- lib/telnyx/fqdn_connection.rb
|
116
135
|
- lib/telnyx/ip.rb
|
@@ -135,6 +154,8 @@ files:
|
|
135
154
|
- lib/telnyx/telnyx_object.rb
|
136
155
|
- lib/telnyx/telnyx_response.rb
|
137
156
|
- lib/telnyx/util.rb
|
157
|
+
- lib/telnyx/verification.rb
|
158
|
+
- lib/telnyx/verify_profile.rb
|
138
159
|
- lib/telnyx/version.rb
|
139
160
|
- lib/telnyx/webhook.rb
|
140
161
|
- lib/telnyx/wireless_detail_records_report.rb
|
@@ -153,6 +174,8 @@ files:
|
|
153
174
|
- test/telnyx/connection_test.rb
|
154
175
|
- test/telnyx/credential_connection_test.rb
|
155
176
|
- test/telnyx/errors_test.rb
|
177
|
+
- test/telnyx/fax_application_test.rb
|
178
|
+
- test/telnyx/fax_test.rb
|
156
179
|
- test/telnyx/fqdn_connection_test.rb
|
157
180
|
- test/telnyx/fqdn_test.rb
|
158
181
|
- test/telnyx/ip_connection_test.rb
|
@@ -175,6 +198,8 @@ files:
|
|
175
198
|
- test/telnyx/telnyx_object_test.rb
|
176
199
|
- test/telnyx/telnyx_response_test.rb
|
177
200
|
- test/telnyx/util_test.rb
|
201
|
+
- test/telnyx/verification_test.rb
|
202
|
+
- test/telnyx/verify_profile_test.rb
|
178
203
|
- test/telnyx/webhook_test.rb
|
179
204
|
- test/telnyx/wireless_detail_records_report_test.rb
|
180
205
|
- test/telnyx_mock.rb
|
@@ -189,7 +214,7 @@ metadata:
|
|
189
214
|
github_repo: ssh://github.com/team-telnyx/telnyx-ruby
|
190
215
|
homepage_uri: https://telnyx.com
|
191
216
|
source_code_uri: https://github.com/team-telnyx/telnyx-ruby
|
192
|
-
post_install_message:
|
217
|
+
post_install_message:
|
193
218
|
rdoc_options: []
|
194
219
|
require_paths:
|
195
220
|
- lib
|
@@ -204,8 +229,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
229
|
- !ruby/object:Gem::Version
|
205
230
|
version: '0'
|
206
231
|
requirements: []
|
207
|
-
rubygems_version: 3.1.
|
208
|
-
signing_key:
|
232
|
+
rubygems_version: 3.1.4
|
233
|
+
signing_key:
|
209
234
|
specification_version: 4
|
210
235
|
summary: Ruby bindings for the Telnyx API
|
211
236
|
test_files:
|
@@ -223,6 +248,8 @@ test_files:
|
|
223
248
|
- test/telnyx/connection_test.rb
|
224
249
|
- test/telnyx/credential_connection_test.rb
|
225
250
|
- test/telnyx/errors_test.rb
|
251
|
+
- test/telnyx/fax_application_test.rb
|
252
|
+
- test/telnyx/fax_test.rb
|
226
253
|
- test/telnyx/fqdn_connection_test.rb
|
227
254
|
- test/telnyx/fqdn_test.rb
|
228
255
|
- test/telnyx/ip_connection_test.rb
|
@@ -245,6 +272,8 @@ test_files:
|
|
245
272
|
- test/telnyx/telnyx_object_test.rb
|
246
273
|
- test/telnyx/telnyx_response_test.rb
|
247
274
|
- test/telnyx/util_test.rb
|
275
|
+
- test/telnyx/verification_test.rb
|
276
|
+
- test/telnyx/verify_profile_test.rb
|
248
277
|
- test/telnyx/webhook_test.rb
|
249
278
|
- test/telnyx/wireless_detail_records_report_test.rb
|
250
279
|
- test/telnyx_mock.rb
|
data/.travis.yml
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
|
4
|
-
rvm:
|
5
|
-
- 2.1
|
6
|
-
- 2.2
|
7
|
-
- 2.3
|
8
|
-
- 2.4
|
9
|
-
- 2.5
|
10
|
-
- 2.6
|
11
|
-
|
12
|
-
matrix:
|
13
|
-
include:
|
14
|
-
- rvm: jruby-9.2.11.0
|
15
|
-
jdk: oraclejdk11
|
16
|
-
|
17
|
-
|
18
|
-
notifications:
|
19
|
-
email:
|
20
|
-
on_success: never
|
21
|
-
slack:
|
22
|
-
secure: AMXcZSwIL8SRZQ+opSFrlvNKoUXv1rZkWDgorBmz+BEHwGKWgVzYcZ4GwD5p6Z5uNdtvl9FZz6oLvvAcbW6CblbAPM+f2qLVDlZ/sazpOK8l6QIo7X86U3SuwJicY2CbbKvqN/A3u23Bbvf5u4djvm5oc73qASZY/RJHxm2xcmD57+z6hY12AvWtLJN95BsjVZ9RHXy8/qkJehqGnzSi9VGojNmd0voU9UrxJU0xS10kBA7dQFCCf+NZv9utguyFfAATpa9JTlD1a8QiB2fzvdPkBym1bnqr3nQPk5rNbgiFHf14OIlq7C2jwaNNoB1dDpkT/Vfvmn5EHzBDZQ30PrVpq9uNgQg45pOIMXp9ZLY0zYi/Gzk5tF/lTKUxk5evJ2+2Dtmzv4mzbk98pvGrA+MIkSXuYy6GHZuXanb3OQ5y42dSYVdy1c+WHdbYx1LOJSEGtALr9ADyjDu9KAu2eJMnmGQ14cJarl/33BF4UzCRKpPxV5CwOqI82+fK9pNiW0CLijfxpkFr9aaxViVsf43r5Ag12Jqme18IWCGJ1P5sMEo6bz/Gp4BuVMXQtYExorK+fWkrm1Wus6HGINlRonUswJ9LJ995M384j6KyP1121MJuiPAc1AdNqS1C992j/cDoUDlxsxW9HTX15nGoM712w00wNrj/vdQt0TlmENo=
|
23
|
-
|
24
|
-
sudo: false
|
25
|
-
|
26
|
-
env:
|
27
|
-
global:
|
28
|
-
# If changing this number, please also change it in `test/test_helper.rb`.
|
29
|
-
- TELNYX_MOCK_VERSION=0.8.9
|
30
|
-
|
31
|
-
cache:
|
32
|
-
directories:
|
33
|
-
- telnyx-mock
|
34
|
-
|
35
|
-
before_install:
|
36
|
-
# Install bundler 1.x, because we need to support Ruby 2.1 for now
|
37
|
-
- gem install bundler -v "~> 1.0"
|
38
|
-
# Unpack and start telnyx-mock so that the test suite can talk to it
|
39
|
-
- |
|
40
|
-
if [ ! -d "telnyx-mock/telnyx-mock_${TELNYX_MOCK_VERSION}" ]; then
|
41
|
-
mkdir -p telnyx-mock/${TELNYX_MOCK_VERSION}/
|
42
|
-
curl -L "https://github.com/team-telnyx/telnyx-mock/releases/download/v${TELNYX_MOCK_VERSION}/telnyx-mock_${TELNYX_MOCK_VERSION}_linux_amd64.tar.gz" -o "telnyx-mock/telnyx-mock_${TELNYX_MOCK_VERSION}_linux_amd64.tar.gz"
|
43
|
-
tar -zxf "telnyx-mock/telnyx-mock_${TELNYX_MOCK_VERSION}_linux_amd64.tar.gz" -C "telnyx-mock/${TELNYX_MOCK_VERSION}/"
|
44
|
-
fi
|
45
|
-
- |
|
46
|
-
telnyx-mock/${TELNYX_MOCK_VERSION}/telnyx-mock > /dev/null &
|
47
|
-
TELNYX_MOCK_PID=$!
|
48
|
-
- export PATH="${PATH}:${PWD}/telnyx-mock/${TELNYX_MOCK_VERSION}"
|
49
|
-
|
50
|
-
script:
|
51
|
-
- bundle exec rake
|