telnyx 2.5.0 → 2.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|