bandwidth-sdk 3.12.1 → 5.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/LICENSE +1 -1
- data/lib/bandwidth/http/api_response.rb +2 -0
- data/lib/bandwidth/http/faraday_client.rb +9 -2
- data/lib/bandwidth/messaging_lib/messaging.rb +3 -0
- data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +138 -23
- data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +1 -1
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +12 -11
- 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 +8 -6
- data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +62 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/api_controller.rb +3 -3
- 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/models/two_factor_verify_request_schema.rb +0 -19
- data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +25 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +13 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +9 -2
- 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/controllers/api_controller.rb +24 -24
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +1 -1
- data/test/controllers/controller_test_base.rb +21 -0
- data/test/http_response_catcher.rb +19 -0
- data/test/test_helper.rb +94 -0
- metadata +47 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc4d4b047d53e1e8c3f34b37696455d916a753aa3566dad6d6fb666fc2b3fa61
|
4
|
+
data.tar.gz: b5cdf37c09788e890f36ef3c78ccf41f0ba18a69291f1424be7f798f207881f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59761140cdddf9f6cda37d7aeeaeff6341a5c0bcc357cf577ae29e8fff0a6cf347f1070536f99db3b2f3f6baae3c2b93edbefb2e94468036c57ffd7a65c279b0
|
7
|
+
data.tar.gz: bdf68653a8640403d2bc5402c9f5af06055079640ab9229b16ac12cf48290ccffbe2ac38e40c11c3e6b518b1ebaad05344779249d0f79c940d32c3a57b36f5ed
|
data/LICENSE
CHANGED
@@ -3,7 +3,7 @@ License:
|
|
3
3
|
The MIT License (MIT)
|
4
4
|
http://opensource.org/licenses/MIT
|
5
5
|
|
6
|
-
Copyright (c) 2014 -
|
6
|
+
Copyright (c) 2014 - 2020 APIMATIC Limited
|
7
7
|
|
8
8
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -25,10 +25,12 @@ module Bandwidth
|
|
25
25
|
@errors = errors
|
26
26
|
end
|
27
27
|
|
28
|
+
# returns true if status_code is between 200-300
|
28
29
|
def success?
|
29
30
|
status_code >= 200 && status_code < 300
|
30
31
|
end
|
31
32
|
|
33
|
+
# returns true if status_code is between 400-600
|
32
34
|
def error?
|
33
35
|
status_code >= 400 && status_code < 600
|
34
36
|
end
|
@@ -15,6 +15,7 @@ module Bandwidth
|
|
15
15
|
@connection = Faraday.new do |faraday|
|
16
16
|
faraday.use Faraday::HttpCache, serializer: Marshal if cache
|
17
17
|
faraday.use FaradayMiddleware::FollowRedirects
|
18
|
+
faraday.use :gzip
|
18
19
|
faraday.request :multipart
|
19
20
|
faraday.request :url_encoded
|
20
21
|
faraday.ssl[:ca_file] = Certifi.where
|
@@ -34,7 +35,10 @@ module Bandwidth
|
|
34
35
|
http_request.query_url
|
35
36
|
) do |request|
|
36
37
|
request.headers = http_request.headers
|
37
|
-
|
38
|
+
unless http_request.http_method == HttpMethodEnum::GET &&
|
39
|
+
http_request.parameters.empty?
|
40
|
+
request.body = http_request.parameters
|
41
|
+
end
|
38
42
|
end
|
39
43
|
convert_response(response, http_request)
|
40
44
|
end
|
@@ -46,7 +50,10 @@ module Bandwidth
|
|
46
50
|
http_request.query_url
|
47
51
|
) do |request|
|
48
52
|
request.headers = http_request.headers
|
49
|
-
|
53
|
+
unless http_request.http_method == HttpMethodEnum::GET &&
|
54
|
+
http_request.parameters.empty?
|
55
|
+
request.body = http_request.parameters
|
56
|
+
end
|
50
57
|
end
|
51
58
|
convert_response(response, http_request)
|
52
59
|
end
|
@@ -7,6 +7,9 @@
|
|
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'
|
@@ -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,8 +94,8 @@ 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
|
-
'mediaId' => { 'value' => media_id, 'encode' =>
|
97
|
+
'userId' => { 'value' => user_id, 'encode' => false },
|
98
|
+
'mediaId' => { 'value' => media_id, 'encode' => false }
|
98
99
|
)
|
99
100
|
_query_url = APIHelper.clean_url _query_builder
|
100
101
|
|
@@ -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,8 +170,8 @@ 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' =>
|
169
|
-
'mediaId' => { 'value' => media_id, 'encode' =>
|
173
|
+
'userId' => { 'value' => user_id, 'encode' => false },
|
174
|
+
'mediaId' => { 'value' => media_id, 'encode' => false }
|
170
175
|
)
|
171
176
|
_query_url = APIHelper.clean_url _query_builder
|
172
177
|
|
@@ -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,8 +249,8 @@ 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' =>
|
248
|
-
'mediaId' => { 'value' => media_id, 'encode' =>
|
252
|
+
'userId' => { 'value' => user_id, 'encode' => false },
|
253
|
+
'mediaId' => { 'value' => media_id, 'encode' => false }
|
249
254
|
)
|
250
255
|
_query_url = APIHelper.clean_url _query_builder
|
251
256
|
|
@@ -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,47 +6,48 @@
|
|
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
|
|
@@ -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
|