telnyx 2.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1f463fe082759c9cb99808df9016e908788912ac9a6d1f5c7de4b29c27ca891
4
- data.tar.gz: cf8bb9e8030e6fac0063cd876339ea73b6db99e911c865af06c49bf7baa7ae7c
3
+ metadata.gz: 504ff2b58e1248f7eee2afa238840a697801c8b2902bf855555a985da8f3cc8f
4
+ data.tar.gz: 3d0af87ebaf35d13ca71f14413ee4812998f20f760aa3a95de9f02b20d062b9e
5
5
  SHA512:
6
- metadata.gz: 4cc528c37b37e18abb166a4e10bd97631ded62a951ce8ce221ddf7c867488046db85ff96bbb4c0b97c23350113d978286e5c5c6251b5879b3f8b47f09d29e797
7
- data.tar.gz: 6e35320931291772a01de09fd2bd2e7301fb1f92d158bb4e71fa00c7b4eb4774ce13714ef30eb59a2e76d81a69704b21ff52a50735045c4ba786cd0d063c64d5
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}}"
@@ -16,7 +16,7 @@ on:
16
16
  jobs:
17
17
  test:
18
18
  env:
19
- TELNYX_MOCK_VERSION: 0.8.13
19
+ TELNYX_MOCK_VERSION: 0.8.14
20
20
  runs-on: ubuntu-latest
21
21
  strategy:
22
22
  matrix:
@@ -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/VERSION CHANGED
@@ -1 +1 @@
1
- 2.8.0
1
+ 2.9.0
data/lib/telnyx.rb CHANGED
@@ -63,7 +63,10 @@ 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"
69
72
  require "telnyx/telephony_credential"
@@ -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)
@@ -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
@@ -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,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ class QueueCall < APIResource
5
+ OBJECT_NAME = "queue_call".freeze
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Telnyx
4
- VERSION = "2.8.0".freeze
4
+ VERSION = "2.9.0".freeze
5
5
  end
@@ -12,7 +12,7 @@ module Telnyx
12
12
  end
13
13
 
14
14
  should "send fax" do
15
- 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"
16
16
  assert_requested :post, "#{Telnyx.api_base}/v2/faxes"
17
17
  assert_kind_of Fax, fax
18
18
  end
@@ -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
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.8.0
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-07-30 00:00:00.000000000 Z
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,6 +51,9 @@ 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
@@ -98,7 +98,9 @@ extra_rdoc_files: []
98
98
  files:
99
99
  - ".github/ISSUE_TEMPLATE.md"
100
100
  - ".github/scripts/before_install.sh"
101
+ - ".github/workflows/publish-gem-on-release.yml"
101
102
  - ".github/workflows/ruby.yml"
103
+ - ".github/workflows/tweet-release.yml"
102
104
  - ".gitignore"
103
105
  - ".rubocop.yml"
104
106
  - ".rubocop_todo.yml"
@@ -157,8 +159,11 @@ files:
157
159
  - lib/telnyx/outbound_voice_profile.rb
158
160
  - lib/telnyx/phone_number.rb
159
161
  - lib/telnyx/phone_number_regulatory_requirement.rb
162
+ - lib/telnyx/porting_order.rb
160
163
  - lib/telnyx/portout.rb
161
164
  - lib/telnyx/public_key.rb
165
+ - lib/telnyx/queue.rb
166
+ - lib/telnyx/queue_call.rb
162
167
  - lib/telnyx/regulatory_requirement.rb
163
168
  - lib/telnyx/sim_card.rb
164
169
  - lib/telnyx/singleton_api_resource.rb
@@ -204,7 +209,9 @@ files:
204
209
  - test/telnyx/outbound_voice_profile_test.rb
205
210
  - test/telnyx/phone_number_regulatory_requirement_test.rb
206
211
  - test/telnyx/phone_number_test.rb
212
+ - test/telnyx/porting_order_test.rb
207
213
  - test/telnyx/public_key_test.rb
214
+ - test/telnyx/queue_test.rb
208
215
  - test/telnyx/regulatory_requirement_test.rb
209
216
  - test/telnyx/sim_card_test.rb
210
217
  - test/telnyx/telephony_credential_test.rb
@@ -228,7 +235,7 @@ metadata:
228
235
  github_repo: ssh://github.com/team-telnyx/telnyx-ruby
229
236
  homepage_uri: https://telnyx.com
230
237
  source_code_uri: https://github.com/team-telnyx/telnyx-ruby
231
- post_install_message:
238
+ post_install_message:
232
239
  rdoc_options: []
233
240
  require_paths:
234
241
  - lib
@@ -243,8 +250,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
250
  - !ruby/object:Gem::Version
244
251
  version: '0'
245
252
  requirements: []
246
- rubygems_version: 3.2.15
247
- signing_key:
253
+ rubygems_version: 3.0.3.1
254
+ signing_key:
248
255
  specification_version: 4
249
256
  summary: Ruby bindings for the Telnyx API
250
257
  test_files:
@@ -279,7 +286,9 @@ test_files:
279
286
  - test/telnyx/outbound_voice_profile_test.rb
280
287
  - test/telnyx/phone_number_regulatory_requirement_test.rb
281
288
  - test/telnyx/phone_number_test.rb
289
+ - test/telnyx/porting_order_test.rb
282
290
  - test/telnyx/public_key_test.rb
291
+ - test/telnyx/queue_test.rb
283
292
  - test/telnyx/regulatory_requirement_test.rb
284
293
  - test/telnyx/sim_card_test.rb
285
294
  - test/telnyx/telephony_credential_test.rb