bandwidth-sdk 10.2.0 → 10.4.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: 65f5051221fb33aaeeb193511c0fb9b74521f3b045c2441a275534b7b3f990a6
4
- data.tar.gz: 21463dabcfd99cc0249b8ee472ea66d7cfa833e221d104c8d81b8474191de6b7
3
+ metadata.gz: 2f011b72b189da15e3b1b43201601250454cbd2c348c9b13629c0f4b8eb02838
4
+ data.tar.gz: dc058e532b3e089f6591bd41d6b2984cd2ef2ba1d44f61c609e9253c918192cb
5
5
  SHA512:
6
- metadata.gz: dfa0184eafdb711138d580e4c3d19c996fecd14f922b4231f54b2a596576b1f167510990b00efb121ac4f140b5dcf54dd81aa4279eaabf062fd13c98de6a8473
7
- data.tar.gz: 39d4c810fb556f6fb897656617d7c2cd1e2b3c7a553be506d35f208c7e13e24cd0b293f876776dca022f4b50d8f250f66e6ec31edc0edc3b03379fe572202939
6
+ metadata.gz: c76196ab9c8c40578883f4963b2f7b6cd368b63a8304380344f8820deae79569c13a262da25e06ba2cc3f0cf8cfa81f11b6a35080dd829ba978f07b22d6884d5
7
+ data.tar.gz: 2ee584741d90c28ea2b465dffcccdbed815f7a2b38b8517bcb123ccd5378bbee227a901dff9679449572f5e45ecbda36f47252a10bdb1209697a77101a52f838
data/README.md CHANGED
@@ -1,14 +1,14 @@
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)
3
+ [![Nightly Tests](https://github.com/Bandwidth/ruby-sdk/actions/workflows/test-nightly.yml/badge.svg)](https://github.com/Bandwidth/ruby-sdk/actions/workflows/test-nightly.yml)
4
4
 
5
5
 
6
6
  | **OS** | **Ruby** |
7
7
  |:---:|:---:|
8
8
  | Windows 2016 | 2.6, 2.7, 3.0 |
9
9
  | Windows 2019 | 2.6, 2.7, 3.0 |
10
- | Ubuntu 18.04 | 2.6, 2.7, 3.0 |
11
10
  | Ubuntu 20.04 | 2.6, 2.7, 3.0 |
11
+ | Ubuntu 22.04 | 2.6, 2.7, 3.0 |
12
12
 
13
13
  ## Getting Started
14
14
 
@@ -4,7 +4,6 @@
4
4
  # ( https://apimatic.io ).
5
5
 
6
6
  require 'faraday/follow_redirects'
7
- require 'faraday/gzip'
8
7
  require 'faraday/http_cache'
9
8
  require 'faraday/multipart'
10
9
  require 'faraday/retry'
@@ -19,10 +18,8 @@ module Bandwidth
19
18
  @connection = Faraday.new do |faraday|
20
19
  faraday.use Faraday::HttpCache, serializer: Marshal if cache
21
20
  faraday.use Faraday::FollowRedirects::Middleware
22
- faraday.request :gzip
23
21
  faraday.request :multipart
24
22
  faraday.request :url_encoded
25
- faraday.ssl[:ca_file] = Certifi.where
26
23
  faraday.ssl[:verify] = verify
27
24
  faraday.request :retry, max: max_retries, interval: retry_interval,
28
25
  backoff_factor: backoff_factor,
@@ -61,6 +61,10 @@ module Bandwidth
61
61
  # @return [String]
62
62
  attr_accessor :priority
63
63
 
64
+ # A string with the date/time value that the message will automatically expire by.
65
+ # @return [String]
66
+ attr_accessor :expiration
67
+
64
68
  # A mapping from model property names to API property names.
65
69
  def self.names
66
70
  @_hash = {} if @_hash.nil?
@@ -76,6 +80,7 @@ module Bandwidth
76
80
  @_hash['text'] = 'text'
77
81
  @_hash['tag'] = 'tag'
78
82
  @_hash['priority'] = 'priority'
83
+ @_hash['expiration'] = 'expiration'
79
84
  @_hash
80
85
  end
81
86
 
@@ -94,6 +99,7 @@ module Bandwidth
94
99
  text
95
100
  tag
96
101
  priority
102
+ expiration
97
103
  ]
98
104
  end
99
105
 
@@ -113,7 +119,8 @@ module Bandwidth
113
119
  media = nil,
114
120
  text = nil,
115
121
  tag = nil,
116
- priority = nil)
122
+ priority = nil,
123
+ expiration = nil)
117
124
  @id = id unless id == SKIP
118
125
  @owner = owner unless owner == SKIP
119
126
  @application_id = application_id unless application_id == SKIP
@@ -126,6 +133,7 @@ module Bandwidth
126
133
  @text = text unless text == SKIP
127
134
  @tag = tag unless tag == SKIP
128
135
  @priority = priority unless priority == SKIP
136
+ @expiration = expiration unless expiration == SKIP
129
137
  end
130
138
 
131
139
  # Creates an instance of the object from a hash.
@@ -145,6 +153,7 @@ module Bandwidth
145
153
  text = hash.key?('text') ? hash['text'] : SKIP
146
154
  tag = hash.key?('tag') ? hash['tag'] : SKIP
147
155
  priority = hash.key?('priority') ? hash['priority'] : SKIP
156
+ expiration = hash.key?('expiration') ? hash['expiration'] : SKIP
148
157
 
149
158
  # Create object from extracted values.
150
159
  BandwidthMessage.new(id,
@@ -158,7 +167,8 @@ module Bandwidth
158
167
  media,
159
168
  text,
160
169
  tag,
161
- priority)
170
+ priority,
171
+ expiration)
162
172
  end
163
173
  end
164
174
  end
@@ -41,6 +41,11 @@ module Bandwidth
41
41
  # @return [PriorityEnum]
42
42
  attr_accessor :priority
43
43
 
44
+ # A string with the date/time value that the message will automatically expire by.
45
+ # This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z or 2021-03-13T20:59:26-05:00.
46
+ # @return [String]
47
+ attr_accessor :expiration
48
+
44
49
  # A mapping from model property names to API property names.
45
50
  def self.names
46
51
  @_hash = {} if @_hash.nil?
@@ -51,6 +56,7 @@ module Bandwidth
51
56
  @_hash['media'] = 'media'
52
57
  @_hash['tag'] = 'tag'
53
58
  @_hash['priority'] = 'priority'
59
+ @_hash['expiration'] = 'expiration'
54
60
  @_hash
55
61
  end
56
62
 
@@ -61,6 +67,7 @@ module Bandwidth
61
67
  media
62
68
  tag
63
69
  priority
70
+ expiration
64
71
  ]
65
72
  end
66
73
 
@@ -75,7 +82,8 @@ module Bandwidth
75
82
  text = nil,
76
83
  media = nil,
77
84
  tag = nil,
78
- priority = nil)
85
+ priority = nil,
86
+ expiration = nil)
79
87
  @application_id = application_id unless application_id == SKIP
80
88
  @to = to unless to == SKIP
81
89
  @from = from unless from == SKIP
@@ -83,6 +91,7 @@ module Bandwidth
83
91
  @media = media unless media == SKIP
84
92
  @tag = tag unless tag == SKIP
85
93
  @priority = priority unless priority == SKIP
94
+ @expiration = expiration unless expiration == SKIP
86
95
  end
87
96
 
88
97
  # Creates an instance of the object from a hash.
@@ -97,6 +106,7 @@ module Bandwidth
97
106
  media = hash.key?('media') ? hash['media'] : SKIP
98
107
  tag = hash.key?('tag') ? hash['tag'] : SKIP
99
108
  priority = hash.key?('priority') ? hash['priority'] : SKIP
109
+ expiration = hash.key?('expiration') ? hash['expiration'] : SKIP
100
110
 
101
111
  # Create object from extracted values.
102
112
  MessageRequest.new(application_id,
@@ -105,7 +115,8 @@ module Bandwidth
105
115
  text,
106
116
  media,
107
117
  tag,
108
- priority)
118
+ priority,
119
+ expiration)
109
120
  end
110
121
  end
111
122
  end
@@ -19,6 +19,7 @@ module Bandwidth
19
19
  'maxDuration' => max_duration,
20
20
  'fileFormat' => file_format,
21
21
  'transcribe' => transcribe,
22
+ 'detectLanguage' => detect_language,
22
23
  'transcriptionAvailableUrl' => transcription_available_url,
23
24
  'transcriptionAvailableMethod' => transcription_available_method,
24
25
  'silenceTimeout' => silence_timeout,
@@ -16,6 +16,7 @@ module Bandwidth
16
16
  'fileFormat' => file_format,
17
17
  'multiChannel' => multi_channel,
18
18
  'transcribe' => transcribe,
19
+ 'detectLanguage' => detect_language,
19
20
  'transcriptionAvailableUrl' => transcription_available_url,
20
21
  'transcriptionAvailableMethod' => transcription_available_method
21
22
  }))
@@ -33,6 +33,10 @@ module Bandwidth
33
33
  # @return [Float]
34
34
  attr_accessor :callback_timeout
35
35
 
36
+ # TODO: Write general description for this method
37
+ # @return [Boolean]
38
+ attr_accessor :detect_language
39
+
36
40
  # A mapping from model property names to API property names.
37
41
  def self.names
38
42
  @_hash = {} if @_hash.nil?
@@ -42,6 +46,7 @@ module Bandwidth
42
46
  @_hash['password'] = 'password'
43
47
  @_hash['tag'] = 'tag'
44
48
  @_hash['callback_timeout'] = 'callbackTimeout'
49
+ @_hash['detect_language'] = 'detectLanguage'
45
50
  @_hash
46
51
  end
47
52
 
@@ -54,6 +59,7 @@ module Bandwidth
54
59
  password
55
60
  tag
56
61
  callback_timeout
62
+ detect_language
57
63
  ]
58
64
  end
59
65
 
@@ -65,6 +71,7 @@ module Bandwidth
65
71
  password
66
72
  tag
67
73
  callback_timeout
74
+ detect_language
68
75
  ]
69
76
  end
70
77
 
@@ -73,6 +80,7 @@ module Bandwidth
73
80
  username = nil,
74
81
  password = nil,
75
82
  tag = nil,
83
+ detect_language = nil,
76
84
  callback_timeout = nil)
77
85
  @callback_url = callback_url unless callback_url == SKIP
78
86
  @callback_method = callback_method unless callback_method == SKIP
@@ -80,6 +88,7 @@ module Bandwidth
80
88
  @password = password unless password == SKIP
81
89
  @tag = tag unless tag == SKIP
82
90
  @callback_timeout = callback_timeout unless callback_timeout == SKIP
91
+ @detect_language = detect_language unless detect_language == SKIP
83
92
  end
84
93
 
85
94
  # Creates an instance of the object from a hash.
@@ -95,6 +104,8 @@ module Bandwidth
95
104
  tag = hash.key?('tag') ? hash['tag'] : SKIP
96
105
  callback_timeout =
97
106
  hash.key?('callbackTimeout') ? hash['callbackTimeout'] : SKIP
107
+ detect_language =
108
+ hash.key?('detectLanguage') ? hash['detectLanguage'] : SKIP
98
109
 
99
110
  # Create object from extracted values.
100
111
  TranscribeRecordingRequest.new(callback_url,
@@ -102,6 +113,7 @@ module Bandwidth
102
113
  username,
103
114
  password,
104
115
  tag,
116
+ detect_language,
105
117
  callback_timeout)
106
118
  end
107
119
  end
data/lib/bandwidth.rb CHANGED
@@ -6,7 +6,6 @@
6
6
  require 'date'
7
7
  require 'json'
8
8
  require 'faraday'
9
- require 'certifi'
10
9
  require 'logging'
11
10
 
12
11
  require_relative 'bandwidth/api_helper'
@@ -57,7 +57,14 @@ class IntegrationTest < Test::Unit::TestCase
57
57
  body.to = [USER_NUMBER]
58
58
  body.from = BW_NUMBER
59
59
  body.text = "Ruby Integration"
60
+ body.priority = "high"
61
+ body.expiration = "2091-02-01T11:29:18-05:00"
60
62
  response = @bandwidth_client.messaging_client.client.create_message(BW_ACCOUNT_ID, body)
63
+ assert(response.data.to == [USER_NUMBER])
64
+ assert(response.data.from == BW_NUMBER)
65
+ assert(response.data.text == "Ruby Integration")
66
+ assert(response.data.priority == "high")
67
+ assert(response.data.expiration == "2091-02-01T11:29:18-05:00")
61
68
  assert(response.data.id.length > 0, "id value not set") #validate that _some_ id was returned
62
69
  end
63
70
 
@@ -115,7 +122,7 @@ class IntegrationTest < Test::Unit::TestCase
115
122
  assert(response.data.enqueued_time.is_a?(DateTime), "enqueued time is not a DateTime object")
116
123
 
117
124
  #Get phone call information
118
- sleep 1
125
+ sleep(15)
119
126
  response = @bandwidth_client.voice_client.client.get_call(BW_ACCOUNT_ID, response.data.call_id)
120
127
  assert(response.data.state.length > 0, "state value not set")
121
128
  assert_not_nil(response.data.enqueued_time, "enqueued time is nil")
@@ -144,6 +151,7 @@ class IntegrationTest < Test::Unit::TestCase
144
151
  assert(response.data.call_id.length > 0, "call_id value not set")
145
152
 
146
153
  #Get phone call information
154
+ sleep(15)
147
155
  response = @bandwidth_client.voice_client.client.get_call(BW_ACCOUNT_ID, response.data.call_id)
148
156
  assert(response.data.state.length > 0, "state value not set")
149
157
  end
@@ -347,6 +355,7 @@ class IntegrationTest < Test::Unit::TestCase
347
355
  :recording_available_url => "https://available.com",
348
356
  :recording_available_method => "GET",
349
357
  :transcribe => false,
358
+ :detect_language=> true,
350
359
  :transcription_available_url => "https://transcribe.com",
351
360
  :transcription_available_method => "POST",
352
361
  :username => "user",
@@ -364,7 +373,7 @@ class IntegrationTest < Test::Unit::TestCase
364
373
 
365
374
  response = Bandwidth::Voice::Response.new()
366
375
  response.push(record)
367
- expected = '<?xml version="1.0" encoding="UTF-8"?><Response><Record tag="tag" username="user" password="pass" recordCompleteUrl="https://complete.com" recordCompleteMethod="POST" recordingAvailableUrl="https://available.com" recordingAvailableMethod="GET" terminatingDigits="#" maxDuration="3" fileFormat="wav" transcribe="false" transcriptionAvailableUrl="https://transcribe.com" transcriptionAvailableMethod="POST" silenceTimeout="5" recordCompleteFallbackUrl="https://test.com" recordCompleteFallbackMethod="GET" fallbackUsername="fuser" fallbackPassword="fpass"/></Response>'
376
+ expected = '<?xml version="1.0" encoding="UTF-8"?><Response><Record tag="tag" username="user" password="pass" recordCompleteUrl="https://complete.com" recordCompleteMethod="POST" recordingAvailableUrl="https://available.com" recordingAvailableMethod="GET" terminatingDigits="#" maxDuration="3" fileFormat="wav" transcribe="false" detectLanguage="true" transcriptionAvailableUrl="https://transcribe.com" transcriptionAvailableMethod="POST" silenceTimeout="5" recordCompleteFallbackUrl="https://test.com" recordCompleteFallbackMethod="GET" fallbackUsername="fuser" fallbackPassword="fpass"/></Response>'
368
377
  actual = response.to_bxml()
369
378
  assert_equal(expected, actual)
370
379
  end
data/test/test_helper.rb CHANGED
@@ -87,8 +87,8 @@ class TestHelper
87
87
  unless @cache.keys.include? url
88
88
  @cache[url] = Tempfile.new('APIMatic')
89
89
  @cache[url].binmode
90
- @cache[url].write(open(url, {ssl_ca_cert: Certifi.where}).read)
90
+ @cache[url].write(open(url).read)
91
91
  end
92
92
  return @cache[url].path
93
93
  end
94
- end
94
+ 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: 10.2.0
4
+ version: 10.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bandwidth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-27 00:00:00.000000000 Z
11
+ date: 2023-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -58,20 +58,6 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0.3'
61
- - !ruby/object:Gem::Dependency
62
- name: faraday-gzip
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: 0.1.0
68
- type: :runtime
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: 0.1.0
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: faraday-multipart
77
63
  requirement: !ruby/object:Gem::Requirement
@@ -100,26 +86,6 @@ dependencies:
100
86
  - - "~>"
101
87
  - !ruby/object:Gem::Version
102
88
  version: '1.0'
103
- - !ruby/object:Gem::Dependency
104
- name: certifi
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '2018.1'
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: 2018.01.18
113
- type: :runtime
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: '2018.1'
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: 2018.01.18
123
89
  - !ruby/object:Gem::Dependency
124
90
  name: faraday-http-cache
125
91
  requirement: !ruby/object:Gem::Requirement
@@ -363,7 +329,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
363
329
  - !ruby/object:Gem::Version
364
330
  version: '0'
365
331
  requirements: []
366
- rubygems_version: 3.3.7
332
+ rubygems_version: 3.4.10
367
333
  signing_key:
368
334
  specification_version: 4
369
335
  summary: Bandwidth