telnyx 2.5.0 → 2.9.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/workflows/publish-gem-on-release.yml +53 -0
- data/.github/workflows/ruby.yml +2 -2
- data/.github/workflows/tweet-release.yml +25 -0
- data/.gitignore +3 -1
- data/.rubocop.yml +1 -1
- data/Gemfile +4 -0
- data/VERSION +1 -1
- data/lib/telnyx.rb +4 -0
- data/lib/telnyx/api_operations/create.rb +6 -1
- data/lib/telnyx/api_operations/nested_resource.rb +1 -1
- data/lib/telnyx/api_resource.rb +10 -0
- data/lib/telnyx/call.rb +1 -1
- data/lib/telnyx/messaging_phone_number.rb +0 -5
- data/lib/telnyx/phone_number.rb +2 -2
- data/lib/telnyx/porting_order.rb +21 -0
- data/lib/telnyx/queue.rb +20 -0
- data/lib/telnyx/queue_call.rb +7 -0
- data/lib/telnyx/telephony_credential.rb +12 -0
- data/lib/telnyx/util.rb +12 -39
- data/lib/telnyx/verification.rb +29 -0
- data/lib/telnyx/version.rb +1 -1
- data/telnyx.gemspec +1 -1
- data/test/telnyx/alphanumeric_sender_id_test.rb +1 -1
- data/test/telnyx/api_operations_test.rb +1 -1
- data/test/telnyx/api_resource_test.rb +1 -1
- data/test/telnyx/available_phone_number_test.rb +1 -1
- data/test/telnyx/call_control_test.rb +10 -31
- data/test/telnyx/conference_test.rb +1 -1
- data/test/telnyx/errors_test.rb +1 -1
- data/test/telnyx/fax_test.rb +2 -1
- data/test/telnyx/list_object_test.rb +1 -1
- data/test/telnyx/message_test.rb +1 -1
- data/test/telnyx/messaging_phone_number_test.rb +1 -1
- data/test/telnyx/messaging_profile_test.rb +1 -1
- data/test/telnyx/number_reservation_test.rb +2 -0
- data/test/telnyx/porting_order_test.rb +53 -0
- data/test/telnyx/public_key_test.rb +1 -1
- data/test/telnyx/queue_test.rb +27 -0
- data/test/telnyx/telephony_credential_test.rb +43 -0
- data/test/telnyx/telnyx_client_test.rb +43 -49
- data/test/telnyx/telnyx_object_test.rb +12 -14
- data/test/telnyx/telnyx_response_test.rb +1 -1
- data/test/telnyx/util_test.rb +1 -1
- data/test/telnyx/verification_test.rb +41 -3
- data/test/telnyx/verify_profile_test.rb +2 -0
- data/test/telnyx/webhook_test.rb +1 -1
- data/test/telnyx/wireless_detail_records_report_test.rb +1 -0
- data/test/telnyx_test.rb +20 -24
- metadata +32 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 504ff2b58e1248f7eee2afa238840a697801c8b2902bf855555a985da8f3cc8f
|
4
|
+
data.tar.gz: 3d0af87ebaf35d13ca71f14413ee4812998f20f760aa3a95de9f02b20d062b9e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad5cf92920604d3e56500da6541320476be81b0a44d266b38a5eb8e530a0b61008ac29900823f8dea4d06914b4982fdedb18217d05703b38b014c2f8e4d623ce
|
7
|
+
data.tar.gz: 94e8ec89aaf27fc2d8176684ec60a35edf8f9389b4a08b90f25a5f75e12d02cd131cc16632bf6ff7db24cd28bcd30404cdabea7d38620162bab6d4998433c719
|
@@ -0,0 +1,53 @@
|
|
1
|
+
on:
|
2
|
+
release:
|
3
|
+
types: [released]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
env:
|
8
|
+
TELNYX_MOCK_VERSION: 0.8.13
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
ruby: [ '2.5', '2.6', '2.7', '3.0' ]
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Set up Ruby
|
16
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
17
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
18
|
+
# uses: ruby/setup-ruby@v1
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby }}
|
22
|
+
- name: Run Setup Script to install mock
|
23
|
+
run: source ./.github/scripts/before_install.sh
|
24
|
+
shell: bash
|
25
|
+
- name: Install dependencies
|
26
|
+
run: bundle install
|
27
|
+
- name: Run tests
|
28
|
+
run: bundle exec rake
|
29
|
+
|
30
|
+
build_and_publish_gem:
|
31
|
+
name: Build + Publish Gem
|
32
|
+
needs: test
|
33
|
+
runs-on: ubuntu-latest
|
34
|
+
permissions:
|
35
|
+
packages: write
|
36
|
+
contents: read
|
37
|
+
steps:
|
38
|
+
- uses: actions/checkout@v2
|
39
|
+
- name: Set up Ruby 2.6
|
40
|
+
uses: ruby/setup-ruby@477b21f02be01bcb8030d50f37cfec92bfa615b6
|
41
|
+
with:
|
42
|
+
ruby-version: 2.6
|
43
|
+
- run: bundle install
|
44
|
+
- name: Publish to RubyGems
|
45
|
+
run: |
|
46
|
+
mkdir -p $HOME/.gem
|
47
|
+
touch $HOME/.gem/credentials
|
48
|
+
chmod 0600 $HOME/.gem/credentials
|
49
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
50
|
+
gem build *.gemspec
|
51
|
+
gem push *.gem
|
52
|
+
env:
|
53
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_API_KEY}}"
|
data/.github/workflows/ruby.yml
CHANGED
@@ -16,11 +16,11 @@ on:
|
|
16
16
|
jobs:
|
17
17
|
test:
|
18
18
|
env:
|
19
|
-
TELNYX_MOCK_VERSION: 0.8.
|
19
|
+
TELNYX_MOCK_VERSION: 0.8.14
|
20
20
|
runs-on: ubuntu-latest
|
21
21
|
strategy:
|
22
22
|
matrix:
|
23
|
-
ruby: [ '2.5', '2.6', '2.7' ]
|
23
|
+
ruby: [ '2.5', '2.6', '2.7', '3.0' ]
|
24
24
|
steps:
|
25
25
|
- uses: actions/checkout@v2
|
26
26
|
- name: Set up Ruby
|
@@ -0,0 +1,25 @@
|
|
1
|
+
on:
|
2
|
+
release:
|
3
|
+
types: [released]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
tweet:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
steps:
|
9
|
+
- uses: ethomson/send-tweet-action@v1
|
10
|
+
with:
|
11
|
+
status: >
|
12
|
+
We have a new ${{github.event.release.tag_name}} release of our
|
13
|
+
${{ fromJson('{
|
14
|
+
"team-telnyx/telnyx-python": "Python",
|
15
|
+
"team-telnyx/telnyx-ruby": "Ruby",
|
16
|
+
"team-telnyx/telnyx-node": "Node",
|
17
|
+
"team-telnyx/telnyx-java": "Java",
|
18
|
+
"team-telnyx/telnyx-dotnet": "Dotnet",
|
19
|
+
"team-telnyx/telnyx-php": "PHP"
|
20
|
+
}')[github.event.repository.full_name] }} SDK!
|
21
|
+
Check out the details here: ${{ github.event.release.html_url }}
|
22
|
+
consumer-key: ${{ secrets.TWITTER_HANDLE_TELNYX_DEV_CONSUMER_API_KEY }}
|
23
|
+
consumer-secret: ${{ secrets.TWITTER_HANDLE_TELNYX_DEV_CONSUMER_API_SECRET }}
|
24
|
+
access-token: ${{ secrets.TWITTER_HANDLE_TELNYX_DEV_ACCESS_TOKEN }}
|
25
|
+
access-token-secret: ${{ secrets.TWITTER_HANDLE_TELNYX_DEV_ACCESS_TOKEN_SECRET }}
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
@@ -24,6 +24,10 @@ group :development do
|
|
24
24
|
gem "guard-rubocop"
|
25
25
|
gem "rubocop", "~> 1.6"
|
26
26
|
|
27
|
+
# debugging
|
28
|
+
# gem 'httplog' # when included logs all http requests
|
29
|
+
# gem 'awesome_print'
|
30
|
+
|
27
31
|
# Rack 2.0+ requires Ruby >= 2.2.2 which is problematic for the test suite on
|
28
32
|
# older Ruby versions. Check Ruby the version here and put a maximum
|
29
33
|
# constraint on Rack if necessary.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.9.0
|
data/lib/telnyx.rb
CHANGED
@@ -63,9 +63,13 @@ require "telnyx/outbound_voice_profile"
|
|
63
63
|
require "telnyx/phone_number_regulatory_requirement"
|
64
64
|
require "telnyx/phone_number"
|
65
65
|
require "telnyx/portout"
|
66
|
+
require "telnyx/porting_order"
|
66
67
|
require "telnyx/public_key"
|
68
|
+
require "telnyx/queue"
|
69
|
+
require "telnyx/queue_call"
|
67
70
|
require "telnyx/regulatory_requirement"
|
68
71
|
require "telnyx/sim_card"
|
72
|
+
require "telnyx/telephony_credential"
|
69
73
|
require "telnyx/verification"
|
70
74
|
require "telnyx/verify_profile"
|
71
75
|
require "telnyx/wireless_detail_records_report"
|
@@ -4,7 +4,12 @@ module Telnyx
|
|
4
4
|
module APIOperations
|
5
5
|
module Create
|
6
6
|
def create(params = {}, opts = {})
|
7
|
-
|
7
|
+
if opts.respond_to? :fetch
|
8
|
+
url = opts.fetch(:resource_url, nil)
|
9
|
+
opts.delete :resource_url
|
10
|
+
end
|
11
|
+
url ||= resource_url
|
12
|
+
resp, opts = request(:post, url, params, opts)
|
8
13
|
Util.convert_to_telnyx_object(resp.data, opts)
|
9
14
|
end
|
10
15
|
end
|
@@ -76,7 +76,7 @@ module Telnyx
|
|
76
76
|
Util.convert_to_telnyx_object(resp.data, opts)
|
77
77
|
end
|
78
78
|
define_instance_method.call(:"delete_#{resource}", operation)
|
79
|
-
when :list
|
79
|
+
when :list # TODO: Add a plain :get case here and refactor code that (mis)uses this.
|
80
80
|
define_singleton_method(:"list_#{resource}s") do |id, params = {}, opts = {}|
|
81
81
|
url = send(resource_url_method, id)
|
82
82
|
resp, opts = request(:get, url, params, opts)
|
data/lib/telnyx/api_resource.rb
CHANGED
@@ -10,6 +10,16 @@ module Telnyx
|
|
10
10
|
# own endpoints, but there are certain cases where this is allowed.
|
11
11
|
attr_accessor :save_with_parent
|
12
12
|
|
13
|
+
class << self
|
14
|
+
def inherited(subclass)
|
15
|
+
super
|
16
|
+
@descendants ||= []
|
17
|
+
@descendants << subclass
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_reader :descendants
|
21
|
+
end
|
22
|
+
|
13
23
|
def self.class_name
|
14
24
|
name.split("::")[-1]
|
15
25
|
end
|
data/lib/telnyx/call.rb
CHANGED
@@ -35,7 +35,7 @@ module Telnyx
|
|
35
35
|
gather_using_audio gather_using_speak playback_start
|
36
36
|
playback_stop record_start record_stop send_dtmf transfer
|
37
37
|
transcription_start transcription_stop record_pause
|
38
|
-
record_resume gather_stop refer].freeze
|
38
|
+
record_resume gather_stop refer enqueue leave_queue].freeze
|
39
39
|
|
40
40
|
ACTIONS.each do |action|
|
41
41
|
nested_resource_class_methods action,
|
@@ -5,11 +5,6 @@ module Telnyx
|
|
5
5
|
include Telnyx::APIOperations::Save
|
6
6
|
extend Telnyx::APIOperations::List
|
7
7
|
|
8
|
-
def initialize(*)
|
9
|
-
super
|
10
|
-
warn "[DEPRECATION] MessagingPhoneNumber is deprecated, use PhoneNumber instead"
|
11
|
-
end
|
12
|
-
|
13
8
|
OBJECT_NAME = "messaging_phone_number".freeze
|
14
9
|
def self.resource_path(id = nil)
|
15
10
|
return "phone_numbers/#{CGI.escape(id)}/messaging" if id
|
data/lib/telnyx/phone_number.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telnyx
|
4
|
+
class PortingOrder < APIResource
|
5
|
+
extend APIOperations::List
|
6
|
+
extend APIOperations::Create
|
7
|
+
extend APIOperations::NestedResource
|
8
|
+
include APIOperations::Delete
|
9
|
+
include Telnyx::APIOperations::Save
|
10
|
+
|
11
|
+
nested_resource_class_methods :loa_template,
|
12
|
+
path: ["loa_template"],
|
13
|
+
operations: %i[list],
|
14
|
+
instance_methods: { list: "loa_template" }
|
15
|
+
nested_resource_class_methods :porting_phone_numbers,
|
16
|
+
path: ["porting_phone_numbers"],
|
17
|
+
operations: %i[list],
|
18
|
+
instance_methods: { list: "porting_phone_numbers" }
|
19
|
+
OBJECT_NAME = "porting_order"
|
20
|
+
end
|
21
|
+
end
|
data/lib/telnyx/queue.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telnyx
|
4
|
+
class Queue < APIResource
|
5
|
+
extend Telnyx::APIOperations::NestedResource
|
6
|
+
|
7
|
+
nested_resource_class_methods(
|
8
|
+
:queue_call,
|
9
|
+
path: "calls",
|
10
|
+
operations: %i[list retrieve],
|
11
|
+
instance_methods: {
|
12
|
+
list: "list",
|
13
|
+
retrieve: "retrieve"
|
14
|
+
}
|
15
|
+
)
|
16
|
+
|
17
|
+
OBJECT_NAME = "queue".freeze
|
18
|
+
RESOURCE_PATH = "queues".freeze
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telnyx
|
4
|
+
class TelephonyCredential < APIResource
|
5
|
+
extend Telnyx::APIOperations::List
|
6
|
+
extend Telnyx::APIOperations::Create
|
7
|
+
include Telnyx::APIOperations::Save
|
8
|
+
include Telnyx::APIOperations::Delete
|
9
|
+
|
10
|
+
OBJECT_NAME = "telephony_credential".freeze
|
11
|
+
end
|
12
|
+
end
|
data/lib/telnyx/util.rb
CHANGED
@@ -37,45 +37,18 @@ module Telnyx
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def self.object_classes
|
40
|
-
@object_classes ||=
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
FaxApplication::OBJECT_NAME => FaxApplication,
|
53
|
-
FQDN::OBJECT_NAME => FQDN,
|
54
|
-
FQDNConnection::OBJECT_NAME => FQDNConnection,
|
55
|
-
IP::OBJECT_NAME => IP,
|
56
|
-
IPConnection::OBJECT_NAME => IPConnection,
|
57
|
-
Message::OBJECT_NAME => Message,
|
58
|
-
MessagingPhoneNumber::OBJECT_NAME => MessagingPhoneNumber,
|
59
|
-
"messaging_settings" => MessagingPhoneNumber,
|
60
|
-
MessagingProfile::OBJECT_NAME => MessagingProfile,
|
61
|
-
NumberLookup::OBJECT_NAME => NumberLookup,
|
62
|
-
NumberOrder::OBJECT_NAME => NumberOrder,
|
63
|
-
NumberOrderDocument::OBJECT_NAME => NumberOrderDocument,
|
64
|
-
NumberReservation::OBJECT_NAME => NumberReservation,
|
65
|
-
OutboundVoiceProfile::OBJECT_NAME => OutboundVoiceProfile,
|
66
|
-
PhoneNumber::OBJECT_NAME => PhoneNumber,
|
67
|
-
"phone_number_reservation" => NumberReservation,
|
68
|
-
PhoneNumberRegulatoryRequirement::OBJECT_NAME => PhoneNumberRegulatoryRequirement,
|
69
|
-
"phone_number_regulatory_group" => PhoneNumberRegulatoryRequirement,
|
70
|
-
Portout::OBJECT_NAME => Portout,
|
71
|
-
VerifyProfile::OBJECT_NAME => VerifyProfile,
|
72
|
-
PublicKey::OBJECT_NAME => PublicKey,
|
73
|
-
RegulatoryRequirement::OBJECT_NAME => RegulatoryRequirement,
|
74
|
-
SimCard::OBJECT_NAME => SimCard,
|
75
|
-
Verification::OBJECT_NAME => Verification,
|
76
|
-
"verification" => Verification::Response,
|
77
|
-
WirelessDetailRecordsReport::OBJECT_NAME => WirelessDetailRecordsReport,
|
78
|
-
}
|
40
|
+
@object_classes ||= APIResource.descendants
|
41
|
+
.select { |klass| klass.constants(false).include? :OBJECT_NAME }
|
42
|
+
.map { |klass| [klass::OBJECT_NAME, klass] }
|
43
|
+
.to_h
|
44
|
+
.merge(
|
45
|
+
"credential" => TelephonyCredential,
|
46
|
+
"messaging_settings" => MessagingPhoneNumber,
|
47
|
+
"phone_number_regulatory_group" => PhoneNumberRegulatoryRequirement,
|
48
|
+
"phone_number_reservation" => NumberReservation,
|
49
|
+
"verification_profile" => VerifyProfile,
|
50
|
+
"verification" => Verification::Response
|
51
|
+
)
|
79
52
|
end
|
80
53
|
|
81
54
|
def self.push_object_class(key, klass)
|
data/lib/telnyx/verification.rb
CHANGED
@@ -8,6 +8,10 @@ module Telnyx
|
|
8
8
|
extend APIOperations::Create
|
9
9
|
extend APIOperations::NestedResource
|
10
10
|
|
11
|
+
class << self
|
12
|
+
private :create
|
13
|
+
end
|
14
|
+
|
11
15
|
nested_resource_class_methods "by_telephone",
|
12
16
|
path: "by_tn",
|
13
17
|
operations: [:retrieve],
|
@@ -21,6 +25,31 @@ module Telnyx
|
|
21
25
|
Response.construct_from resp.data[:data]
|
22
26
|
end
|
23
27
|
|
28
|
+
# Trigger a call verification.
|
29
|
+
def self.call(params = {}, opts = {})
|
30
|
+
create(params, { **opts, resource_url: "#{resource_url}/call" })
|
31
|
+
end
|
32
|
+
|
33
|
+
# Trigger an SMS verification.
|
34
|
+
def self.sms(params = {}, opts = {})
|
35
|
+
create(params, { **opts, resource_url: "#{resource_url}/sms" })
|
36
|
+
end
|
37
|
+
|
38
|
+
# Trigger a PSD2 verification.
|
39
|
+
def self.psd2(params = {}, opts = {})
|
40
|
+
create(params, { **opts, resource_url: "#{resource_url}/psd2" })
|
41
|
+
end
|
42
|
+
|
43
|
+
# Trigger a flashcall verification.
|
44
|
+
def self.flashcall(params = {}, opts = {})
|
45
|
+
create(params, { **opts, resource_url: "#{resource_url}/flashcall" })
|
46
|
+
end
|
47
|
+
|
48
|
+
# Trigger a whatsapp verification.
|
49
|
+
def self.whatsapp(params = {}, opts = {})
|
50
|
+
create(params, { **opts, resource_url: "#{resource_url}/whatsapp" })
|
51
|
+
end
|
52
|
+
|
24
53
|
OBJECT_NAME = "verify_verification".freeze
|
25
54
|
RESOURCE_PATH = "verifications".freeze
|
26
55
|
end
|
data/lib/telnyx/version.rb
CHANGED
data/telnyx.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
}
|
24
24
|
|
25
25
|
s.add_dependency("faraday", ">= 0.13", "< 2.0", "!= 0.16.0", "!= 0.16.1", "!= 0.16.2", "!= 0.17.1")
|
26
|
-
s.add_dependency("net-http-persistent", "
|
26
|
+
s.add_dependency("net-http-persistent", ">= 3.0", "< 5.0")
|
27
27
|
s.add_dependency("ed25519", "~> 1")
|
28
28
|
|
29
29
|
s.files = `git ls-files`.split("\n")
|
@@ -37,6 +37,8 @@ module Telnyx
|
|
37
37
|
assert defined? @call.record_stop
|
38
38
|
assert defined? @call.send_dtmf
|
39
39
|
assert defined? @call.transfer
|
40
|
+
assert defined? @call.enqueue
|
41
|
+
assert defined? @call.leave_queue
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
@@ -62,37 +64,6 @@ module Telnyx
|
|
62
64
|
assert call.call_leg_id
|
63
65
|
assert call.call_session_id
|
64
66
|
end
|
65
|
-
|
66
|
-
should "send all commands" do
|
67
|
-
@call = Call.new
|
68
|
-
@call.id = "1234"
|
69
|
-
@call.reject cause: "CALL_REJECTED"
|
70
|
-
assert_requested :post, format_action_url(@call, "reject")
|
71
|
-
@call.answer
|
72
|
-
assert_requested :post, format_action_url(@call, "answer")
|
73
|
-
@call.hangup
|
74
|
-
assert_requested :post, format_action_url(@call, "hangup")
|
75
|
-
@call.bridge call_control_id: SecureRandom.base64(20)
|
76
|
-
assert_requested :post, format_action_url(@call, "bridge")
|
77
|
-
@call.speak language: "en-US", voice: "female", payload: "Telnyx call control test"
|
78
|
-
assert_requested :post, format_action_url(@call, "speak")
|
79
|
-
@call.fork_start call_control_id: SecureRandom.base64(20)
|
80
|
-
assert_requested :post, format_action_url(@call, "fork_start")
|
81
|
-
@call.fork_stop
|
82
|
-
assert_requested :post, format_action_url(@call, "fork_stop")
|
83
|
-
@call.gather_using_audio audio_url: "https://audio.example.com"
|
84
|
-
assert_requested :post, format_action_url(@call, "gather_using_audio")
|
85
|
-
@call.gather_using_speak language: "en-US", voice: "female", payload: "Telnyx call control test"
|
86
|
-
assert_requested :post, format_action_url(@call, "gather_using_speak")
|
87
|
-
@call.playback_start audio_url: "https://audio.example.com"
|
88
|
-
assert_requested :post, format_action_url(@call, "playback_start")
|
89
|
-
@call.playback_stop
|
90
|
-
assert_requested :post, format_action_url(@call, "playback_stop")
|
91
|
-
@call.send_dtmf digits: "1www2WABCDw9"
|
92
|
-
assert_requested :post, format_action_url(@call, "send_dtmf")
|
93
|
-
@call.transfer to: "+15552223333"
|
94
|
-
assert_requested :post, format_action_url(@call, "transfer")
|
95
|
-
end
|
96
67
|
end
|
97
68
|
|
98
69
|
context "commands" do
|
@@ -172,6 +143,14 @@ module Telnyx
|
|
172
143
|
@call.refer sip_address: "sip:username@sip.non-telnyx-address.com"
|
173
144
|
assert_requested :post, format_action_url(@call, "refer")
|
174
145
|
end
|
146
|
+
should "enqueue" do
|
147
|
+
@call.enqueue call_control_id: SecureRandom.base64(20)
|
148
|
+
assert_requested :post, format_action_url(@call, "enqueue")
|
149
|
+
end
|
150
|
+
should "leave_queue" do
|
151
|
+
@call.leave_queue call_control_id: SecureRandom.base64(20)
|
152
|
+
assert_requested :post, format_action_url(@call, "leave_queue")
|
153
|
+
end
|
175
154
|
end
|
176
155
|
|
177
156
|
def create_call
|
data/test/telnyx/errors_test.rb
CHANGED
data/test/telnyx/fax_test.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "../test_helper"
|
4
|
+
|
4
5
|
module Telnyx
|
5
6
|
class FaxTest < Test::Unit::TestCase
|
6
7
|
should "fetch index" do
|
@@ -11,7 +12,7 @@ module Telnyx
|
|
11
12
|
end
|
12
13
|
|
13
14
|
should "send fax" do
|
14
|
-
fax = Fax.create connection_id: "foo", media_url: "example.com", to: "+13127367276"
|
15
|
+
fax = Fax.create connection_id: "foo", media_url: "example.com", to: "+13127367276", from: "+13127367277"
|
15
16
|
assert_requested :post, "#{Telnyx.api_base}/v2/faxes"
|
16
17
|
assert_kind_of Fax, fax
|
17
18
|
end
|
data/test/telnyx/message_test.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../test_helper"
|
4
|
+
module Telnyx
|
5
|
+
class PortingOrderTest < Test::Unit::TestCase
|
6
|
+
should "list porting orders" do
|
7
|
+
porting_orders = PortingOrder.list
|
8
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/porting_orders"
|
9
|
+
assert_kind_of ListObject, porting_orders
|
10
|
+
assert_kind_of PortingOrder, porting_orders.first
|
11
|
+
end
|
12
|
+
|
13
|
+
should "create porting order" do
|
14
|
+
PortingOrder.create phone_numbers: %w[12223334444 12223335555]
|
15
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/porting_orders"
|
16
|
+
end
|
17
|
+
|
18
|
+
should "retrieve porting order" do
|
19
|
+
porting_order = PortingOrder.retrieve "id"
|
20
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/porting_orders/id"
|
21
|
+
assert_kind_of PortingOrder, porting_order
|
22
|
+
end
|
23
|
+
|
24
|
+
should "delete porting order" do
|
25
|
+
porting_order = PortingOrder.retrieve("id")
|
26
|
+
|
27
|
+
porting_order.delete
|
28
|
+
assert_requested :delete, "#{Telnyx.api_base}/v2/porting_orders/#{porting_order.id}"
|
29
|
+
end
|
30
|
+
|
31
|
+
should "update porting order" do
|
32
|
+
porting_order = PortingOrder.retrieve("id")
|
33
|
+
|
34
|
+
porting_order.user_feedback.user_comment = "user comment!"
|
35
|
+
porting_order.save
|
36
|
+
assert_requested :patch, "#{Telnyx.api_base}/v2/porting_orders/#{porting_order.id}"
|
37
|
+
end
|
38
|
+
|
39
|
+
context "commands" do
|
40
|
+
should "get loa template" do
|
41
|
+
omit "API still in beta"
|
42
|
+
porting_order = PortingOrder.retrieve("id")
|
43
|
+
|
44
|
+
porting_order.loa_template
|
45
|
+
|
46
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/porting_orders/#{porting_order.id}/loa_template"
|
47
|
+
end
|
48
|
+
|
49
|
+
should "fetch porting phone numbers" do
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../test_helper"
|
4
|
+
|
5
|
+
module Telnyx
|
6
|
+
class QueueTest < Test::Unit::TestCase
|
7
|
+
should "retrieve queue" do
|
8
|
+
queue = Queue.retrieve("id")
|
9
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/queues/id"
|
10
|
+
assert_kind_of Queue, queue
|
11
|
+
end
|
12
|
+
|
13
|
+
should "retrieve call from queue" do
|
14
|
+
queue = Queue.retrieve("id")
|
15
|
+
queue_call = queue.retrieve("call_control_id")
|
16
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/queues/id/calls/call_control_id"
|
17
|
+
assert_kind_of QueueCall, queue_call
|
18
|
+
end
|
19
|
+
|
20
|
+
should "list calls from queue" do
|
21
|
+
queue = Queue.retrieve("id")
|
22
|
+
queue_calls = queue.list
|
23
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/queues/id/calls"
|
24
|
+
assert_kind_of QueueCall, queue_calls.first
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../test_helper"
|
4
|
+
|
5
|
+
module Telnyx
|
6
|
+
class TelephonyCredentialTest < Test::Unit::TestCase
|
7
|
+
should "list telephony credentials" do
|
8
|
+
telephony_credentials = TelephonyCredential.list
|
9
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/telephony_credentials"
|
10
|
+
assert_kind_of ListObject, telephony_credentials
|
11
|
+
assert_kind_of TelephonyCredential, telephony_credentials.first
|
12
|
+
end
|
13
|
+
|
14
|
+
should "create telephony credential" do
|
15
|
+
TelephonyCredential.create(
|
16
|
+
name: "Test credential",
|
17
|
+
connection_id: "1234567890"
|
18
|
+
)
|
19
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/telephony_credentials"
|
20
|
+
end
|
21
|
+
|
22
|
+
should "retrieve telephony credential" do
|
23
|
+
telephony_credential = TelephonyCredential.retrieve("id")
|
24
|
+
assert_requested :get, "#{Telnyx.api_base}/v2/telephony_credentials/id"
|
25
|
+
assert_kind_of TelephonyCredential, telephony_credential
|
26
|
+
end
|
27
|
+
|
28
|
+
should "delete telephony credential" do
|
29
|
+
telephony_credential = TelephonyCredential.retrieve("id")
|
30
|
+
|
31
|
+
telephony_credential.delete
|
32
|
+
assert_requested :delete, "#{Telnyx.api_base}/v2/telephony_credentials/id"
|
33
|
+
end
|
34
|
+
|
35
|
+
should "update telephony credential" do
|
36
|
+
telephony_credential = TelephonyCredential.retrieve("id")
|
37
|
+
|
38
|
+
telephony_credential.expires_at = "2021-07-27T17:58:54Z"
|
39
|
+
telephony_credential.save
|
40
|
+
assert_requested :patch, "#{Telnyx.api_base}/v2/telephony_credentials/id"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative "../test_helper"
|
4
4
|
|
5
5
|
module Telnyx
|
6
6
|
class TelnyxClientTest < Test::Unit::TestCase
|
@@ -235,19 +235,17 @@ module Telnyx
|
|
235
235
|
|
236
236
|
context "Telnyx-Account header" do
|
237
237
|
should "use a globally set header" do
|
238
|
-
|
239
|
-
|
240
|
-
Telnyx.telnyx_account = "acct_1234"
|
238
|
+
old = Telnyx.telnyx_account
|
239
|
+
Telnyx.telnyx_account = "acct_1234"
|
241
240
|
|
242
|
-
|
243
|
-
|
244
|
-
|
241
|
+
stub_request(:post, "#{Telnyx.api_base}/v2/messaging_profiles")
|
242
|
+
.with(headers: { "Telnyx-Account" => Telnyx.telnyx_account })
|
243
|
+
.to_return(body: JSON.generate(object: "account"))
|
245
244
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
end
|
245
|
+
client = TelnyxClient.new
|
246
|
+
client.execute_request(:post, "/v2/messaging_profiles", params: { name: "foobar" })
|
247
|
+
ensure
|
248
|
+
Telnyx.telnyx_account = old
|
251
249
|
end
|
252
250
|
|
253
251
|
should "use a locally set header" do
|
@@ -274,40 +272,38 @@ module Telnyx
|
|
274
272
|
|
275
273
|
context "app_info" do
|
276
274
|
should "send app_info if set" do
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
)
|
275
|
+
old = Telnyx.app_info
|
276
|
+
Telnyx.set_app_info(
|
277
|
+
"MyAwesomePlugin",
|
278
|
+
partner_id: "partner_1234",
|
279
|
+
url: "https://myawesomeplugin.info",
|
280
|
+
version: "1.2.34"
|
281
|
+
)
|
285
282
|
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
283
|
+
stub_request(:post, "#{Telnyx.api_base}/v2/messaging_profiles")
|
284
|
+
.with do |req|
|
285
|
+
assert_equal \
|
286
|
+
"Telnyx/v2 RubyBindings/#{Telnyx::VERSION} " \
|
287
|
+
"MyAwesomePlugin/1.2.34 (https://myawesomeplugin.info)",
|
288
|
+
req.headers["User-Agent"]
|
292
289
|
|
293
|
-
|
294
|
-
|
290
|
+
data = JSON.parse(req.headers["X-Telnyx-Client-User-Agent"],
|
291
|
+
symbolize_names: true)
|
295
292
|
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
293
|
+
assert_equal({
|
294
|
+
name: "MyAwesomePlugin",
|
295
|
+
partner_id: "partner_1234",
|
296
|
+
url: "https://myawesomeplugin.info",
|
297
|
+
version: "1.2.34",
|
298
|
+
}, data[:application])
|
302
299
|
|
303
|
-
|
304
|
-
|
300
|
+
true
|
301
|
+
end.to_return(body: JSON.generate(record_type: "messaging_profile"))
|
305
302
|
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
end
|
303
|
+
client = TelnyxClient.new
|
304
|
+
client.execute_request(:post, "/v2/messaging_profiles")
|
305
|
+
ensure
|
306
|
+
Telnyx.app_info = old
|
311
307
|
end
|
312
308
|
end
|
313
309
|
|
@@ -591,16 +587,14 @@ module Telnyx
|
|
591
587
|
end
|
592
588
|
|
593
589
|
should "reset local thread state after a call" do
|
594
|
-
|
595
|
-
Thread.current[:telnyx_client] = :telnyx_client
|
590
|
+
Thread.current[:telnyx_client] = :telnyx_client
|
596
591
|
|
597
|
-
|
598
|
-
|
592
|
+
client = TelnyxClient.new
|
593
|
+
client.request {}
|
599
594
|
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
end
|
595
|
+
assert_equal :telnyx_client, Thread.current[:telnyx_client]
|
596
|
+
ensure
|
597
|
+
Thread.current[:telnyx_client] = nil
|
604
598
|
end
|
605
599
|
end
|
606
600
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative "../test_helper"
|
4
4
|
|
5
5
|
module Telnyx
|
6
6
|
class TelnyxObjectTest < Test::Unit::TestCase
|
@@ -159,21 +159,19 @@ module Telnyx
|
|
159
159
|
|
160
160
|
context "#to_hash" do
|
161
161
|
should "skip calling to_hash on nil" do
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
raise "Can't call to_hash on nil"
|
166
|
-
end
|
162
|
+
module NilWithToHash
|
163
|
+
def to_hash
|
164
|
+
raise "Can't call to_hash on nil"
|
167
165
|
end
|
168
|
-
::NilClass.include NilWithToHash
|
169
|
-
|
170
|
-
hash_with_nil = { id: 3, foo: nil }
|
171
|
-
obj = TelnyxObject.construct_from(hash_with_nil)
|
172
|
-
expected_hash = { id: 3, foo: nil }
|
173
|
-
assert_equal expected_hash, obj.to_hash
|
174
|
-
ensure
|
175
|
-
::NilClass.send(:undef_method, :to_hash)
|
176
166
|
end
|
167
|
+
::NilClass.include NilWithToHash
|
168
|
+
|
169
|
+
hash_with_nil = { id: 3, foo: nil }
|
170
|
+
obj = TelnyxObject.construct_from(hash_with_nil)
|
171
|
+
expected_hash = { id: 3, foo: nil }
|
172
|
+
assert_equal expected_hash, obj.to_hash
|
173
|
+
ensure
|
174
|
+
::NilClass.send(:undef_method, :to_hash)
|
177
175
|
end
|
178
176
|
|
179
177
|
should "recursively call to_hash on its values" do
|
data/test/telnyx/util_test.rb
CHANGED
@@ -1,10 +1,48 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative "../test_helper"
|
4
|
+
|
3
5
|
module Telnyx
|
4
6
|
class VerificationTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
|
7
|
-
|
7
|
+
context "create verification" do
|
8
|
+
should "call" do
|
9
|
+
Verification.call phone_number: "+15555555555",
|
10
|
+
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292"
|
11
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verifications/call"
|
12
|
+
end
|
13
|
+
|
14
|
+
should "send sms" do
|
15
|
+
Verification.sms phone_number: "+15555555555",
|
16
|
+
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292",
|
17
|
+
timeout_secs: 600
|
18
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verifications/sms"
|
19
|
+
end
|
20
|
+
|
21
|
+
should "trigger psd2" do
|
22
|
+
Verification.psd2 phone_number: "+15555555555",
|
23
|
+
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292",
|
24
|
+
amount: "12.34",
|
25
|
+
currency: "USD",
|
26
|
+
payee: "FooBar Inc.",
|
27
|
+
timeout_secs: 600
|
28
|
+
|
29
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verifications/psd2"
|
30
|
+
end
|
31
|
+
|
32
|
+
should "flashcall" do
|
33
|
+
Verification.flashcall phone_number: "+15555555555",
|
34
|
+
timeout_secs: 600,
|
35
|
+
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292"
|
36
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verifications/flashcall"
|
37
|
+
end
|
38
|
+
|
39
|
+
should "whatsapp" do
|
40
|
+
Verification.whatsapp phone_number: "+15555555555",
|
41
|
+
timeout_secs: 600,
|
42
|
+
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292",
|
43
|
+
app_name: "FooBar"
|
44
|
+
assert_requested :post, "#{Telnyx.api_base}/v2/verifications/whatsapp"
|
45
|
+
end
|
8
46
|
end
|
9
47
|
|
10
48
|
should "retrieve verification" do
|
data/test/telnyx/webhook_test.rb
CHANGED
data/test/telnyx_test.rb
CHANGED
@@ -4,33 +4,29 @@ require ::File.expand_path("../test_helper", __FILE__)
|
|
4
4
|
|
5
5
|
class TelnyxTest < Test::Unit::TestCase
|
6
6
|
should "allow app_info to be configured" do
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
Telnyx.app_info = old
|
23
|
-
end
|
7
|
+
old = Telnyx.app_info
|
8
|
+
Telnyx.set_app_info(
|
9
|
+
"MyAwesomePlugin",
|
10
|
+
partner_id: "partner_1234",
|
11
|
+
url: "https://myawesomeplugin.info",
|
12
|
+
version: "1.2.34"
|
13
|
+
)
|
14
|
+
assert_equal({
|
15
|
+
name: "MyAwesomePlugin",
|
16
|
+
partner_id: "partner_1234",
|
17
|
+
url: "https://myawesomeplugin.info",
|
18
|
+
version: "1.2.34",
|
19
|
+
}, Telnyx.app_info)
|
20
|
+
ensure
|
21
|
+
Telnyx.app_info = old
|
24
22
|
end
|
25
23
|
|
26
24
|
should "allow max_network_retries to be configured" do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
Telnyx.max_network_retries = old
|
33
|
-
end
|
25
|
+
old = Telnyx.max_network_retries
|
26
|
+
Telnyx.max_network_retries = 99
|
27
|
+
assert_equal 99, Telnyx.max_network_retries
|
28
|
+
ensure
|
29
|
+
Telnyx.max_network_retries = old
|
34
30
|
end
|
35
31
|
|
36
32
|
should "have default open and read timeouts" do
|
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.9.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: 2021-
|
11
|
+
date: 2021-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.13'
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '2.0'
|
23
20
|
- - "!="
|
24
21
|
- !ruby/object:Gem::Version
|
25
22
|
version: 0.16.0
|
@@ -32,6 +29,9 @@ dependencies:
|
|
32
29
|
- - "!="
|
33
30
|
- !ruby/object:Gem::Version
|
34
31
|
version: 0.17.1
|
32
|
+
- - "<"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '2.0'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -39,9 +39,6 @@ dependencies:
|
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0.13'
|
42
|
-
- - "<"
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: '2.0'
|
45
42
|
- - "!="
|
46
43
|
- !ruby/object:Gem::Version
|
47
44
|
version: 0.16.0
|
@@ -54,20 +51,29 @@ dependencies:
|
|
54
51
|
- - "!="
|
55
52
|
- !ruby/object:Gem::Version
|
56
53
|
version: 0.17.1
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '2.0'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: net-http-persistent
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - "
|
61
|
+
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '3.0'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '5.0'
|
64
67
|
type: :runtime
|
65
68
|
prerelease: false
|
66
69
|
version_requirements: !ruby/object:Gem::Requirement
|
67
70
|
requirements:
|
68
|
-
- - "
|
71
|
+
- - ">="
|
69
72
|
- !ruby/object:Gem::Version
|
70
73
|
version: '3.0'
|
74
|
+
- - "<"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '5.0'
|
71
77
|
- !ruby/object:Gem::Dependency
|
72
78
|
name: ed25519
|
73
79
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,7 +98,9 @@ extra_rdoc_files: []
|
|
92
98
|
files:
|
93
99
|
- ".github/ISSUE_TEMPLATE.md"
|
94
100
|
- ".github/scripts/before_install.sh"
|
101
|
+
- ".github/workflows/publish-gem-on-release.yml"
|
95
102
|
- ".github/workflows/ruby.yml"
|
103
|
+
- ".github/workflows/tweet-release.yml"
|
96
104
|
- ".gitignore"
|
97
105
|
- ".rubocop.yml"
|
98
106
|
- ".rubocop_todo.yml"
|
@@ -151,11 +159,15 @@ files:
|
|
151
159
|
- lib/telnyx/outbound_voice_profile.rb
|
152
160
|
- lib/telnyx/phone_number.rb
|
153
161
|
- lib/telnyx/phone_number_regulatory_requirement.rb
|
162
|
+
- lib/telnyx/porting_order.rb
|
154
163
|
- lib/telnyx/portout.rb
|
155
164
|
- lib/telnyx/public_key.rb
|
165
|
+
- lib/telnyx/queue.rb
|
166
|
+
- lib/telnyx/queue_call.rb
|
156
167
|
- lib/telnyx/regulatory_requirement.rb
|
157
168
|
- lib/telnyx/sim_card.rb
|
158
169
|
- lib/telnyx/singleton_api_resource.rb
|
170
|
+
- lib/telnyx/telephony_credential.rb
|
159
171
|
- lib/telnyx/telnyx_client.rb
|
160
172
|
- lib/telnyx/telnyx_object.rb
|
161
173
|
- lib/telnyx/telnyx_response.rb
|
@@ -197,9 +209,12 @@ files:
|
|
197
209
|
- test/telnyx/outbound_voice_profile_test.rb
|
198
210
|
- test/telnyx/phone_number_regulatory_requirement_test.rb
|
199
211
|
- test/telnyx/phone_number_test.rb
|
212
|
+
- test/telnyx/porting_order_test.rb
|
200
213
|
- test/telnyx/public_key_test.rb
|
214
|
+
- test/telnyx/queue_test.rb
|
201
215
|
- test/telnyx/regulatory_requirement_test.rb
|
202
216
|
- test/telnyx/sim_card_test.rb
|
217
|
+
- test/telnyx/telephony_credential_test.rb
|
203
218
|
- test/telnyx/telnyx_client_test.rb
|
204
219
|
- test/telnyx/telnyx_object_test.rb
|
205
220
|
- test/telnyx/telnyx_response_test.rb
|
@@ -220,7 +235,7 @@ metadata:
|
|
220
235
|
github_repo: ssh://github.com/team-telnyx/telnyx-ruby
|
221
236
|
homepage_uri: https://telnyx.com
|
222
237
|
source_code_uri: https://github.com/team-telnyx/telnyx-ruby
|
223
|
-
post_install_message:
|
238
|
+
post_install_message:
|
224
239
|
rdoc_options: []
|
225
240
|
require_paths:
|
226
241
|
- lib
|
@@ -235,8 +250,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
235
250
|
- !ruby/object:Gem::Version
|
236
251
|
version: '0'
|
237
252
|
requirements: []
|
238
|
-
rubygems_version: 3.1
|
239
|
-
signing_key:
|
253
|
+
rubygems_version: 3.0.3.1
|
254
|
+
signing_key:
|
240
255
|
specification_version: 4
|
241
256
|
summary: Ruby bindings for the Telnyx API
|
242
257
|
test_files:
|
@@ -271,9 +286,12 @@ test_files:
|
|
271
286
|
- test/telnyx/outbound_voice_profile_test.rb
|
272
287
|
- test/telnyx/phone_number_regulatory_requirement_test.rb
|
273
288
|
- test/telnyx/phone_number_test.rb
|
289
|
+
- test/telnyx/porting_order_test.rb
|
274
290
|
- test/telnyx/public_key_test.rb
|
291
|
+
- test/telnyx/queue_test.rb
|
275
292
|
- test/telnyx/regulatory_requirement_test.rb
|
276
293
|
- test/telnyx/sim_card_test.rb
|
294
|
+
- test/telnyx/telephony_credential_test.rb
|
277
295
|
- test/telnyx/telnyx_client_test.rb
|
278
296
|
- test/telnyx/telnyx_object_test.rb
|
279
297
|
- test/telnyx/telnyx_response_test.rb
|