bandwidth-sdk 3.13.2 → 6.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +90 -13
- data/lib/bandwidth.rb +2 -0
- data/lib/bandwidth/api_helper.rb +5 -5
- data/lib/bandwidth/client.rb +15 -1
- data/lib/bandwidth/configuration.rb +40 -4
- data/lib/bandwidth/http/api_response.rb +2 -0
- data/lib/bandwidth/http/auth/phone_number_lookup_basic_auth.rb +22 -0
- data/lib/bandwidth/http/faraday_client.rb +14 -4
- data/lib/bandwidth/messaging_lib/messaging.rb +4 -0
- data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +135 -20
- data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +1 -1
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +23 -13
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +125 -0
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +60 -0
- data/lib/bandwidth/messaging_lib/messaging/models/media.rb +4 -4
- data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +21 -8
- data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +62 -0
- data/lib/bandwidth/messaging_lib/messaging/models/priority_enum.rb +19 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup.rb +20 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/client.rb +60 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +1551 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +49 -0
- data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth/exceptions/invalid_request_exception.rb → phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb} +5 -5
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +35 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +45 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +74 -0
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +107 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth.rb +4 -2
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/client.rb +4 -4
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/base_controller.rb +1 -1
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/{api_controller.rb → mfa_controller.rb} +65 -14
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/exceptions/error_with_request_exception.rb +34 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/exceptions/forbidden_request_exception.rb +29 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/exceptions/unauthorized_request_exception.rb +29 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/models/two_factor_verify_request_schema.rb +0 -19
- data/lib/bandwidth/voice_lib/voice.rb +1 -1
- data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +51 -52
- data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +1 -1
- data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +77 -17
- data/lib/bandwidth/voice_lib/voice/models/{call_engine_modify_conference_request.rb → api_modify_conference_request.rb} +14 -14
- data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +3 -3
- data/lib/bandwidth/web_rtc_lib/web_rtc.rb +1 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +10 -1
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +24 -24
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +1 -1
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +17 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +11 -2
- data/test/controllers/controller_test_base.rb +21 -0
- data/test/http_response_catcher.rb +19 -0
- data/test/integration/test_integration.rb +583 -0
- data/test/test_helper.rb +94 -0
- metadata +66 -11
@@ -11,16 +11,20 @@ module Bandwidth
|
|
11
11
|
class FaradayClient < HttpClient
|
12
12
|
# The constructor.
|
13
13
|
def initialize(timeout:, max_retries:, retry_interval:,
|
14
|
-
backoff_factor:,
|
14
|
+
backoff_factor:, retry_statuses:, retry_methods:,
|
15
|
+
cache: false, verify: true)
|
15
16
|
@connection = Faraday.new do |faraday|
|
16
17
|
faraday.use Faraday::HttpCache, serializer: Marshal if cache
|
17
18
|
faraday.use FaradayMiddleware::FollowRedirects
|
19
|
+
faraday.use :gzip
|
18
20
|
faraday.request :multipart
|
19
21
|
faraday.request :url_encoded
|
20
22
|
faraday.ssl[:ca_file] = Certifi.where
|
21
23
|
faraday.ssl[:verify] = verify
|
22
24
|
faraday.request :retry, max: max_retries, interval: retry_interval,
|
23
|
-
backoff_factor: backoff_factor
|
25
|
+
backoff_factor: backoff_factor,
|
26
|
+
retry_statuses: retry_statuses,
|
27
|
+
methods: retry_methods
|
24
28
|
faraday.adapter Faraday.default_adapter
|
25
29
|
faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
|
26
30
|
faraday.options[:timeout] = timeout if timeout > 0
|
@@ -34,7 +38,10 @@ module Bandwidth
|
|
34
38
|
http_request.query_url
|
35
39
|
) do |request|
|
36
40
|
request.headers = http_request.headers
|
37
|
-
|
41
|
+
unless http_request.http_method == HttpMethodEnum::GET &&
|
42
|
+
http_request.parameters.empty?
|
43
|
+
request.body = http_request.parameters
|
44
|
+
end
|
38
45
|
end
|
39
46
|
convert_response(response, http_request)
|
40
47
|
end
|
@@ -46,7 +53,10 @@ module Bandwidth
|
|
46
53
|
http_request.query_url
|
47
54
|
) do |request|
|
48
55
|
request.headers = http_request.headers
|
49
|
-
|
56
|
+
unless http_request.http_method == HttpMethodEnum::GET &&
|
57
|
+
http_request.parameters.empty?
|
58
|
+
request.body = http_request.parameters
|
59
|
+
end
|
50
60
|
end
|
51
61
|
convert_response(response, http_request)
|
52
62
|
end
|
@@ -7,12 +7,16 @@
|
|
7
7
|
require_relative 'messaging/client.rb'
|
8
8
|
|
9
9
|
# Models
|
10
|
+
require_relative 'messaging/models/bandwidth_messages_list.rb'
|
11
|
+
require_relative 'messaging/models/bandwidth_message_item.rb'
|
12
|
+
require_relative 'messaging/models/page_info.rb'
|
10
13
|
require_relative 'messaging/models/media.rb'
|
11
14
|
require_relative 'messaging/models/tag.rb'
|
12
15
|
require_relative 'messaging/models/deferred_result.rb'
|
13
16
|
require_relative 'messaging/models/bandwidth_callback_message.rb'
|
14
17
|
require_relative 'messaging/models/bandwidth_message.rb'
|
15
18
|
require_relative 'messaging/models/message_request.rb'
|
19
|
+
require_relative 'messaging/models/priority_enum.rb'
|
16
20
|
|
17
21
|
# Exceptions
|
18
22
|
require_relative 'messaging/exceptions/messaging_exception.rb'
|
@@ -12,8 +12,9 @@ module Messaging
|
|
12
12
|
end
|
13
13
|
|
14
14
|
# listMedia
|
15
|
-
# @param [String] user_id Required parameter:
|
16
|
-
# @param [String] continuation_token Optional parameter:
|
15
|
+
# @param [String] user_id Required parameter: User's account ID
|
16
|
+
# @param [String] continuation_token Optional parameter: Continuation token
|
17
|
+
# used to retrieve subsequent media.
|
17
18
|
# @return [List of Media] response from the API call
|
18
19
|
def list_media(user_id,
|
19
20
|
continuation_token: nil)
|
@@ -22,7 +23,7 @@ module Messaging
|
|
22
23
|
_query_builder << '/users/{userId}/media'
|
23
24
|
_query_builder = APIHelper.append_url_with_template_parameters(
|
24
25
|
_query_builder,
|
25
|
-
'userId' => { 'value' => user_id, 'encode' =>
|
26
|
+
'userId' => { 'value' => user_id, 'encode' => false }
|
26
27
|
)
|
27
28
|
_query_url = APIHelper.clean_url _query_builder
|
28
29
|
|
@@ -83,8 +84,8 @@ module Messaging
|
|
83
84
|
end
|
84
85
|
|
85
86
|
# getMedia
|
86
|
-
# @param [String] user_id Required parameter:
|
87
|
-
# @param [String] media_id Required parameter:
|
87
|
+
# @param [String] user_id Required parameter: User's account ID
|
88
|
+
# @param [String] media_id Required parameter: Media ID to retrieve
|
88
89
|
# @return [Binary] response from the API call
|
89
90
|
def get_media(user_id,
|
90
91
|
media_id)
|
@@ -93,7 +94,7 @@ module Messaging
|
|
93
94
|
_query_builder << '/users/{userId}/media/{mediaId}'
|
94
95
|
_query_builder = APIHelper.append_url_with_template_parameters(
|
95
96
|
_query_builder,
|
96
|
-
'userId' => { 'value' => user_id, 'encode' =>
|
97
|
+
'userId' => { 'value' => user_id, 'encode' => false },
|
97
98
|
'mediaId' => { 'value' => media_id, 'encode' => false }
|
98
99
|
)
|
99
100
|
_query_url = APIHelper.clean_url _query_builder
|
@@ -146,13 +147,17 @@ module Messaging
|
|
146
147
|
end
|
147
148
|
|
148
149
|
# uploadMedia
|
149
|
-
# @param [String] user_id Required parameter:
|
150
|
-
# @param [String] media_id Required parameter:
|
151
|
-
#
|
150
|
+
# @param [String] user_id Required parameter: User's account ID
|
151
|
+
# @param [String] media_id Required parameter: The user supplied custom
|
152
|
+
# media ID
|
153
|
+
# @param [Long] content_length Required parameter: The size of the
|
154
|
+
# entity-body
|
152
155
|
# @param [File | UploadIO] body Required parameter: Example:
|
153
|
-
# @param [String] content_type Optional parameter:
|
154
|
-
#
|
155
|
-
# @param [String] cache_control Optional parameter:
|
156
|
+
# @param [String] content_type Optional parameter: The media type of the
|
157
|
+
# entity-body
|
158
|
+
# @param [String] cache_control Optional parameter: General-header field is
|
159
|
+
# used to specify directives that MUST be obeyed by all caching mechanisms
|
160
|
+
# along the request/response chain.
|
156
161
|
# @return [void] response from the API call
|
157
162
|
def upload_media(user_id,
|
158
163
|
media_id,
|
@@ -165,7 +170,7 @@ module Messaging
|
|
165
170
|
_query_builder << '/users/{userId}/media/{mediaId}'
|
166
171
|
_query_builder = APIHelper.append_url_with_template_parameters(
|
167
172
|
_query_builder,
|
168
|
-
'userId' => { 'value' => user_id, 'encode' =>
|
173
|
+
'userId' => { 'value' => user_id, 'encode' => false },
|
169
174
|
'mediaId' => { 'value' => media_id, 'encode' => false }
|
170
175
|
)
|
171
176
|
_query_url = APIHelper.clean_url _query_builder
|
@@ -234,8 +239,8 @@ module Messaging
|
|
234
239
|
end
|
235
240
|
|
236
241
|
# deleteMedia
|
237
|
-
# @param [String] user_id Required parameter:
|
238
|
-
# @param [String] media_id Required parameter:
|
242
|
+
# @param [String] user_id Required parameter: User's account ID
|
243
|
+
# @param [String] media_id Required parameter: The media ID to delete
|
239
244
|
# @return [void] response from the API call
|
240
245
|
def delete_media(user_id,
|
241
246
|
media_id)
|
@@ -244,7 +249,7 @@ module Messaging
|
|
244
249
|
_query_builder << '/users/{userId}/media/{mediaId}'
|
245
250
|
_query_builder = APIHelper.append_url_with_template_parameters(
|
246
251
|
_query_builder,
|
247
|
-
'userId' => { 'value' => user_id, 'encode' =>
|
252
|
+
'userId' => { 'value' => user_id, 'encode' => false },
|
248
253
|
'mediaId' => { 'value' => media_id, 'encode' => false }
|
249
254
|
)
|
250
255
|
_query_url = APIHelper.clean_url _query_builder
|
@@ -294,18 +299,128 @@ module Messaging
|
|
294
299
|
ApiResponse.new(_response)
|
295
300
|
end
|
296
301
|
|
302
|
+
# getMessages
|
303
|
+
# @param [String] user_id Required parameter: User's account ID
|
304
|
+
# @param [String] message_id Optional parameter: The ID of the message to
|
305
|
+
# search for. Special characters need to be encoded using URL encoding
|
306
|
+
# @param [String] source_tn Optional parameter: The phone number that sent
|
307
|
+
# the message
|
308
|
+
# @param [String] destination_tn Optional parameter: The phone number that
|
309
|
+
# received the message
|
310
|
+
# @param [String] message_status Optional parameter: The status of the
|
311
|
+
# message. One of RECEIVED, QUEUED, SENDING, SENT, FAILED, DELIVERED,
|
312
|
+
# DLR_EXPIRED
|
313
|
+
# @param [Integer] error_code Optional parameter: The error code of the
|
314
|
+
# message
|
315
|
+
# @param [String] from_date_time Optional parameter: The start of the date
|
316
|
+
# range to search in ISO 8601 format. Uses the message receive time. The
|
317
|
+
# date range to search in is currently 14 days.
|
318
|
+
# @param [String] to_date_time Optional parameter: The end of the date range
|
319
|
+
# to search in ISO 8601 format. Uses the message receive time. The date
|
320
|
+
# range to search in is currently 14 days.
|
321
|
+
# @param [String] page_token Optional parameter: A base64 encoded value used
|
322
|
+
# for pagination of results
|
323
|
+
# @param [Integer] limit Optional parameter: The maximum records requested
|
324
|
+
# in search result. Default 100. The sum of limit and after cannot be more
|
325
|
+
# than 10000
|
326
|
+
# @return [BandwidthMessagesList] response from the API call
|
327
|
+
def get_messages(user_id,
|
328
|
+
message_id: nil,
|
329
|
+
source_tn: nil,
|
330
|
+
destination_tn: nil,
|
331
|
+
message_status: nil,
|
332
|
+
error_code: nil,
|
333
|
+
from_date_time: nil,
|
334
|
+
to_date_time: nil,
|
335
|
+
page_token: nil,
|
336
|
+
limit: nil)
|
337
|
+
# Prepare query url.
|
338
|
+
_query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
|
339
|
+
_query_builder << '/users/{userId}/messages'
|
340
|
+
_query_builder = APIHelper.append_url_with_template_parameters(
|
341
|
+
_query_builder,
|
342
|
+
'userId' => { 'value' => user_id, 'encode' => false }
|
343
|
+
)
|
344
|
+
_query_builder = APIHelper.append_url_with_query_parameters(
|
345
|
+
_query_builder,
|
346
|
+
'messageId' => message_id,
|
347
|
+
'sourceTn' => source_tn,
|
348
|
+
'destinationTn' => destination_tn,
|
349
|
+
'messageStatus' => message_status,
|
350
|
+
'errorCode' => error_code,
|
351
|
+
'fromDateTime' => from_date_time,
|
352
|
+
'toDateTime' => to_date_time,
|
353
|
+
'pageToken' => page_token,
|
354
|
+
'limit' => limit
|
355
|
+
)
|
356
|
+
_query_url = APIHelper.clean_url _query_builder
|
357
|
+
|
358
|
+
# Prepare headers.
|
359
|
+
_headers = {
|
360
|
+
'accept' => 'application/json'
|
361
|
+
}
|
362
|
+
|
363
|
+
# Prepare and execute HttpRequest.
|
364
|
+
_request = config.http_client.get(
|
365
|
+
_query_url,
|
366
|
+
headers: _headers
|
367
|
+
)
|
368
|
+
MessagingBasicAuth.apply(config, _request)
|
369
|
+
_response = execute_request(_request)
|
370
|
+
|
371
|
+
# Validate response against endpoint and global error codes.
|
372
|
+
if _response.status_code == 400
|
373
|
+
raise MessagingException.new(
|
374
|
+
'400 Request is malformed or invalid',
|
375
|
+
_response
|
376
|
+
)
|
377
|
+
elsif _response.status_code == 401
|
378
|
+
raise MessagingException.new(
|
379
|
+
'401 The specified user does not have access to the account',
|
380
|
+
_response
|
381
|
+
)
|
382
|
+
elsif _response.status_code == 403
|
383
|
+
raise MessagingException.new(
|
384
|
+
'403 The user does not have access to this API',
|
385
|
+
_response
|
386
|
+
)
|
387
|
+
elsif _response.status_code == 404
|
388
|
+
raise MessagingException.new(
|
389
|
+
'404 Path not found',
|
390
|
+
_response
|
391
|
+
)
|
392
|
+
elsif _response.status_code == 415
|
393
|
+
raise MessagingException.new(
|
394
|
+
'415 The content-type of the request is incorrect',
|
395
|
+
_response
|
396
|
+
)
|
397
|
+
elsif _response.status_code == 429
|
398
|
+
raise MessagingException.new(
|
399
|
+
'429 The rate limit has been reached',
|
400
|
+
_response
|
401
|
+
)
|
402
|
+
end
|
403
|
+
validate_response(_response)
|
404
|
+
|
405
|
+
# Return appropriate response type.
|
406
|
+
decoded = APIHelper.json_deserialize(_response.raw_body)
|
407
|
+
ApiResponse.new(
|
408
|
+
_response, data: BandwidthMessagesList.from_hash(decoded)
|
409
|
+
)
|
410
|
+
end
|
411
|
+
|
297
412
|
# createMessage
|
298
|
-
# @param [String] user_id Required parameter:
|
299
|
-
# @param [MessageRequest] body
|
413
|
+
# @param [String] user_id Required parameter: User's account ID
|
414
|
+
# @param [MessageRequest] body Required parameter: Example:
|
300
415
|
# @return [BandwidthMessage] response from the API call
|
301
416
|
def create_message(user_id,
|
302
|
-
body
|
417
|
+
body)
|
303
418
|
# Prepare query url.
|
304
419
|
_query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
|
305
420
|
_query_builder << '/users/{userId}/messages'
|
306
421
|
_query_builder = APIHelper.append_url_with_template_parameters(
|
307
422
|
_query_builder,
|
308
|
-
'userId' => { 'value' => user_id, 'encode' =>
|
423
|
+
'userId' => { 'value' => user_id, 'encode' => false }
|
309
424
|
)
|
310
425
|
_query_url = APIHelper.clean_url _query_builder
|
311
426
|
|
@@ -6,50 +6,55 @@
|
|
6
6
|
module Bandwidth
|
7
7
|
# BandwidthMessage Model.
|
8
8
|
class BandwidthMessage < BaseModel
|
9
|
-
#
|
9
|
+
# The id of the message
|
10
10
|
# @return [String]
|
11
11
|
attr_accessor :id
|
12
12
|
|
13
|
-
#
|
13
|
+
# The Bandwidth phone number associated with the message
|
14
14
|
# @return [String]
|
15
15
|
attr_accessor :owner
|
16
16
|
|
17
|
-
#
|
17
|
+
# The application ID associated with the message
|
18
18
|
# @return [String]
|
19
19
|
attr_accessor :application_id
|
20
20
|
|
21
|
-
#
|
21
|
+
# The datetime stamp of the message in ISO 8601
|
22
22
|
# @return [String]
|
23
23
|
attr_accessor :time
|
24
24
|
|
25
|
-
#
|
25
|
+
# The number of segments the original message from the user is broken into
|
26
|
+
# before sending over to carrier networks
|
26
27
|
# @return [Integer]
|
27
28
|
attr_accessor :segment_count
|
28
29
|
|
29
|
-
#
|
30
|
+
# The direction of the message relative to Bandwidth. Can be in or out
|
30
31
|
# @return [String]
|
31
32
|
attr_accessor :direction
|
32
33
|
|
33
|
-
#
|
34
|
+
# The phone number recipients of the message
|
34
35
|
# @return [List of String]
|
35
36
|
attr_accessor :to
|
36
37
|
|
37
|
-
#
|
38
|
+
# The phone number the message was sent from
|
38
39
|
# @return [String]
|
39
40
|
attr_accessor :from
|
40
41
|
|
41
|
-
#
|
42
|
+
# The list of media URLs sent in the message
|
42
43
|
# @return [List of String]
|
43
44
|
attr_accessor :media
|
44
45
|
|
45
|
-
#
|
46
|
+
# The contents of the message
|
46
47
|
# @return [String]
|
47
48
|
attr_accessor :text
|
48
49
|
|
49
|
-
#
|
50
|
+
# The custom string set by the user
|
50
51
|
# @return [String]
|
51
52
|
attr_accessor :tag
|
52
53
|
|
54
|
+
# The priority specified by the user
|
55
|
+
# @return [String]
|
56
|
+
attr_accessor :priority
|
57
|
+
|
53
58
|
# A mapping from model property names to API property names.
|
54
59
|
def self.names
|
55
60
|
@_hash = {} if @_hash.nil?
|
@@ -64,6 +69,7 @@ module Bandwidth
|
|
64
69
|
@_hash['media'] = 'media'
|
65
70
|
@_hash['text'] = 'text'
|
66
71
|
@_hash['tag'] = 'tag'
|
72
|
+
@_hash['priority'] = 'priority'
|
67
73
|
@_hash
|
68
74
|
end
|
69
75
|
|
@@ -77,7 +83,8 @@ module Bandwidth
|
|
77
83
|
from = nil,
|
78
84
|
media = nil,
|
79
85
|
text = nil,
|
80
|
-
tag = nil
|
86
|
+
tag = nil,
|
87
|
+
priority = nil)
|
81
88
|
@id = id
|
82
89
|
@owner = owner
|
83
90
|
@application_id = application_id
|
@@ -89,6 +96,7 @@ module Bandwidth
|
|
89
96
|
@media = media
|
90
97
|
@text = text
|
91
98
|
@tag = tag
|
99
|
+
@priority = priority
|
92
100
|
end
|
93
101
|
|
94
102
|
# Creates an instance of the object from a hash.
|
@@ -107,6 +115,7 @@ module Bandwidth
|
|
107
115
|
media = hash['media']
|
108
116
|
text = hash['text']
|
109
117
|
tag = hash['tag']
|
118
|
+
priority = hash['priority']
|
110
119
|
|
111
120
|
# Create object from extracted values.
|
112
121
|
BandwidthMessage.new(id,
|
@@ -119,7 +128,8 @@ module Bandwidth
|
|
119
128
|
from,
|
120
129
|
media,
|
121
130
|
text,
|
122
|
-
tag
|
131
|
+
tag,
|
132
|
+
priority)
|
123
133
|
end
|
124
134
|
end
|
125
135
|
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
# bandwidth
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module Bandwidth
|
7
|
+
# BandwidthMessageItem Model.
|
8
|
+
class BandwidthMessageItem < BaseModel
|
9
|
+
# The message id
|
10
|
+
# @return [String]
|
11
|
+
attr_accessor :message_id
|
12
|
+
|
13
|
+
# The account id of the message
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :account_id
|
16
|
+
|
17
|
+
# The source phone number of the message
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :source_tn
|
20
|
+
|
21
|
+
# The recipient phone number of the message
|
22
|
+
# @return [String]
|
23
|
+
attr_accessor :destination_tn
|
24
|
+
|
25
|
+
# The status of the message
|
26
|
+
# @return [String]
|
27
|
+
attr_accessor :message_status
|
28
|
+
|
29
|
+
# The direction of the message relative to Bandwidth. INBOUND or OUTBOUND
|
30
|
+
# @return [String]
|
31
|
+
attr_accessor :message_direction
|
32
|
+
|
33
|
+
# The type of message. sms or mms
|
34
|
+
# @return [String]
|
35
|
+
attr_accessor :message_type
|
36
|
+
|
37
|
+
# The number of segments the message was sent as
|
38
|
+
# @return [Integer]
|
39
|
+
attr_accessor :segment_count
|
40
|
+
|
41
|
+
# The numeric error code of the message
|
42
|
+
# @return [Integer]
|
43
|
+
attr_accessor :error_code
|
44
|
+
|
45
|
+
# The ISO 8601 datetime of the message
|
46
|
+
# @return [String]
|
47
|
+
attr_accessor :receive_time
|
48
|
+
|
49
|
+
# The name of the carrier. Not currently supported for MMS, coming soon
|
50
|
+
# @return [String]
|
51
|
+
attr_accessor :carrier_name
|
52
|
+
|
53
|
+
# A mapping from model property names to API property names.
|
54
|
+
def self.names
|
55
|
+
@_hash = {} if @_hash.nil?
|
56
|
+
@_hash['message_id'] = 'messageId'
|
57
|
+
@_hash['account_id'] = 'accountId'
|
58
|
+
@_hash['source_tn'] = 'sourceTn'
|
59
|
+
@_hash['destination_tn'] = 'destinationTn'
|
60
|
+
@_hash['message_status'] = 'messageStatus'
|
61
|
+
@_hash['message_direction'] = 'messageDirection'
|
62
|
+
@_hash['message_type'] = 'messageType'
|
63
|
+
@_hash['segment_count'] = 'segmentCount'
|
64
|
+
@_hash['error_code'] = 'errorCode'
|
65
|
+
@_hash['receive_time'] = 'receiveTime'
|
66
|
+
@_hash['carrier_name'] = 'carrierName'
|
67
|
+
@_hash
|
68
|
+
end
|
69
|
+
|
70
|
+
def initialize(message_id = nil,
|
71
|
+
account_id = nil,
|
72
|
+
source_tn = nil,
|
73
|
+
destination_tn = nil,
|
74
|
+
message_status = nil,
|
75
|
+
message_direction = nil,
|
76
|
+
message_type = nil,
|
77
|
+
segment_count = nil,
|
78
|
+
error_code = nil,
|
79
|
+
receive_time = nil,
|
80
|
+
carrier_name = nil)
|
81
|
+
@message_id = message_id
|
82
|
+
@account_id = account_id
|
83
|
+
@source_tn = source_tn
|
84
|
+
@destination_tn = destination_tn
|
85
|
+
@message_status = message_status
|
86
|
+
@message_direction = message_direction
|
87
|
+
@message_type = message_type
|
88
|
+
@segment_count = segment_count
|
89
|
+
@error_code = error_code
|
90
|
+
@receive_time = receive_time
|
91
|
+
@carrier_name = carrier_name
|
92
|
+
end
|
93
|
+
|
94
|
+
# Creates an instance of the object from a hash.
|
95
|
+
def self.from_hash(hash)
|
96
|
+
return nil unless hash
|
97
|
+
|
98
|
+
# 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 = hash['messageDirection']
|
105
|
+
message_type = hash['messageType']
|
106
|
+
segment_count = hash['segmentCount']
|
107
|
+
error_code = hash['errorCode']
|
108
|
+
receive_time = hash['receiveTime']
|
109
|
+
carrier_name = hash['carrierName']
|
110
|
+
|
111
|
+
# Create object from extracted values.
|
112
|
+
BandwidthMessageItem.new(message_id,
|
113
|
+
account_id,
|
114
|
+
source_tn,
|
115
|
+
destination_tn,
|
116
|
+
message_status,
|
117
|
+
message_direction,
|
118
|
+
message_type,
|
119
|
+
segment_count,
|
120
|
+
error_code,
|
121
|
+
receive_time,
|
122
|
+
carrier_name)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|