bandwidth-sdk 9.0.0 → 9.1.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db76591055af337edfa263589d610ccaeb6548b790e8198c151c8aef12aae58a
|
4
|
+
data.tar.gz: '0149d372e10582225a5add12aa9f07b43ab52686431facea7968c011297ca97e'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07716df459d4e176ec1725d353f1c811db5fe8890bb413d84cc54a531d69db998add4aee95f6da55d113a62678a9d924c2278e6148a3fafeb0f04230c1561337
|
7
|
+
data.tar.gz: 21c7a1a53d35326b9319dc7836d93d71a7e252b0804ca2311053aaed6c85149e9ec5ac1f2bd2adfcf9439ae80259c22302f2b1f18c63d207d5b3b5260895bb46
|
data/README.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Bandwidth Ruby SDK
|
2
2
|
|
3
|
+
[![Test](https://github.com/Bandwidth/ruby-sdk/actions/workflows/test.yml/badge.svg)](https://github.com/Bandwidth/ruby-sdk/actions/workflows/test.yml)
|
4
|
+
|
5
|
+
|
6
|
+
| **OS** | **Ruby** |
|
7
|
+
|:---:|:---:|
|
8
|
+
| Windows 2016 | 2.6, 2.7, 3.0 |
|
9
|
+
| Windows 2019 | 2.6, 2.7, 3.0 |
|
10
|
+
| Ubuntu 18.04 | 2.6, 2.7, 3.0 |
|
11
|
+
| Ubuntu 20.04 | 2.6, 2.7, 3.0 |
|
12
|
+
|
3
13
|
## Getting Started
|
4
14
|
|
5
15
|
### Installation
|
data/lib/bandwidth/api_helper.rb
CHANGED
@@ -144,6 +144,7 @@ module Bandwidth
|
|
144
144
|
# Parses JSON string.
|
145
145
|
# @param [String] A JSON string.
|
146
146
|
def self.json_deserialize(json)
|
147
|
+
return {} if json.nil? || json.empty?
|
147
148
|
JSON.parse(json)
|
148
149
|
rescue StandardError
|
149
150
|
raise TypeError, 'Server responded with invalid JSON.'
|
@@ -590,15 +590,9 @@ module Voice
|
|
590
590
|
)
|
591
591
|
_query_url = APIHelper.clean_url _query_builder
|
592
592
|
|
593
|
-
# Prepare headers.
|
594
|
-
_headers = {
|
595
|
-
'accept' => 'application/json'
|
596
|
-
}
|
597
|
-
|
598
593
|
# Prepare and execute HttpRequest.
|
599
594
|
_request = config.http_client.get(
|
600
|
-
_query_url
|
601
|
-
headers: _headers
|
595
|
+
_query_url
|
602
596
|
)
|
603
597
|
VoiceBasicAuth.apply(config, _request)
|
604
598
|
_response = execute_request(_request)
|
@@ -648,11 +642,8 @@ module Voice
|
|
648
642
|
validate_response(_response)
|
649
643
|
|
650
644
|
# Return appropriate response type.
|
651
|
-
decoded = APIHelper.json_deserialize(_response.raw_body) unless
|
652
|
-
_response.raw_body.nil? ||
|
653
|
-
_response.raw_body.to_s.strip.empty?
|
654
645
|
ApiResponse.new(
|
655
|
-
_response, data:
|
646
|
+
_response, data: _response.raw_body
|
656
647
|
)
|
657
648
|
end
|
658
649
|
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# A simple integration test against Bandwidth's APIs
|
4
4
|
|
5
5
|
require 'test/unit'
|
6
|
+
require 'securerandom'
|
6
7
|
require_relative '../../lib/bandwidth.rb'
|
7
8
|
|
8
9
|
include Bandwidth
|
@@ -37,6 +38,17 @@ class IntegrationTest < Test::Unit::TestCase
|
|
37
38
|
phone_number_lookup_basic_auth_user_name: BW_USERNAME,
|
38
39
|
phone_number_lookup_basic_auth_password: BW_PASSWORD
|
39
40
|
)
|
41
|
+
|
42
|
+
@bandwidth_client_invalid_auth = Bandwidth::Client.new(
|
43
|
+
voice_basic_auth_user_name: "bad_username",
|
44
|
+
voice_basic_auth_password: "bad_password",
|
45
|
+
messaging_basic_auth_user_name: "bad_username",
|
46
|
+
messaging_basic_auth_password: "bad_password",
|
47
|
+
multi_factor_auth_basic_auth_user_name: "bad_username",
|
48
|
+
multi_factor_auth_basic_auth_password: "bad_password",
|
49
|
+
phone_number_lookup_basic_auth_user_name: "bad_username",
|
50
|
+
phone_number_lookup_basic_auth_password: "bad_password"
|
51
|
+
)
|
40
52
|
end
|
41
53
|
|
42
54
|
def test_create_message
|
@@ -66,18 +78,31 @@ class IntegrationTest < Test::Unit::TestCase
|
|
66
78
|
|
67
79
|
def test_upload_download_media
|
68
80
|
#define constants for upload media and download media
|
69
|
-
|
70
|
-
|
81
|
+
media_id = "text-media-id-" + SecureRandom.uuid
|
82
|
+
media = "Hello world"
|
71
83
|
|
72
84
|
#media upload
|
73
|
-
@bandwidth_client.messaging_client.client.upload_media(BW_ACCOUNT_ID,
|
85
|
+
@bandwidth_client.messaging_client.client.upload_media(BW_ACCOUNT_ID, media_id, media, :content_type => "application/octet-stream", :cache_control => "no-cache")
|
74
86
|
|
75
87
|
#media download
|
76
|
-
|
88
|
+
downloaded_media = @bandwidth_client.messaging_client.client.get_media(BW_ACCOUNT_ID, media_id).data
|
77
89
|
|
78
|
-
assert_equal(
|
90
|
+
assert_equal(downloaded_media, media, "Downloaded media file not equal to upload")
|
79
91
|
end
|
80
92
|
|
93
|
+
def test_get_message
|
94
|
+
# Send a successful request to the GET messages API
|
95
|
+
response = @bandwidth_client.messaging_client.client.get_messages(BW_ACCOUNT_ID, :message_id => "abc123")
|
96
|
+
assert_equal(response.status_code, 200, "API did not return a 200 OK")
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_get_message_invalid_auth
|
100
|
+
# Send an unsuccessful request to the GET messages API
|
101
|
+
assert_raise MessagingException do
|
102
|
+
response = @bandwidth_client_invalid_auth.messaging_client.client.get_messages(BW_ACCOUNT_ID)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
81
106
|
def test_create_call_and_get_call_state
|
82
107
|
body = CreateCallRequest.new
|
83
108
|
body.from = BW_NUMBER
|
@@ -88,6 +113,7 @@ class IntegrationTest < Test::Unit::TestCase
|
|
88
113
|
assert(response.data.call_id.length > 0, "call_id value not set")
|
89
114
|
|
90
115
|
#Get phone call information
|
116
|
+
sleep 1
|
91
117
|
response = @bandwidth_client.voice_client.client.get_call(BW_ACCOUNT_ID, response.data.call_id)
|
92
118
|
assert(response.data.state.length > 0, "state value not set")
|
93
119
|
end
|
@@ -515,7 +541,7 @@ class IntegrationTest < Test::Unit::TestCase
|
|
515
541
|
|
516
542
|
def test_mfa_verify
|
517
543
|
body = TwoFactorVerifyRequestSchema.new
|
518
|
-
body.to =
|
544
|
+
body.to = "+1000" + rand(1111111..9999999).to_s
|
519
545
|
body.application_id = BW_VOICE_APPLICATION_ID
|
520
546
|
body.scope = "scope"
|
521
547
|
body.code = "123456"
|
@@ -554,13 +580,14 @@ class IntegrationTest < Test::Unit::TestCase
|
|
554
580
|
|
555
581
|
def test_ring
|
556
582
|
ring = Bandwidth::Voice::Ring.new({
|
557
|
-
:duration => 5
|
583
|
+
:duration => 5,
|
584
|
+
:answer_call => false
|
558
585
|
})
|
559
586
|
|
560
587
|
response = Bandwidth::Voice::Response.new()
|
561
588
|
response.push(ring)
|
562
589
|
|
563
|
-
expected = '<?xml version="1.0" encoding="UTF-8"?><Response><Ring duration="5"/></Response>'
|
590
|
+
expected = '<?xml version="1.0" encoding="UTF-8"?><Response><Ring duration="5" answerCall="false"/></Response>'
|
564
591
|
actual = response.to_bxml()
|
565
592
|
assert_equal(expected, actual)
|
566
593
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bandwidth-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Bandwidth
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logging
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: '1.0'
|
34
34
|
- - "<="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 1.3
|
36
|
+
version: 1.9.3
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '1.0'
|
44
44
|
- - "<="
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 1.3
|
46
|
+
version: 1.9.3
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: faraday_middleware
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,8 +140,9 @@ dependencies:
|
|
140
140
|
- - "~>"
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '1.0'
|
143
|
-
description:
|
144
|
-
|
143
|
+
description: The official client SDK for Bandwidht's Voice, Messaging, MFA, and WebRTC
|
144
|
+
APIs
|
145
|
+
email: dx@bandwidth.com
|
145
146
|
executables: []
|
146
147
|
extensions: []
|
147
148
|
extra_rdoc_files: []
|
@@ -283,7 +284,7 @@ files:
|
|
283
284
|
- test/http_response_catcher.rb
|
284
285
|
- test/integration/test_integration.rb
|
285
286
|
- test/test_helper.rb
|
286
|
-
homepage: https://
|
287
|
+
homepage: https://github.com/Bandwidth/ruby-sdk
|
287
288
|
licenses:
|
288
289
|
- MIT
|
289
290
|
metadata: {}
|
@@ -302,8 +303,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
302
303
|
- !ruby/object:Gem::Version
|
303
304
|
version: '0'
|
304
305
|
requirements: []
|
305
|
-
rubygems_version: 3.
|
306
|
+
rubygems_version: 3.3.7
|
306
307
|
signing_key:
|
307
308
|
specification_version: 4
|
308
|
-
summary:
|
309
|
+
summary: Bandwidth
|
309
310
|
test_files: []
|