bandwidth-sdk 6.2.0 → 9.0.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 +4 -4
- data/lib/bandwidth/api_helper.rb +19 -29
- data/lib/bandwidth/client.rb +8 -8
- data/lib/bandwidth/configuration.rb +20 -32
- data/lib/bandwidth/http/auth/{two_factor_auth_basic_auth.rb → multi_factor_auth_basic_auth.rb} +3 -3
- data/lib/bandwidth/http/faraday_client.rb +1 -1
- data/lib/bandwidth/messaging_lib/messaging/client.rb +14 -5
- data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +78 -71
- data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +3 -5
- data/lib/bandwidth/messaging_lib/messaging/exceptions/messaging_exception.rb +5 -2
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +31 -11
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +54 -25
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +102 -24
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +23 -4
- data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +20 -4
- data/lib/bandwidth/messaging_lib/messaging/models/media.rb +27 -80
- data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +32 -14
- data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +28 -8
- data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +20 -4
- data/lib/bandwidth/models/base_model.rb +30 -8
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/client.rb +15 -6
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/base_controller.rb +3 -5
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/mfa_controller.rb +28 -23
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/error_with_request_exception.rb +5 -2
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/forbidden_request_exception.rb +4 -1
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/unauthorized_request_exception.rb +4 -1
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_code_request_schema.rb +27 -12
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_messaging_response.rb +17 -2
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_code_response.rb +17 -2
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_request_schema.rb +29 -10
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_voice_response.rb +17 -2
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +23 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +212 -210
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +3 -5
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +4 -1
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +17 -2
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +20 -4
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +28 -7
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +43 -18
- data/lib/bandwidth/utilities/date_time_helper.rb +156 -0
- data/lib/bandwidth/utilities/file_wrapper.rb +1 -2
- data/lib/bandwidth/voice_lib/voice/client.rb +14 -5
- data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +418 -379
- data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +3 -5
- data/lib/bandwidth/voice_lib/voice/exceptions/{api_error_response_exception.rb → api_error_exception.rb} +8 -5
- data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +343 -0
- data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +250 -0
- data/lib/bandwidth/voice_lib/voice/models/call_state.rb +284 -0
- data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +2 -20
- data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +211 -0
- data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +2 -20
- data/lib/bandwidth/voice_lib/voice/models/{conference_member_detail.rb → conference_member_state.rb} +43 -20
- data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +173 -0
- data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +153 -0
- data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +301 -0
- data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +256 -0
- data/lib/bandwidth/voice_lib/voice/models/diversion.rb +80 -0
- data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +17 -0
- data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +218 -0
- data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +20 -0
- data/lib/bandwidth/voice_lib/voice/models/{modify_call_recording_state.rb → modify_call_recording_request.rb} +19 -6
- data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +156 -0
- data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +144 -0
- data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +7 -4
- data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +4 -7
- data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +108 -0
- data/lib/bandwidth/voice_lib/voice/models/transcript.rb +20 -4
- data/lib/bandwidth/voice_lib/voice/models/transcription.rb +35 -17
- data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +89 -0
- data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +18 -1
- data/lib/bandwidth/voice_lib/voice.rb +20 -18
- data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +7 -2
- data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +4 -4
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +75 -64
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +3 -5
- data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +5 -2
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +20 -5
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +37 -14
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +15 -2
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +20 -4
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +20 -3
- data/lib/bandwidth.rb +20 -18
- data/test/integration/test_integration.rb +92 -57
- metadata +35 -31
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth.rb +0 -22
- data/lib/bandwidth/voice_lib/voice/models/api_call_response.rb +0 -207
- data/lib/bandwidth/voice_lib/voice/models/api_call_state_response.rb +0 -164
- data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +0 -248
- data/lib/bandwidth/voice_lib/voice/models/api_modify_call_request.rb +0 -116
- data/lib/bandwidth/voice_lib/voice/models/api_modify_conference_request.rb +0 -107
- data/lib/bandwidth/voice_lib/voice/models/api_transcribe_recording_request.rb +0 -80
- data/lib/bandwidth/voice_lib/voice/models/conference_detail.rb +0 -108
- data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata_response.rb +0 -126
- data/lib/bandwidth/voice_lib/voice/models/disconnect_cause_enum.rb +0 -47
- data/lib/bandwidth/voice_lib/voice/models/recording_metadata_response.rb +0 -190
- data/lib/bandwidth/voice_lib/voice/models/state2_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +0 -29
- data/lib/bandwidth/voice_lib/voice/models/status3_enum.rb +0 -32
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
module Bandwidth
|
|
7
7
|
# BandwidthMessageItem Model.
|
|
8
8
|
class BandwidthMessageItem < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
9
12
|
# The message id
|
|
10
13
|
# @return [String]
|
|
11
14
|
attr_accessor :message_id
|
|
@@ -50,6 +53,26 @@ module Bandwidth
|
|
|
50
53
|
# @return [String]
|
|
51
54
|
attr_accessor :carrier_name
|
|
52
55
|
|
|
56
|
+
# The size of the message including message content and headers
|
|
57
|
+
# @return [Integer]
|
|
58
|
+
attr_accessor :message_size
|
|
59
|
+
|
|
60
|
+
# The length of the message content
|
|
61
|
+
# @return [Integer]
|
|
62
|
+
attr_accessor :message_length
|
|
63
|
+
|
|
64
|
+
# The number of attachments the message has
|
|
65
|
+
# @return [Integer]
|
|
66
|
+
attr_accessor :attachment_count
|
|
67
|
+
|
|
68
|
+
# The number of recipients the message has
|
|
69
|
+
# @return [Integer]
|
|
70
|
+
attr_accessor :recipient_count
|
|
71
|
+
|
|
72
|
+
# The campaign class of the message, if it has one
|
|
73
|
+
# @return [String]
|
|
74
|
+
attr_accessor :campaign_class
|
|
75
|
+
|
|
53
76
|
# A mapping from model property names to API property names.
|
|
54
77
|
def self.names
|
|
55
78
|
@_hash = {} if @_hash.nil?
|
|
@@ -64,9 +87,41 @@ module Bandwidth
|
|
|
64
87
|
@_hash['error_code'] = 'errorCode'
|
|
65
88
|
@_hash['receive_time'] = 'receiveTime'
|
|
66
89
|
@_hash['carrier_name'] = 'carrierName'
|
|
90
|
+
@_hash['message_size'] = 'messageSize'
|
|
91
|
+
@_hash['message_length'] = 'messageLength'
|
|
92
|
+
@_hash['attachment_count'] = 'attachmentCount'
|
|
93
|
+
@_hash['recipient_count'] = 'recipientCount'
|
|
94
|
+
@_hash['campaign_class'] = 'campaignClass'
|
|
67
95
|
@_hash
|
|
68
96
|
end
|
|
69
97
|
|
|
98
|
+
# An array for optional fields
|
|
99
|
+
def optionals
|
|
100
|
+
%w[
|
|
101
|
+
message_id
|
|
102
|
+
account_id
|
|
103
|
+
source_tn
|
|
104
|
+
destination_tn
|
|
105
|
+
message_status
|
|
106
|
+
message_direction
|
|
107
|
+
message_type
|
|
108
|
+
segment_count
|
|
109
|
+
error_code
|
|
110
|
+
receive_time
|
|
111
|
+
carrier_name
|
|
112
|
+
message_size
|
|
113
|
+
message_length
|
|
114
|
+
attachment_count
|
|
115
|
+
recipient_count
|
|
116
|
+
campaign_class
|
|
117
|
+
]
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# An array for nullable fields
|
|
121
|
+
def nullables
|
|
122
|
+
[]
|
|
123
|
+
end
|
|
124
|
+
|
|
70
125
|
def initialize(message_id = nil,
|
|
71
126
|
account_id = nil,
|
|
72
127
|
source_tn = nil,
|
|
@@ -77,18 +132,28 @@ module Bandwidth
|
|
|
77
132
|
segment_count = nil,
|
|
78
133
|
error_code = nil,
|
|
79
134
|
receive_time = nil,
|
|
80
|
-
carrier_name = nil
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
@
|
|
87
|
-
@
|
|
88
|
-
@
|
|
89
|
-
@
|
|
90
|
-
@
|
|
91
|
-
@
|
|
135
|
+
carrier_name = nil,
|
|
136
|
+
message_size = nil,
|
|
137
|
+
message_length = nil,
|
|
138
|
+
attachment_count = nil,
|
|
139
|
+
recipient_count = nil,
|
|
140
|
+
campaign_class = nil)
|
|
141
|
+
@message_id = message_id unless message_id == SKIP
|
|
142
|
+
@account_id = account_id unless account_id == SKIP
|
|
143
|
+
@source_tn = source_tn unless source_tn == SKIP
|
|
144
|
+
@destination_tn = destination_tn unless destination_tn == SKIP
|
|
145
|
+
@message_status = message_status unless message_status == SKIP
|
|
146
|
+
@message_direction = message_direction unless message_direction == SKIP
|
|
147
|
+
@message_type = message_type unless message_type == SKIP
|
|
148
|
+
@segment_count = segment_count unless segment_count == SKIP
|
|
149
|
+
@error_code = error_code unless error_code == SKIP
|
|
150
|
+
@receive_time = receive_time unless receive_time == SKIP
|
|
151
|
+
@carrier_name = carrier_name unless carrier_name == SKIP
|
|
152
|
+
@message_size = message_size unless message_size == SKIP
|
|
153
|
+
@message_length = message_length unless message_length == SKIP
|
|
154
|
+
@attachment_count = attachment_count unless attachment_count == SKIP
|
|
155
|
+
@recipient_count = recipient_count unless recipient_count == SKIP
|
|
156
|
+
@campaign_class = campaign_class unless campaign_class == SKIP
|
|
92
157
|
end
|
|
93
158
|
|
|
94
159
|
# Creates an instance of the object from a hash.
|
|
@@ -96,17 +161,25 @@ module Bandwidth
|
|
|
96
161
|
return nil unless hash
|
|
97
162
|
|
|
98
163
|
# Extract variables from the hash.
|
|
99
|
-
message_id = hash['messageId']
|
|
100
|
-
account_id = hash['accountId']
|
|
101
|
-
source_tn = hash['sourceTn']
|
|
102
|
-
destination_tn = hash['destinationTn']
|
|
103
|
-
message_status = hash['messageStatus']
|
|
104
|
-
message_direction =
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
164
|
+
message_id = hash.key?('messageId') ? hash['messageId'] : SKIP
|
|
165
|
+
account_id = hash.key?('accountId') ? hash['accountId'] : SKIP
|
|
166
|
+
source_tn = hash.key?('sourceTn') ? hash['sourceTn'] : SKIP
|
|
167
|
+
destination_tn = hash.key?('destinationTn') ? hash['destinationTn'] : SKIP
|
|
168
|
+
message_status = hash.key?('messageStatus') ? hash['messageStatus'] : SKIP
|
|
169
|
+
message_direction =
|
|
170
|
+
hash.key?('messageDirection') ? hash['messageDirection'] : SKIP
|
|
171
|
+
message_type = hash.key?('messageType') ? hash['messageType'] : SKIP
|
|
172
|
+
segment_count = hash.key?('segmentCount') ? hash['segmentCount'] : SKIP
|
|
173
|
+
error_code = hash.key?('errorCode') ? hash['errorCode'] : SKIP
|
|
174
|
+
receive_time = hash.key?('receiveTime') ? hash['receiveTime'] : SKIP
|
|
175
|
+
carrier_name = hash.key?('carrierName') ? hash['carrierName'] : SKIP
|
|
176
|
+
message_size = hash.key?('messageSize') ? hash['messageSize'] : SKIP
|
|
177
|
+
message_length = hash.key?('messageLength') ? hash['messageLength'] : SKIP
|
|
178
|
+
attachment_count =
|
|
179
|
+
hash.key?('attachmentCount') ? hash['attachmentCount'] : SKIP
|
|
180
|
+
recipient_count =
|
|
181
|
+
hash.key?('recipientCount') ? hash['recipientCount'] : SKIP
|
|
182
|
+
campaign_class = hash.key?('campaignClass') ? hash['campaignClass'] : SKIP
|
|
110
183
|
|
|
111
184
|
# Create object from extracted values.
|
|
112
185
|
BandwidthMessageItem.new(message_id,
|
|
@@ -119,7 +192,12 @@ module Bandwidth
|
|
|
119
192
|
segment_count,
|
|
120
193
|
error_code,
|
|
121
194
|
receive_time,
|
|
122
|
-
carrier_name
|
|
195
|
+
carrier_name,
|
|
196
|
+
message_size,
|
|
197
|
+
message_length,
|
|
198
|
+
attachment_count,
|
|
199
|
+
recipient_count,
|
|
200
|
+
campaign_class)
|
|
123
201
|
end
|
|
124
202
|
end
|
|
125
203
|
end
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
module Bandwidth
|
|
7
7
|
# BandwidthMessagesList Model.
|
|
8
8
|
class BandwidthMessagesList < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
9
12
|
# Total number of messages matched by the search
|
|
10
13
|
# @return [Integer]
|
|
11
14
|
attr_accessor :total_count
|
|
@@ -27,12 +30,26 @@ module Bandwidth
|
|
|
27
30
|
@_hash
|
|
28
31
|
end
|
|
29
32
|
|
|
33
|
+
# An array for optional fields
|
|
34
|
+
def optionals
|
|
35
|
+
%w[
|
|
36
|
+
total_count
|
|
37
|
+
page_info
|
|
38
|
+
messages
|
|
39
|
+
]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# An array for nullable fields
|
|
43
|
+
def nullables
|
|
44
|
+
[]
|
|
45
|
+
end
|
|
46
|
+
|
|
30
47
|
def initialize(total_count = nil,
|
|
31
48
|
page_info = nil,
|
|
32
49
|
messages = nil)
|
|
33
|
-
@total_count = total_count
|
|
34
|
-
@page_info = page_info
|
|
35
|
-
@messages = messages
|
|
50
|
+
@total_count = total_count unless total_count == SKIP
|
|
51
|
+
@page_info = page_info unless page_info == SKIP
|
|
52
|
+
@messages = messages unless messages == SKIP
|
|
36
53
|
end
|
|
37
54
|
|
|
38
55
|
# Creates an instance of the object from a hash.
|
|
@@ -40,7 +57,7 @@ module Bandwidth
|
|
|
40
57
|
return nil unless hash
|
|
41
58
|
|
|
42
59
|
# Extract variables from the hash.
|
|
43
|
-
total_count = hash['totalCount']
|
|
60
|
+
total_count = hash.key?('totalCount') ? hash['totalCount'] : SKIP
|
|
44
61
|
page_info = PageInfo.from_hash(hash['pageInfo']) if hash['pageInfo']
|
|
45
62
|
# Parameter is an array, so we need to iterate through it
|
|
46
63
|
messages = nil
|
|
@@ -51,6 +68,8 @@ module Bandwidth
|
|
|
51
68
|
end
|
|
52
69
|
end
|
|
53
70
|
|
|
71
|
+
messages = SKIP unless hash.key?('messages')
|
|
72
|
+
|
|
54
73
|
# Create object from extracted values.
|
|
55
74
|
BandwidthMessagesList.new(total_count,
|
|
56
75
|
page_info,
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
module Bandwidth
|
|
7
7
|
# DeferredResult Model.
|
|
8
8
|
class DeferredResult < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
9
12
|
# TODO: Write general description for this method
|
|
10
13
|
# @return [Object]
|
|
11
14
|
attr_accessor :result
|
|
@@ -22,10 +25,23 @@ module Bandwidth
|
|
|
22
25
|
@_hash
|
|
23
26
|
end
|
|
24
27
|
|
|
28
|
+
# An array for optional fields
|
|
29
|
+
def optionals
|
|
30
|
+
%w[
|
|
31
|
+
result
|
|
32
|
+
set_or_expired
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# An array for nullable fields
|
|
37
|
+
def nullables
|
|
38
|
+
[]
|
|
39
|
+
end
|
|
40
|
+
|
|
25
41
|
def initialize(result = nil,
|
|
26
42
|
set_or_expired = nil)
|
|
27
|
-
@result = result
|
|
28
|
-
@set_or_expired = set_or_expired
|
|
43
|
+
@result = result unless result == SKIP
|
|
44
|
+
@set_or_expired = set_or_expired unless set_or_expired == SKIP
|
|
29
45
|
end
|
|
30
46
|
|
|
31
47
|
# Creates an instance of the object from a hash.
|
|
@@ -33,8 +49,8 @@ module Bandwidth
|
|
|
33
49
|
return nil unless hash
|
|
34
50
|
|
|
35
51
|
# Extract variables from the hash.
|
|
36
|
-
result = hash['result']
|
|
37
|
-
set_or_expired = hash['setOrExpired']
|
|
52
|
+
result = hash.key?('result') ? hash['result'] : SKIP
|
|
53
|
+
set_or_expired = hash.key?('setOrExpired') ? hash['setOrExpired'] : SKIP
|
|
38
54
|
|
|
39
55
|
# Create object from extracted values.
|
|
40
56
|
DeferredResult.new(result,
|
|
@@ -6,82 +6,50 @@
|
|
|
6
6
|
module Bandwidth
|
|
7
7
|
# Media Model.
|
|
8
8
|
class Media < BaseModel
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
attr_accessor :input_stream
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
12
11
|
|
|
13
12
|
# TODO: Write general description for this method
|
|
14
13
|
# @return [String]
|
|
15
14
|
attr_accessor :content
|
|
16
15
|
|
|
17
16
|
# TODO: Write general description for this method
|
|
18
|
-
# @return [
|
|
19
|
-
attr_accessor :url
|
|
20
|
-
|
|
21
|
-
# TODO: Write general description for this method
|
|
22
|
-
# @return [String]
|
|
17
|
+
# @return [Integer]
|
|
23
18
|
attr_accessor :content_length
|
|
24
19
|
|
|
25
20
|
# TODO: Write general description for this method
|
|
26
21
|
# @return [String]
|
|
27
|
-
attr_accessor :content_type
|
|
28
|
-
|
|
29
|
-
# TODO: Write general description for this method
|
|
30
|
-
# @return [List of Tag]
|
|
31
|
-
attr_accessor :tags
|
|
32
|
-
|
|
33
|
-
# User's account ID
|
|
34
|
-
# @return [String]
|
|
35
|
-
attr_accessor :user_id
|
|
36
|
-
|
|
37
|
-
# User's account ID
|
|
38
|
-
# @return [String]
|
|
39
22
|
attr_accessor :media_name
|
|
40
23
|
|
|
41
|
-
# User's account ID
|
|
42
|
-
# @return [String]
|
|
43
|
-
attr_accessor :media_id
|
|
44
|
-
|
|
45
|
-
# User's account ID
|
|
46
|
-
# @return [String]
|
|
47
|
-
attr_accessor :cache_control
|
|
48
|
-
|
|
49
24
|
# A mapping from model property names to API property names.
|
|
50
25
|
def self.names
|
|
51
26
|
@_hash = {} if @_hash.nil?
|
|
52
|
-
@_hash['input_stream'] = 'inputStream'
|
|
53
27
|
@_hash['content'] = 'content'
|
|
54
|
-
@_hash['url'] = 'url'
|
|
55
28
|
@_hash['content_length'] = 'contentLength'
|
|
56
|
-
@_hash['content_type'] = 'contentType'
|
|
57
|
-
@_hash['tags'] = 'tags'
|
|
58
|
-
@_hash['user_id'] = 'userId'
|
|
59
29
|
@_hash['media_name'] = 'mediaName'
|
|
60
|
-
@_hash['media_id'] = 'mediaId'
|
|
61
|
-
@_hash['cache_control'] = 'cacheControl'
|
|
62
30
|
@_hash
|
|
63
31
|
end
|
|
64
32
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
33
|
+
# An array for optional fields
|
|
34
|
+
def optionals
|
|
35
|
+
%w[
|
|
36
|
+
content
|
|
37
|
+
content_length
|
|
38
|
+
media_name
|
|
39
|
+
]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# An array for nullable fields
|
|
43
|
+
def nullables
|
|
44
|
+
[]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def initialize(content = nil,
|
|
68
48
|
content_length = nil,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
media_id = nil,
|
|
74
|
-
cache_control = nil)
|
|
75
|
-
@input_stream = input_stream
|
|
76
|
-
@content = content
|
|
77
|
-
@url = url
|
|
78
|
-
@content_length = content_length
|
|
79
|
-
@content_type = content_type
|
|
80
|
-
@tags = tags
|
|
81
|
-
@user_id = user_id
|
|
82
|
-
@media_name = media_name
|
|
83
|
-
@media_id = media_id
|
|
84
|
-
@cache_control = cache_control
|
|
49
|
+
media_name = nil)
|
|
50
|
+
@content = content unless content == SKIP
|
|
51
|
+
@content_length = content_length unless content_length == SKIP
|
|
52
|
+
@media_name = media_name unless media_name == SKIP
|
|
85
53
|
end
|
|
86
54
|
|
|
87
55
|
# Creates an instance of the object from a hash.
|
|
@@ -89,35 +57,14 @@ module Bandwidth
|
|
|
89
57
|
return nil unless hash
|
|
90
58
|
|
|
91
59
|
# Extract variables from the hash.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
content_length = hash['contentLength']
|
|
96
|
-
content_type = hash['contentType']
|
|
97
|
-
# Parameter is an array, so we need to iterate through it
|
|
98
|
-
tags = nil
|
|
99
|
-
unless hash['tags'].nil?
|
|
100
|
-
tags = []
|
|
101
|
-
hash['tags'].each do |structure|
|
|
102
|
-
tags << (Tag.from_hash(structure) if structure)
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
user_id = hash['userId']
|
|
106
|
-
media_name = hash['mediaName']
|
|
107
|
-
media_id = hash['mediaId']
|
|
108
|
-
cache_control = hash['cacheControl']
|
|
60
|
+
content = hash.key?('content') ? hash['content'] : SKIP
|
|
61
|
+
content_length = hash.key?('contentLength') ? hash['contentLength'] : SKIP
|
|
62
|
+
media_name = hash.key?('mediaName') ? hash['mediaName'] : SKIP
|
|
109
63
|
|
|
110
64
|
# Create object from extracted values.
|
|
111
|
-
Media.new(
|
|
112
|
-
content,
|
|
113
|
-
url,
|
|
65
|
+
Media.new(content,
|
|
114
66
|
content_length,
|
|
115
|
-
|
|
116
|
-
tags,
|
|
117
|
-
user_id,
|
|
118
|
-
media_name,
|
|
119
|
-
media_id,
|
|
120
|
-
cache_control)
|
|
67
|
+
media_name)
|
|
121
68
|
end
|
|
122
69
|
end
|
|
123
70
|
end
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
module Bandwidth
|
|
7
7
|
# MessageRequest Model.
|
|
8
8
|
class MessageRequest < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
9
12
|
# The ID of the Application your from number is associated with in the
|
|
10
13
|
# Bandwidth Phone Number Dashboard.
|
|
11
14
|
# @return [String]
|
|
@@ -51,6 +54,21 @@ module Bandwidth
|
|
|
51
54
|
@_hash
|
|
52
55
|
end
|
|
53
56
|
|
|
57
|
+
# An array for optional fields
|
|
58
|
+
def optionals
|
|
59
|
+
%w[
|
|
60
|
+
text
|
|
61
|
+
media
|
|
62
|
+
tag
|
|
63
|
+
priority
|
|
64
|
+
]
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# An array for nullable fields
|
|
68
|
+
def nullables
|
|
69
|
+
[]
|
|
70
|
+
end
|
|
71
|
+
|
|
54
72
|
def initialize(application_id = nil,
|
|
55
73
|
to = nil,
|
|
56
74
|
from = nil,
|
|
@@ -58,13 +76,13 @@ module Bandwidth
|
|
|
58
76
|
media = nil,
|
|
59
77
|
tag = nil,
|
|
60
78
|
priority = nil)
|
|
61
|
-
@application_id = application_id
|
|
62
|
-
@to = to
|
|
63
|
-
@from = from
|
|
64
|
-
@text = text
|
|
65
|
-
@media = media
|
|
66
|
-
@tag = tag
|
|
67
|
-
@priority = priority
|
|
79
|
+
@application_id = application_id unless application_id == SKIP
|
|
80
|
+
@to = to unless to == SKIP
|
|
81
|
+
@from = from unless from == SKIP
|
|
82
|
+
@text = text unless text == SKIP
|
|
83
|
+
@media = media unless media == SKIP
|
|
84
|
+
@tag = tag unless tag == SKIP
|
|
85
|
+
@priority = priority unless priority == SKIP
|
|
68
86
|
end
|
|
69
87
|
|
|
70
88
|
# Creates an instance of the object from a hash.
|
|
@@ -72,13 +90,13 @@ module Bandwidth
|
|
|
72
90
|
return nil unless hash
|
|
73
91
|
|
|
74
92
|
# Extract variables from the hash.
|
|
75
|
-
application_id = hash['applicationId']
|
|
76
|
-
to = hash['to']
|
|
77
|
-
from = hash['from']
|
|
78
|
-
text = hash['text']
|
|
79
|
-
media = hash['media']
|
|
80
|
-
tag = hash['tag']
|
|
81
|
-
priority = hash['priority']
|
|
93
|
+
application_id = hash.key?('applicationId') ? hash['applicationId'] : SKIP
|
|
94
|
+
to = hash.key?('to') ? hash['to'] : SKIP
|
|
95
|
+
from = hash.key?('from') ? hash['from'] : SKIP
|
|
96
|
+
text = hash.key?('text') ? hash['text'] : SKIP
|
|
97
|
+
media = hash.key?('media') ? hash['media'] : SKIP
|
|
98
|
+
tag = hash.key?('tag') ? hash['tag'] : SKIP
|
|
99
|
+
priority = hash.key?('priority') ? hash['priority'] : SKIP
|
|
82
100
|
|
|
83
101
|
# Create object from extracted values.
|
|
84
102
|
MessageRequest.new(application_id,
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
module Bandwidth
|
|
7
7
|
# PageInfo Model.
|
|
8
8
|
class PageInfo < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
9
12
|
# The link to the previous page for pagination
|
|
10
13
|
# @return [String]
|
|
11
14
|
attr_accessor :prev_page
|
|
@@ -32,14 +35,29 @@ module Bandwidth
|
|
|
32
35
|
@_hash
|
|
33
36
|
end
|
|
34
37
|
|
|
38
|
+
# An array for optional fields
|
|
39
|
+
def optionals
|
|
40
|
+
%w[
|
|
41
|
+
prev_page
|
|
42
|
+
next_page
|
|
43
|
+
prev_page_token
|
|
44
|
+
next_page_token
|
|
45
|
+
]
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# An array for nullable fields
|
|
49
|
+
def nullables
|
|
50
|
+
[]
|
|
51
|
+
end
|
|
52
|
+
|
|
35
53
|
def initialize(prev_page = nil,
|
|
36
54
|
next_page = nil,
|
|
37
55
|
prev_page_token = nil,
|
|
38
56
|
next_page_token = nil)
|
|
39
|
-
@prev_page = prev_page
|
|
40
|
-
@next_page = next_page
|
|
41
|
-
@prev_page_token = prev_page_token
|
|
42
|
-
@next_page_token = next_page_token
|
|
57
|
+
@prev_page = prev_page unless prev_page == SKIP
|
|
58
|
+
@next_page = next_page unless next_page == SKIP
|
|
59
|
+
@prev_page_token = prev_page_token unless prev_page_token == SKIP
|
|
60
|
+
@next_page_token = next_page_token unless next_page_token == SKIP
|
|
43
61
|
end
|
|
44
62
|
|
|
45
63
|
# Creates an instance of the object from a hash.
|
|
@@ -47,10 +65,12 @@ module Bandwidth
|
|
|
47
65
|
return nil unless hash
|
|
48
66
|
|
|
49
67
|
# Extract variables from the hash.
|
|
50
|
-
prev_page = hash['prevPage']
|
|
51
|
-
next_page = hash['nextPage']
|
|
52
|
-
prev_page_token =
|
|
53
|
-
|
|
68
|
+
prev_page = hash.key?('prevPage') ? hash['prevPage'] : SKIP
|
|
69
|
+
next_page = hash.key?('nextPage') ? hash['nextPage'] : SKIP
|
|
70
|
+
prev_page_token =
|
|
71
|
+
hash.key?('prevPageToken') ? hash['prevPageToken'] : SKIP
|
|
72
|
+
next_page_token =
|
|
73
|
+
hash.key?('nextPageToken') ? hash['nextPageToken'] : SKIP
|
|
54
74
|
|
|
55
75
|
# Create object from extracted values.
|
|
56
76
|
PageInfo.new(prev_page,
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
module Bandwidth
|
|
7
7
|
# Tag Model.
|
|
8
8
|
class Tag < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
9
12
|
# TODO: Write general description for this method
|
|
10
13
|
# @return [String]
|
|
11
14
|
attr_accessor :key
|
|
@@ -22,10 +25,23 @@ module Bandwidth
|
|
|
22
25
|
@_hash
|
|
23
26
|
end
|
|
24
27
|
|
|
28
|
+
# An array for optional fields
|
|
29
|
+
def optionals
|
|
30
|
+
%w[
|
|
31
|
+
key
|
|
32
|
+
value
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# An array for nullable fields
|
|
37
|
+
def nullables
|
|
38
|
+
[]
|
|
39
|
+
end
|
|
40
|
+
|
|
25
41
|
def initialize(key = nil,
|
|
26
42
|
value = nil)
|
|
27
|
-
@key = key
|
|
28
|
-
@value = value
|
|
43
|
+
@key = key unless key == SKIP
|
|
44
|
+
@value = value unless value == SKIP
|
|
29
45
|
end
|
|
30
46
|
|
|
31
47
|
# Creates an instance of the object from a hash.
|
|
@@ -33,8 +49,8 @@ module Bandwidth
|
|
|
33
49
|
return nil unless hash
|
|
34
50
|
|
|
35
51
|
# Extract variables from the hash.
|
|
36
|
-
key = hash['key']
|
|
37
|
-
value = hash['value']
|
|
52
|
+
key = hash.key?('key') ? hash['key'] : SKIP
|
|
53
|
+
value = hash.key?('value') ? hash['value'] : SKIP
|
|
38
54
|
|
|
39
55
|
# Create object from extracted values.
|
|
40
56
|
Tag.new(key,
|
|
@@ -13,15 +13,37 @@ module Bandwidth
|
|
|
13
13
|
value = instance_variable_get(name)
|
|
14
14
|
name = name[1..-1]
|
|
15
15
|
key = self.class.names.key?(name) ? self.class.names[name] : name
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
|
|
17
|
+
optional_fields = optionals if respond_to? 'optionals'
|
|
18
|
+
nullable_fields = nullables if respond_to? 'nullables'
|
|
19
|
+
if value.nil?
|
|
20
|
+
next unless nullable_fields.include?(name)
|
|
21
|
+
|
|
22
|
+
if !optional_fields.include?(name) && !nullable_fields.include?(name)
|
|
23
|
+
raise ArgumentError,
|
|
24
|
+
"`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value."
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
hash[key] = nil
|
|
29
|
+
unless value.nil?
|
|
30
|
+
if respond_to?("to_#{name}")
|
|
31
|
+
if (value.instance_of? Array) || (value.instance_of? Hash)
|
|
32
|
+
params = [hash, key]
|
|
33
|
+
hash[key] = send("to_#{name}", *params)
|
|
34
|
+
else
|
|
35
|
+
hash[key] = send("to_#{name}")
|
|
36
|
+
end
|
|
37
|
+
elsif value.instance_of? Array
|
|
38
|
+
hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
|
|
39
|
+
elsif value.instance_of? Hash
|
|
40
|
+
hash[key] = {}
|
|
41
|
+
value.each do |k, v|
|
|
42
|
+
hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
|
|
43
|
+
end
|
|
44
|
+
else
|
|
45
|
+
hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
|
|
22
46
|
end
|
|
23
|
-
else
|
|
24
|
-
hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
|
|
25
47
|
end
|
|
26
48
|
end
|
|
27
49
|
hash
|