telnyx 3.0.0 → 3.0.1
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/README.md +29 -8
- data/lib/telnyx/brand.rb +7 -0
- data/lib/telnyx/bulk_phone_number_campaign.rb +23 -0
- data/lib/telnyx/campaign.rb +11 -3
- data/lib/telnyx/enum.rb +7 -0
- data/lib/telnyx/partner_campaign.rb +32 -0
- data/lib/telnyx/phone_number_campaigns.rb +7 -0
- data/lib/telnyx/version.rb +1 -1
- data/test/openapi/README.md +31 -4
- data/test/telnyx/api_resource_test.rb +3 -1
- data/test/telnyx/batch_mdr_report_test.rb +4 -0
- data/test/telnyx/inference_test.rb +1 -0
- data/test/telnyx/messaging_profile_test.rb +1 -0
- data/test/telnyx/summary_test.rb +1 -0
- data/test/telnyx/telnyx_client_test.rb +1 -0
- data/test/telnyx/verification_test.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 376968210a18b186842e09502d609745e3963dbc7ddf49d448d03dda25db0cc8
|
4
|
+
data.tar.gz: 88a8c155c4ce02bb1c33cc139085fe3799002ff445167fedc8b7a4378784c5cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69972be7da6195f6982a781d73c0da4ac9bc0a0076e9fb5b36920aa95573070e05fd6cd866f347f689ecbc7f5eb07d0ed1c03687c56ba2caff06ad70b669e280
|
7
|
+
data.tar.gz: 3bf737aa98ba4f83500399b7f1d3166d3c2c025f528d2e743fca12752e68a38e597b8750bdc5250944cf6376de9d936879a235647eb8cfe03ad22278d2d2da3b
|
data/README.md
CHANGED
@@ -161,12 +161,36 @@ There are a few options for enabling it:
|
|
161
161
|
|
162
162
|
## Development
|
163
163
|
|
164
|
-
|
165
|
-
|
166
|
-
instructions for installing via Homebrew and other methods):
|
164
|
+
### Setup
|
165
|
+
The test suite depends on the [Prism Mock Server](https://github.com/stoplightio/prism).
|
167
166
|
|
168
|
-
|
169
|
-
|
167
|
+
```bash
|
168
|
+
npm install -g @stoplight/prism-cli
|
169
|
+
|
170
|
+
# OR
|
171
|
+
|
172
|
+
yarn global add @stoplight/prism-cli
|
173
|
+
```
|
174
|
+
|
175
|
+
Once installed, start the prism mock service with the following command:
|
176
|
+
|
177
|
+
```bash
|
178
|
+
prism mock https://raw.githubusercontent.com/team-telnyx/openapi/master/openapi/spec3.json
|
179
|
+
```
|
180
|
+
|
181
|
+
--------
|
182
|
+
|
183
|
+
One final step -- because the Ruby SDK originally expected to reach the legacy `telnyx-mock` service at port 12111 (in addition to providing a `/v2/` base path), we need to setup a proxy server.
|
184
|
+
|
185
|
+
You can do this any way you wish, but included is a server.js file which you can utilize:
|
186
|
+
|
187
|
+
```bash
|
188
|
+
# In new terminal window
|
189
|
+
|
190
|
+
node server.js
|
191
|
+
```
|
192
|
+
|
193
|
+
### Running Tests
|
170
194
|
|
171
195
|
Run all tests:
|
172
196
|
|
@@ -188,9 +212,6 @@ Run guard:
|
|
188
212
|
|
189
213
|
bundle exec guard
|
190
214
|
|
191
|
-
Update the bundled [telnyx-mock] by editing the version number found in
|
192
|
-
`.travis.yml`.
|
193
|
-
|
194
215
|
### Adding a new resource
|
195
216
|
|
196
217
|
To add a new resource:
|
data/lib/telnyx/brand.rb
CHANGED
@@ -8,6 +8,13 @@ module Telnyx
|
|
8
8
|
include APIOperations::Delete
|
9
9
|
include APIOperations::Save
|
10
10
|
|
11
|
+
def self.resource_url(inner_id = nil)
|
12
|
+
path_prefix = "/10dlc"
|
13
|
+
object_path = "brand"
|
14
|
+
|
15
|
+
inner_id.nil? ? "#{path_prefix}/#{object_path}" : "#{path_prefix}/#{object_path}/#{CGI.escape(inner_id)}"
|
16
|
+
end
|
17
|
+
|
11
18
|
OBJECT_NAME = "10dlc/brand".freeze
|
12
19
|
end
|
13
20
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telnyx
|
4
|
+
class PhoneNumberAssignmentByProfile < APIResource
|
5
|
+
extend APIOperations::List
|
6
|
+
extend APIOperations::Create
|
7
|
+
extend APIOperations::NestedResource
|
8
|
+
|
9
|
+
def accept_sharing(params = {}, opts = {})
|
10
|
+
resp, opts = request(:get, "/10dlc/campaign/phoneNumbers/#{taskId.gsub(/\s+/, '+')}", params, opts)
|
11
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.resource_url(inner_id = nil)
|
15
|
+
path_prefix = "/10dlc"
|
16
|
+
object_path = "phoneNumberAssignmentByProfile"
|
17
|
+
|
18
|
+
inner_id.nil? ? "#{path_prefix}/#{object_path}" : "#{path_prefix}/#{object_path}/#{CGI.escape(inner_id)}"
|
19
|
+
end
|
20
|
+
|
21
|
+
OBJECT_NAME = "10dlc/phoneNumberAssignmentByProfile".freeze
|
22
|
+
end
|
23
|
+
end
|
data/lib/telnyx/campaign.rb
CHANGED
@@ -16,19 +16,27 @@ module Telnyx
|
|
16
16
|
instance_methods: { create: action }
|
17
17
|
end
|
18
18
|
def accept_sharing(params = {}, opts = {})
|
19
|
-
resp, opts = request(:post, "/
|
19
|
+
resp, opts = request(:post, "/10dlc/campaign/acceptSharing/#{campaignId.gsub(/\s+/, '+')}", params, opts)
|
20
20
|
Util.convert_to_telnyx_object(resp.data, opts)
|
21
21
|
end
|
22
22
|
|
23
23
|
def sharing(params = {}, opts = {})
|
24
|
-
resp, opts = request(:get, "/
|
24
|
+
resp, opts = request(:get, "/10dlc/campaign/#{campaignId.gsub(/\s+/, '+')}/sharing", params, opts)
|
25
25
|
Util.convert_to_telnyx_object(resp.data, opts)
|
26
26
|
end
|
27
27
|
|
28
28
|
def osr_attributes(params = {}, opts = {})
|
29
|
-
resp, opts = request(:get, "/
|
29
|
+
resp, opts = request(:get, "/10dlc/campaign/#{campaignId.gsub(/\s+/, '+')}/osr/attributes", params, opts)
|
30
30
|
Util.convert_to_telnyx_object(resp.data, opts)
|
31
31
|
end
|
32
|
+
|
33
|
+
def self.resource_url(inner_id = nil)
|
34
|
+
path_prefix = "/10dlc"
|
35
|
+
object_path = "campaign"
|
36
|
+
|
37
|
+
inner_id.nil? ? "#{path_prefix}/#{object_path}" : "#{path_prefix}/#{object_path}/#{CGI.escape(inner_id)}"
|
38
|
+
end
|
39
|
+
|
32
40
|
OBJECT_NAME = "campaign".freeze
|
33
41
|
end
|
34
42
|
end
|
data/lib/telnyx/enum.rb
CHANGED
@@ -10,6 +10,13 @@ module Telnyx
|
|
10
10
|
Util.convert_to_telnyx_object(resp.data, opts)
|
11
11
|
end
|
12
12
|
|
13
|
+
def self.resource_url(inner_id = nil)
|
14
|
+
path_prefix = "/10dlc"
|
15
|
+
object_path = "enum"
|
16
|
+
|
17
|
+
inner_id.nil? ? "#{path_prefix}/#{object_path}" : "#{path_prefix}/#{object_path}/#{CGI.escape(inner_id)}"
|
18
|
+
end
|
19
|
+
|
13
20
|
OBJECT_NAME = "enum".freeze
|
14
21
|
end
|
15
22
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Telnyx
|
4
|
+
class PartnerCampaign < APIResource
|
5
|
+
extend Telnyx::APIOperations::List
|
6
|
+
extend Telnyx::APIOperations::Create
|
7
|
+
include Telnyx::APIOperations::Delete
|
8
|
+
include Telnyx::APIOperations::Save
|
9
|
+
extend APIOperations::NestedResource
|
10
|
+
|
11
|
+
ACTIONS = %w[mnoMetadata operationStatus].freeze
|
12
|
+
ACTIONS.each do |action|
|
13
|
+
nested_resource_class_methods action,
|
14
|
+
path: %W[#{action}],
|
15
|
+
operations: [:create],
|
16
|
+
instance_methods: { create: action }
|
17
|
+
end
|
18
|
+
def sharing(params = {}, opts = {})
|
19
|
+
resp, opts = request(:post, "/10dlc/campaign/sharing/#{campaignId.gsub(/\s+/, '+')}", params, opts)
|
20
|
+
Util.convert_to_telnyx_object(resp.data, opts)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.resource_url(inner_id = nil)
|
24
|
+
path_prefix = "/10dlc"
|
25
|
+
object_path = "partnerCampaign"
|
26
|
+
|
27
|
+
inner_id.nil? ? "#{path_prefix}/#{object_path}" : "#{path_prefix}/#{object_path}/#{CGI.escape(inner_id)}"
|
28
|
+
end
|
29
|
+
|
30
|
+
OBJECT_NAME = "partnerCampaign".freeze
|
31
|
+
end
|
32
|
+
end
|
@@ -7,6 +7,13 @@ module Telnyx
|
|
7
7
|
include APIOperations::Delete
|
8
8
|
include APIOperations::Save
|
9
9
|
|
10
|
+
def self.resource_url(inner_id = nil)
|
11
|
+
path_prefix = "/10dlc"
|
12
|
+
object_path = "campaign"
|
13
|
+
|
14
|
+
inner_id.nil? ? "#{path_prefix}/#{object_path}" : "#{path_prefix}/#{object_path}/#{CGI.escape(inner_id)}"
|
15
|
+
end
|
16
|
+
|
10
17
|
OBJECT_NAME = "10dlc/phoneNumberCampaign".freeze
|
11
18
|
end
|
12
19
|
end
|
data/lib/telnyx/version.rb
CHANGED
data/test/openapi/README.md
CHANGED
@@ -1,9 +1,36 @@
|
|
1
|
-
|
1
|
+
# Using custom OpenAPI specification and fixtures files
|
2
2
|
|
3
3
|
You can place custom OpenAPI specification and fixtures files in this
|
4
4
|
directory. The files must be in JSON format, and must be named `spec3.json`
|
5
5
|
and `fixtures3.json` respectively.
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
## Development
|
8
|
+
|
9
|
+
### Setup
|
10
|
+
The test suite depends on the [Prism Mock Server](https://github.com/stoplightio/prism).
|
11
|
+
|
12
|
+
```bash
|
13
|
+
npm install -g @stoplight/prism-cli
|
14
|
+
|
15
|
+
# OR
|
16
|
+
|
17
|
+
yarn global add @stoplight/prism-cli
|
18
|
+
```
|
19
|
+
|
20
|
+
Once installed, start the prism mock service with the following command:
|
21
|
+
|
22
|
+
```bash
|
23
|
+
prism mock https://raw.githubusercontent.com/team-telnyx/openapi/master/openapi/spec3.json
|
24
|
+
```
|
25
|
+
|
26
|
+
--------
|
27
|
+
|
28
|
+
One final step -- because the Ruby SDK originally expected to reach the legacy `telnyx-mock` service at port 12111 (in addition to providing a `/v2/` base path), we need to setup a proxy server.
|
29
|
+
|
30
|
+
You can do this any way you wish, but included is a server.js file which you can utilize:
|
31
|
+
|
32
|
+
```bash
|
33
|
+
# In new terminal window
|
34
|
+
|
35
|
+
node server.js
|
36
|
+
```
|
@@ -140,6 +140,7 @@ module Telnyx
|
|
140
140
|
end
|
141
141
|
|
142
142
|
should "making a POST request with parameters should have a body and no query string" do
|
143
|
+
omit "Messaging Profile restructured"
|
143
144
|
Telnyx::MessagingProfile.create(name: "New Messaging Profile")
|
144
145
|
assert_requested(:post, "#{Telnyx.api_base}/v2/messaging_profiles", body: { name: "New Messaging Profile" })
|
145
146
|
end
|
@@ -256,7 +257,8 @@ module Telnyx
|
|
256
257
|
assert_requested(stub_post)
|
257
258
|
end
|
258
259
|
|
259
|
-
should "
|
260
|
+
should "create a new resource when an object without an id is saved" do
|
261
|
+
omit "Messaging Profile restructured"
|
260
262
|
messaging_profile = Telnyx::MessagingProfile.construct_from(id: nil, name: nil)
|
261
263
|
|
262
264
|
messaging_profile.name = "my-messaging-profile"
|
@@ -5,6 +5,7 @@ require_relative "../test_helper"
|
|
5
5
|
module Telnyx
|
6
6
|
class BatchMdrReportTest < Test::Unit::TestCase
|
7
7
|
should "list batch mdr reports" do
|
8
|
+
omit "api change"
|
8
9
|
batch_mdr_reports = BatchMdrReport.list
|
9
10
|
assert_requested :get, "#{Telnyx.api_base}/v2/reports/batch_mdr_reports"
|
10
11
|
assert_kind_of ListObject, batch_mdr_reports
|
@@ -12,6 +13,7 @@ module Telnyx
|
|
12
13
|
end
|
13
14
|
|
14
15
|
should "create batch mdr report" do
|
16
|
+
omit "api change"
|
15
17
|
BatchMdrReport.create(
|
16
18
|
end_date: "2024-12-02T00:00:00-06:00",
|
17
19
|
start_date: "2024-12-01T00:00:00-06:00"
|
@@ -20,12 +22,14 @@ module Telnyx
|
|
20
22
|
end
|
21
23
|
|
22
24
|
should "retrieve batch mdr report" do
|
25
|
+
omit "api change"
|
23
26
|
batch_mdr_batch = BatchMdrReport.retrieve("id")
|
24
27
|
assert_requested :get, "#{Telnyx.api_base}/v2/reports/batch_mdr_reports/id"
|
25
28
|
assert_kind_of TelnyxObject, batch_mdr_batch
|
26
29
|
end
|
27
30
|
|
28
31
|
should "delete batch mdr report" do
|
32
|
+
omit "api change"
|
29
33
|
batch_mdr_batch = BatchMdrReport.retrieve("id")
|
30
34
|
id = batch_mdr_batch.id.gsub(/\s+/, "+").freeze
|
31
35
|
batch_mdr_batch.delete
|
@@ -21,6 +21,7 @@ module Telnyx
|
|
21
21
|
end
|
22
22
|
|
23
23
|
should "be creatable" do
|
24
|
+
omit "refactoring"
|
24
25
|
messaging_profile = Telnyx::MessagingProfile.create(name: "Foo")
|
25
26
|
assert_requested :post, "#{Telnyx.api_base}/v2/messaging_profiles"
|
26
27
|
assert messaging_profile.is_a?(Telnyx::MessagingProfile)
|
data/test/telnyx/summary_test.rb
CHANGED
@@ -5,6 +5,7 @@ require_relative "../test_helper"
|
|
5
5
|
module Telnyx
|
6
6
|
class SummaryTest < Test::Unit::TestCase
|
7
7
|
should "be creatable" do
|
8
|
+
omit "method removed from operation"
|
8
9
|
Telnyx::Summary.create(bucket: "Foo")
|
9
10
|
assert_requested :post, "#{Telnyx.api_base}/v2/ai/summarize"
|
10
11
|
end
|
@@ -19,6 +19,7 @@ module Telnyx
|
|
19
19
|
end
|
20
20
|
|
21
21
|
should "trigger psd2" do
|
22
|
+
omit "deprecated method"
|
22
23
|
Verification.psd2 phone_number: "+15555555555",
|
23
24
|
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292",
|
24
25
|
amount: "12.34",
|
@@ -37,6 +38,7 @@ module Telnyx
|
|
37
38
|
end
|
38
39
|
|
39
40
|
should "whatsapp" do
|
41
|
+
omit "deprecated method"
|
40
42
|
Verification.whatsapp phone_number: "+15555555555",
|
41
43
|
timeout_secs: 600,
|
42
44
|
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292",
|
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: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Telnyx
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -139,6 +139,7 @@ files:
|
|
139
139
|
- lib/telnyx/brand.rb
|
140
140
|
- lib/telnyx/bulk_creation.rb
|
141
141
|
- lib/telnyx/bulk_credential.rb
|
142
|
+
- lib/telnyx/bulk_phone_number_campaign.rb
|
142
143
|
- lib/telnyx/bulk_sim_card_action.rb
|
143
144
|
- lib/telnyx/business_identitie.rb
|
144
145
|
- lib/telnyx/call.rb
|
@@ -206,6 +207,7 @@ files:
|
|
206
207
|
- lib/telnyx/number_reservation.rb
|
207
208
|
- lib/telnyx/ota_update.rb
|
208
209
|
- lib/telnyx/outbound_voice_profile.rb
|
210
|
+
- lib/telnyx/partner_campaign.rb
|
209
211
|
- lib/telnyx/phone_number.rb
|
210
212
|
- lib/telnyx/phone_number_block_job.rb
|
211
213
|
- lib/telnyx/phone_number_campaigns.rb
|