bandwidth-sdk 9.0.0 → 9.1.2

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: ee8c7426138e841e2fea1dbff5d5e3c79372a5cd30c20fe6f2b271104d9101d6
4
- data.tar.gz: d6463c59e3d52f560968494124e4563a61d7f2aa0b2b0f04f23e92f65f97247a
3
+ metadata.gz: db76591055af337edfa263589d610ccaeb6548b790e8198c151c8aef12aae58a
4
+ data.tar.gz: '0149d372e10582225a5add12aa9f07b43ab52686431facea7968c011297ca97e'
5
5
  SHA512:
6
- metadata.gz: 255385a80dbc57bccc6dab0f124b9588481eb8075dadce183677b9ca5c7f7d62a65512b876d076d51f051a7de96ca920948e70c4d9b4c1be01cbda03b37f8898
7
- data.tar.gz: 755608aac58ac160de2711c5c3e8b0e57426a023f32c80dc047a2d3c7ee3d345eeb3188dfdfdaeec315690dac6cb377253799119a816a5ae3d34f3135686e24c
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
@@ -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.'
@@ -7,7 +7,8 @@ module Bandwidth
7
7
 
8
8
  def to_bxml(xml)
9
9
  xml.Ring(compact_hash({
10
- 'duration' => duration
10
+ 'duration' => duration,
11
+ 'answerCall' => answer_call
11
12
  }))
12
13
  end
13
14
  end
@@ -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: decoded
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
- media_file_name = 'ruby_integration' #future update to add special symbols
70
- media_file = '12345' #todo: check a binary string
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, media_file_name, media_file, :content_type => "application/octet-stream", :cache_control => "no-cache")
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
- downloaded_media_file = @bandwidth_client.messaging_client.client.get_media(BW_ACCOUNT_ID, media_file_name).data
88
+ downloaded_media = @bandwidth_client.messaging_client.client.get_media(BW_ACCOUNT_ID, media_id).data
77
89
 
78
- assert_equal(downloaded_media_file, media_file, "Downloaded media file not equal to upload")
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 = USER_NUMBER
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.0.0
4
+ version: 9.1.2
5
5
  platform: ruby
6
6
  authors:
7
- - APIMatic SDK Generator
7
+ - Bandwidth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-28 00:00:00.000000000 Z
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.0
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.0
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: Bandwidth's set of APIs
144
- email: support@apimatic.io
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://apimatic.io
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.2.22
306
+ rubygems_version: 3.3.7
306
307
  signing_key:
307
308
  specification_version: 4
308
- summary: bandwidth
309
+ summary: Bandwidth
309
310
  test_files: []