messagemedia_messages_sdk 1.1.0 → 2.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/README.md +240 -55
- data/lib/message_media_messages.rb +32 -18
- data/lib/message_media_messages/api_helper.rb +76 -9
- data/lib/message_media_messages/configuration.rb +8 -6
- data/lib/message_media_messages/controllers/base_controller.rb +13 -29
- data/lib/message_media_messages/controllers/delivery_reports_controller.rb +55 -100
- data/lib/message_media_messages/controllers/messages_controller.rb +162 -199
- data/lib/message_media_messages/controllers/replies_controller.rb +79 -123
- data/lib/message_media_messages/exceptions/api_exception.rb +5 -3
- data/lib/message_media_messages/exceptions/send_messages400_response_exception.rb +29 -0
- data/lib/message_media_messages/http/auth/auth_manager.rb +90 -0
- data/lib/message_media_messages/http/faraday_client.rb +10 -3
- data/lib/message_media_messages/http/http_call_back.rb +5 -3
- data/lib/message_media_messages/http/http_client.rb +29 -18
- data/lib/message_media_messages/http/http_context.rb +5 -3
- data/lib/message_media_messages/http/http_method_enum.rb +4 -2
- data/lib/message_media_messages/http/http_request.rb +13 -11
- data/lib/message_media_messages/http/http_response.rb +6 -4
- data/lib/message_media_messages/message_media_messages_client.rb +9 -6
- data/lib/message_media_messages/models/base_model.rb +4 -1
- data/lib/message_media_messages/models/cancel_scheduled_message_request.rb +7 -7
- data/lib/message_media_messages/models/check_delivery_reports_response.rb +15 -8
- data/lib/message_media_messages/models/check_replies_response.rb +15 -8
- data/lib/message_media_messages/models/confirm_delivery_reports_as_received_request.rb +5 -5
- data/lib/message_media_messages/models/{confirm_delivery_reports_as_received_request_11.rb → confirm_delivery_reports_as_received_request1.rb} +8 -8
- data/lib/message_media_messages/models/confirm_replies_as_received_request.rb +5 -5
- data/lib/message_media_messages/models/{confirm_replies_as_received_request_8.rb → confirm_replies_as_received_request1.rb} +8 -8
- data/lib/message_media_messages/models/delivery_report.rb +135 -0
- data/lib/message_media_messages/models/format1_enum.rb +20 -0
- data/lib/message_media_messages/models/format_enum.rb +20 -0
- data/lib/message_media_messages/models/get_message_status_response.rb +145 -0
- data/lib/message_media_messages/models/message.rb +166 -0
- data/lib/message_media_messages/models/reply.rb +112 -0
- data/lib/message_media_messages/models/send_messages_request.rb +14 -7
- data/lib/message_media_messages/models/send_messages_response.rb +14 -7
- data/lib/message_media_messages/models/source_number_type_enum.rb +21 -0
- data/lib/message_media_messages/models/status2_enum.rb +32 -0
- data/lib/message_media_messages/models/status_enum.rb +44 -0
- data/lib/message_media_messages/models/vendor_account_id.rb +44 -0
- metadata +18 -21
- data/lib/message_media_messages/http/auth/basic_auth.rb +0 -20
- data/lib/message_media_messages/http/auth/hmac_auth.rb +0 -54
- data/test/controllers/controller_test_base.rb +0 -33
- data/test/controllers/test_delivery_reports_controller.rb +0 -164
- data/test/controllers/test_messages_controller.rb +0 -166
- data/test/controllers/test_replies_controller.rb +0 -164
- data/test/http_response_catcher.rb +0 -16
- data/test/test_helper.rb +0 -79
@@ -1,19 +1,19 @@
|
|
1
|
-
#
|
1
|
+
# message_media_messages
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
2
4
|
# ( https://apimatic.io ).
|
3
5
|
|
4
6
|
module MessageMediaMessages
|
5
7
|
# SendMessagesRequest Model.
|
6
8
|
class SendMessagesRequest < BaseModel
|
7
9
|
# TODO: Write general description for this method
|
8
|
-
# @return [List of
|
10
|
+
# @return [List of Message]
|
9
11
|
attr_accessor :messages
|
10
12
|
|
11
13
|
# A mapping from model property names to API property names.
|
12
14
|
def self.names
|
13
|
-
if @_hash.nil?
|
14
|
-
|
15
|
-
@_hash['messages'] = 'messages'
|
16
|
-
end
|
15
|
+
@_hash = {} if @_hash.nil?
|
16
|
+
@_hash['messages'] = 'messages'
|
17
17
|
@_hash
|
18
18
|
end
|
19
19
|
|
@@ -26,7 +26,14 @@ module MessageMediaMessages
|
|
26
26
|
return nil unless hash
|
27
27
|
|
28
28
|
# Extract variables from the hash.
|
29
|
-
|
29
|
+
# Parameter is an array, so we need to iterate through it
|
30
|
+
messages = nil
|
31
|
+
unless hash['messages'].nil?
|
32
|
+
messages = []
|
33
|
+
hash['messages'].each do |structure|
|
34
|
+
messages << (Message.from_hash(structure) if structure)
|
35
|
+
end
|
36
|
+
end
|
30
37
|
|
31
38
|
# Create object from extracted values.
|
32
39
|
SendMessagesRequest.new(messages)
|
@@ -1,19 +1,19 @@
|
|
1
|
-
#
|
1
|
+
# message_media_messages
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
2
4
|
# ( https://apimatic.io ).
|
3
5
|
|
4
6
|
module MessageMediaMessages
|
5
7
|
# SendMessagesResponse Model.
|
6
8
|
class SendMessagesResponse < BaseModel
|
7
9
|
# TODO: Write general description for this method
|
8
|
-
# @return [List of
|
10
|
+
# @return [List of Message]
|
9
11
|
attr_accessor :messages
|
10
12
|
|
11
13
|
# A mapping from model property names to API property names.
|
12
14
|
def self.names
|
13
|
-
if @_hash.nil?
|
14
|
-
|
15
|
-
@_hash['messages'] = 'messages'
|
16
|
-
end
|
15
|
+
@_hash = {} if @_hash.nil?
|
16
|
+
@_hash['messages'] = 'messages'
|
17
17
|
@_hash
|
18
18
|
end
|
19
19
|
|
@@ -26,7 +26,14 @@ module MessageMediaMessages
|
|
26
26
|
return nil unless hash
|
27
27
|
|
28
28
|
# Extract variables from the hash.
|
29
|
-
|
29
|
+
# Parameter is an array, so we need to iterate through it
|
30
|
+
messages = nil
|
31
|
+
unless hash['messages'].nil?
|
32
|
+
messages = []
|
33
|
+
hash['messages'].each do |structure|
|
34
|
+
messages << (Message.from_hash(structure) if structure)
|
35
|
+
end
|
36
|
+
end
|
30
37
|
|
31
38
|
# Create object from extracted values.
|
32
39
|
SendMessagesResponse.new(messages)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# message_media_messages
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module MessageMediaMessages
|
7
|
+
# Type of source address specified, this can be INTERNATIONAL, ALPHANUMERIC or
|
8
|
+
# SHORTCODE
|
9
|
+
class SourceNumberTypeEnum
|
10
|
+
SOURCE_NUMBER_TYPE_ENUM = [
|
11
|
+
# TODO: Write general description for INTERNATIONAL
|
12
|
+
INTERNATIONAL = 'INTERNATIONAL'.freeze,
|
13
|
+
|
14
|
+
# TODO: Write general description for ALPHANUMERIC
|
15
|
+
ALPHANUMERIC = 'ALPHANUMERIC'.freeze,
|
16
|
+
|
17
|
+
# TODO: Write general description for SHORTCODE
|
18
|
+
SHORTCODE = 'SHORTCODE'.freeze
|
19
|
+
].freeze
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# message_media_messages
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module MessageMediaMessages
|
7
|
+
# The status of the message as per the delivery report
|
8
|
+
class Status2Enum
|
9
|
+
STATUS2_ENUM = [
|
10
|
+
# TODO: Write general description for ENROUTE
|
11
|
+
ENROUTE = 'enroute'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for FAILED
|
14
|
+
FAILED = 'failed'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for SUBMITTED
|
17
|
+
SUBMITTED = 'submitted'.freeze,
|
18
|
+
|
19
|
+
# TODO: Write general description for DELIVERED
|
20
|
+
DELIVERED = 'delivered'.freeze,
|
21
|
+
|
22
|
+
# TODO: Write general description for EXPIRED
|
23
|
+
EXPIRED = 'expired'.freeze,
|
24
|
+
|
25
|
+
# TODO: Write general description for REJECTED
|
26
|
+
REJECTED = 'rejected'.freeze,
|
27
|
+
|
28
|
+
# TODO: Write general description for UNDELIVERABLE
|
29
|
+
UNDELIVERABLE = 'undeliverable'.freeze
|
30
|
+
].freeze
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# message_media_messages
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module MessageMediaMessages
|
7
|
+
# The status of the message
|
8
|
+
class StatusEnum
|
9
|
+
STATUS_ENUM = [
|
10
|
+
# TODO: Write general description for ENROUTE
|
11
|
+
ENROUTE = 'enroute'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for SUBMITTED
|
14
|
+
SUBMITTED = 'submitted'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for DELIVERED
|
17
|
+
DELIVERED = 'delivered'.freeze,
|
18
|
+
|
19
|
+
# TODO: Write general description for EXPIRED
|
20
|
+
EXPIRED = 'expired'.freeze,
|
21
|
+
|
22
|
+
# TODO: Write general description for REJECTED
|
23
|
+
REJECTED = 'rejected'.freeze,
|
24
|
+
|
25
|
+
# TODO: Write general description for UNDELIVERABLE
|
26
|
+
UNDELIVERABLE = 'undeliverable'.freeze,
|
27
|
+
|
28
|
+
# TODO: Write general description for QUEUED
|
29
|
+
QUEUED = 'queued'.freeze,
|
30
|
+
|
31
|
+
# TODO: Write general description for PROCESSED
|
32
|
+
PROCESSED = 'processed'.freeze,
|
33
|
+
|
34
|
+
# TODO: Write general description for CANCELLED
|
35
|
+
CANCELLED = 'cancelled'.freeze,
|
36
|
+
|
37
|
+
# TODO: Write general description for SCHEDULED
|
38
|
+
SCHEDULED = 'scheduled'.freeze,
|
39
|
+
|
40
|
+
# TODO: Write general description for FAILED
|
41
|
+
FAILED = 'failed'.freeze
|
42
|
+
].freeze
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# message_media_messages
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module MessageMediaMessages
|
7
|
+
# VendorAccountId Model.
|
8
|
+
class VendorAccountId < BaseModel
|
9
|
+
# TODO: Write general description for this method
|
10
|
+
# @return [String]
|
11
|
+
attr_accessor :vendor_id
|
12
|
+
|
13
|
+
# The account used to submit the original message.
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :account_id
|
16
|
+
|
17
|
+
# A mapping from model property names to API property names.
|
18
|
+
def self.names
|
19
|
+
@_hash = {} if @_hash.nil?
|
20
|
+
@_hash['vendor_id'] = 'vendor_id'
|
21
|
+
@_hash['account_id'] = 'account_id'
|
22
|
+
@_hash
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(vendor_id = nil,
|
26
|
+
account_id = nil)
|
27
|
+
@vendor_id = vendor_id
|
28
|
+
@account_id = account_id
|
29
|
+
end
|
30
|
+
|
31
|
+
# Creates an instance of the object from a hash.
|
32
|
+
def self.from_hash(hash)
|
33
|
+
return nil unless hash
|
34
|
+
|
35
|
+
# Extract variables from the hash.
|
36
|
+
vendor_id = hash['vendor_id']
|
37
|
+
account_id = hash['account_id']
|
38
|
+
|
39
|
+
# Create object from extracted values.
|
40
|
+
VendorAccountId.new(vendor_id,
|
41
|
+
account_id)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: messagemedia_messages_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MessageMedia Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logging
|
@@ -43,9 +43,6 @@ dependencies:
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '3.1'
|
48
|
-
- - ">="
|
49
46
|
- !ruby/object:Gem::Version
|
50
47
|
version: 3.1.5
|
51
48
|
type: :runtime
|
@@ -53,9 +50,6 @@ dependencies:
|
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
52
|
- - "~>"
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '3.1'
|
58
|
-
- - ">="
|
59
53
|
- !ruby/object:Gem::Version
|
60
54
|
version: 3.1.5
|
61
55
|
- !ruby/object:Gem::Dependency
|
@@ -115,8 +109,8 @@ files:
|
|
115
109
|
- lib/message_media_messages/controllers/messages_controller.rb
|
116
110
|
- lib/message_media_messages/controllers/replies_controller.rb
|
117
111
|
- lib/message_media_messages/exceptions/api_exception.rb
|
118
|
-
- lib/message_media_messages/
|
119
|
-
- lib/message_media_messages/http/auth/
|
112
|
+
- lib/message_media_messages/exceptions/send_messages400_response_exception.rb
|
113
|
+
- lib/message_media_messages/http/auth/auth_manager.rb
|
120
114
|
- lib/message_media_messages/http/faraday_client.rb
|
121
115
|
- lib/message_media_messages/http/http_call_back.rb
|
122
116
|
- lib/message_media_messages/http/http_client.rb
|
@@ -130,22 +124,25 @@ files:
|
|
130
124
|
- lib/message_media_messages/models/check_delivery_reports_response.rb
|
131
125
|
- lib/message_media_messages/models/check_replies_response.rb
|
132
126
|
- lib/message_media_messages/models/confirm_delivery_reports_as_received_request.rb
|
133
|
-
- lib/message_media_messages/models/
|
127
|
+
- lib/message_media_messages/models/confirm_delivery_reports_as_received_request1.rb
|
134
128
|
- lib/message_media_messages/models/confirm_replies_as_received_request.rb
|
135
|
-
- lib/message_media_messages/models/
|
129
|
+
- lib/message_media_messages/models/confirm_replies_as_received_request1.rb
|
130
|
+
- lib/message_media_messages/models/delivery_report.rb
|
131
|
+
- lib/message_media_messages/models/format1_enum.rb
|
132
|
+
- lib/message_media_messages/models/format_enum.rb
|
133
|
+
- lib/message_media_messages/models/get_message_status_response.rb
|
134
|
+
- lib/message_media_messages/models/message.rb
|
135
|
+
- lib/message_media_messages/models/reply.rb
|
136
136
|
- lib/message_media_messages/models/send_messages_request.rb
|
137
137
|
- lib/message_media_messages/models/send_messages_response.rb
|
138
|
-
-
|
139
|
-
-
|
140
|
-
-
|
141
|
-
-
|
142
|
-
|
143
|
-
- test/test_helper.rb
|
144
|
-
homepage: https://developers.messagemedia.com/
|
138
|
+
- lib/message_media_messages/models/source_number_type_enum.rb
|
139
|
+
- lib/message_media_messages/models/status2_enum.rb
|
140
|
+
- lib/message_media_messages/models/status_enum.rb
|
141
|
+
- lib/message_media_messages/models/vendor_account_id.rb
|
142
|
+
homepage: https://developers.messagemedia.com
|
145
143
|
licenses:
|
146
144
|
- Apache-2.0
|
147
|
-
metadata:
|
148
|
-
source_code_uri: https://github.com/messagemedia/messages-ruby-sdk
|
145
|
+
metadata: {}
|
149
146
|
post_install_message:
|
150
147
|
rdoc_options: []
|
151
148
|
require_paths:
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# This file was automatically generated for MessageMedia by APIMATIC v2.0
|
2
|
-
# ( https://apimatic.io ).
|
3
|
-
|
4
|
-
require 'base64'
|
5
|
-
|
6
|
-
module MessageMediaMessages
|
7
|
-
# Utility class for basic authorization.
|
8
|
-
class BasicAuth
|
9
|
-
# Add basic authentication to the request.
|
10
|
-
# @param [HttpRequest] The HttpRequest object to which authentication will
|
11
|
-
# be added.
|
12
|
-
def self.apply(http_request, url=nil, body=nil)
|
13
|
-
username = Configuration.basic_auth_user_name
|
14
|
-
password = Configuration.basic_auth_password
|
15
|
-
value = Base64.strict_encode64("#{username}:#{password}")
|
16
|
-
header_value = "Basic #{value}"
|
17
|
-
http_request.headers['Authorization'] = header_value
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# This file was automatically generated for MessageMedia by APIMATIC v2.0
|
2
|
-
# ( https://apimatic.io ).
|
3
|
-
|
4
|
-
require 'base64'
|
5
|
-
|
6
|
-
module MessageMediaMessages
|
7
|
-
# Utility class for basic authorization.
|
8
|
-
class HmacAuth
|
9
|
-
def self.create_signature(date, content_signature, url, body=nil)
|
10
|
-
request_type = "GET"
|
11
|
-
|
12
|
-
if body != nil
|
13
|
-
request_type = "POST"
|
14
|
-
end
|
15
|
-
|
16
|
-
signing_string = "date: #{date}\n#{content_signature}#{request_type} #{url} HTTP/1.1"
|
17
|
-
hmac = OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'), Configuration.hmac_auth_password.encode("ASCII"), signing_string.encode("ASCII"))
|
18
|
-
|
19
|
-
return Base64.encode64(hmac).chomp
|
20
|
-
end
|
21
|
-
|
22
|
-
# Add basic authentication to the request.
|
23
|
-
# @param [HttpRequest] The HttpRequest object to which authentication will
|
24
|
-
# be added.
|
25
|
-
def self.apply(http_request, url=nil, body=nil)
|
26
|
-
username = Configuration.hmac_auth_user_name
|
27
|
-
|
28
|
-
content_signature = ""
|
29
|
-
content_header = ""
|
30
|
-
|
31
|
-
now = DateTime.now.new_offset(0).to_time.strftime("%a, %d %b %Y %H:%M:%S GMT")
|
32
|
-
|
33
|
-
date_header = now
|
34
|
-
|
35
|
-
if body != nil
|
36
|
-
md5 = Digest::MD5.new
|
37
|
-
md5.update(body)
|
38
|
-
|
39
|
-
content_hash = md5.hexdigest
|
40
|
-
content_signature = "x-Content-MD5: #{content_hash}\n"
|
41
|
-
content_header = "x-Content-MD5 "
|
42
|
-
http_request.headers["x-Content-MD5"] = content_hash
|
43
|
-
end
|
44
|
-
|
45
|
-
http_request.headers["date"] = date_header
|
46
|
-
|
47
|
-
hmac_signature = HmacAuth.create_signature(date_header, content_signature, url, body)
|
48
|
-
|
49
|
-
joined = "username=\"#{username}\", algorithm=\"hmac-sha1\", headers=\"date #{content_header}request-line\", signature=\"#{hmac_signature}\""
|
50
|
-
header_value = "hmac #{joined}"
|
51
|
-
http_request.headers["Authorization"] = header_value
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# This file was automatically generated for MessageMedia by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
-
|
3
|
-
require 'json'
|
4
|
-
require 'test/unit'
|
5
|
-
require 'message_media_messages.rb'
|
6
|
-
require 'message_media_messages/configuration.rb'
|
7
|
-
require_relative '../test_helper.rb'
|
8
|
-
require_relative '../http_response_catcher.rb'
|
9
|
-
|
10
|
-
# noinspection RubyClassVariableUsageInspection
|
11
|
-
class ControllerTestBase < Test::Unit::TestCase
|
12
|
-
include MessageMediaMessages
|
13
|
-
|
14
|
-
class << self
|
15
|
-
attr_accessor :controller
|
16
|
-
end
|
17
|
-
|
18
|
-
# Called only once for a test class before any test has executed.
|
19
|
-
def self.startup
|
20
|
-
@@api_client = MessageMediaMessagesClient.new
|
21
|
-
@@request_timeout = 30
|
22
|
-
@@assert_precision = 0.01
|
23
|
-
|
24
|
-
Configuration.basic_auth_user_name = ENV['MessageMediaApiTestsKey']
|
25
|
-
Configuration.basic_auth_password = ENV['MessageMediaApiTestsSecret']
|
26
|
-
end
|
27
|
-
|
28
|
-
# Called once before every test case.
|
29
|
-
def setup
|
30
|
-
@response_catcher = HttpResponseCatcher.new
|
31
|
-
self.class.controller.http_call_back = @response_catcher
|
32
|
-
end
|
33
|
-
end
|
@@ -1,164 +0,0 @@
|
|
1
|
-
# This file was automatically generated for MessageMedia by APIMATIC v2.0 ( https://apimatic.io ).
|
2
|
-
|
3
|
-
require_relative 'controller_test_base'
|
4
|
-
|
5
|
-
# noinspection RubyClassVariableUsageInspection,RubyInstanceMethodNamingConvention
|
6
|
-
class DeliveryReportsControllerTests < ControllerTestBase
|
7
|
-
# Called only once for the class before any test has executed
|
8
|
-
def self.startup
|
9
|
-
self.controller = @@api_client.delivery_reports
|
10
|
-
end
|
11
|
-
|
12
|
-
# Check for any delivery reports that have been received.
|
13
|
-
# Delivery reports are a notification of the change in status of a message as it is being processed.
|
14
|
-
# Each request to the check delivery reports endpoint will return any delivery reports received that
|
15
|
-
# have not yet been confirmed using the confirm delivery reports endpoint. A response from the check
|
16
|
-
# delivery reports endpoint will have the following structure:
|
17
|
-
# ```json
|
18
|
-
# {
|
19
|
-
# "delivery_reports": [
|
20
|
-
# {
|
21
|
-
# "callback_url": "https://my.callback.url.com",
|
22
|
-
# "delivery_report_id": "01e1fa0a-6e27-4945-9cdb-18644b4de043",
|
23
|
-
# "source_number": "+61491570157",
|
24
|
-
# "date_received": "2017-05-20T06:30:37.642Z",
|
25
|
-
# "status": "enroute",
|
26
|
-
# "delay": 0,
|
27
|
-
# "submitted_date": "2017-05-20T06:30:37.639Z",
|
28
|
-
# "original_text": "My first message!",
|
29
|
-
# "message_id": "d781dcab-d9d8-4fb2-9e03-872f07ae94ba",
|
30
|
-
# "vendor_account_id": {
|
31
|
-
# "vendor_id": "MessageMedia",
|
32
|
-
# "account_id": "MyAccount"
|
33
|
-
# },
|
34
|
-
# "metadata": {
|
35
|
-
# "key1": "value1",
|
36
|
-
# "key2": "value2"
|
37
|
-
# }
|
38
|
-
# },
|
39
|
-
# {
|
40
|
-
# "callback_url": "https://my.callback.url.com",
|
41
|
-
# "delivery_report_id": "0edf9022-7ccc-43e6-acab-480e93e98c1b",
|
42
|
-
# "source_number": "+61491570158",
|
43
|
-
# "date_received": "2017-05-21T01:46:42.579Z",
|
44
|
-
# "status": "enroute",
|
45
|
-
# "delay": 0,
|
46
|
-
# "submitted_date": "2017-05-21T01:46:42.574Z",
|
47
|
-
# "original_text": "My second message!",
|
48
|
-
# "message_id": "fbb3b3f5-b702-4d8b-ab44-65b2ee39a281",
|
49
|
-
# "vendor_account_id": {
|
50
|
-
# "vendor_id": "MessageMedia",
|
51
|
-
# "account_id": "MyAccount"
|
52
|
-
# },
|
53
|
-
# "metadata": {
|
54
|
-
# "key1": "value1",
|
55
|
-
# "key2": "value2"
|
56
|
-
# }
|
57
|
-
# }
|
58
|
-
# ]
|
59
|
-
# }
|
60
|
-
# ```
|
61
|
-
# Each delivery report will contain details about the message, including any metadata specified
|
62
|
-
# and the new status of the message (as each delivery report indicates a change in status of a
|
63
|
-
# message) and the timestamp at which the status changed. Every delivery report will have a
|
64
|
-
# unique delivery report ID for use with the confirm delivery reports endpoint.
|
65
|
-
# *Note: The source number and destination number properties in a delivery report are the inverse of
|
66
|
-
# those specified in the message that the delivery report relates to. The source number of the
|
67
|
-
# delivery report is the destination number of the original message.*
|
68
|
-
# Subsequent requests to the check delivery reports endpoint will return the same delivery reports
|
69
|
-
# and a maximum of 100 delivery reports will be returned in each request. Applications should use the
|
70
|
-
# confirm delivery reports endpoint in the following pattern so that delivery reports that have been
|
71
|
-
# processed are no longer returned in subsequent check delivery reports requests.
|
72
|
-
# 1. Call check delivery reports endpoint
|
73
|
-
# 2. Process each delivery report
|
74
|
-
# 3. Confirm all processed delivery reports using the confirm delivery reports endpoint
|
75
|
-
# *Note: It is recommended to use the Webhooks feature to receive reply messages rather than
|
76
|
-
# polling the check delivery reports endpoint.*
|
77
|
-
def test_check_delivery_reports_1
|
78
|
-
|
79
|
-
# Perform the API call through the SDK function
|
80
|
-
result = self.class.controller.get_check_delivery_reports
|
81
|
-
|
82
|
-
# Test response code
|
83
|
-
assert_equal(@response_catcher.response.status_code, 200)
|
84
|
-
|
85
|
-
# Test headers
|
86
|
-
expected_headers = {}
|
87
|
-
expected_headers['content-type'] = nil
|
88
|
-
|
89
|
-
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
90
|
-
|
91
|
-
# Test whether the captured response is as we expected
|
92
|
-
assert_not_nil(result)
|
93
|
-
assert_true(@response_catcher.response.raw_body.index('{"delivery_reports":[') >= 0, "Must get our delivery reports")
|
94
|
-
end
|
95
|
-
|
96
|
-
# Make sure our SDK fails when passed an invalid account id
|
97
|
-
def test_check_delivery_reports_with_invalid_account
|
98
|
-
begin
|
99
|
-
# Perform the API call through the SDK function
|
100
|
-
self.class.controller.get_check_delivery_reports('INVALID ACCOUNT')
|
101
|
-
rescue APIException => api_exception
|
102
|
-
assert_equal('HTTP Response Not OK. {"message":"Invalid account \'INVALID ACCOUNT\' in header Account"}' + "\n",
|
103
|
-
api_exception.message,'Make sure we''ve got our error message')
|
104
|
-
# Test response code
|
105
|
-
assert_equal(@response_catcher.response.status_code, 403)
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
# Mark a delivery report as confirmed so it is no longer return in check delivery reports requests.
|
110
|
-
# The confirm delivery reports endpoint is intended to be used in conjunction with the check delivery
|
111
|
-
# reports endpoint to allow for robust processing of delivery reports. Once one or more delivery
|
112
|
-
# reports have been processed, they can then be confirmed using the confirm delivery reports endpoint so they
|
113
|
-
# are no longer returned in subsequent check delivery reports requests.
|
114
|
-
# The confirm delivery reports endpoint takes a list of delivery report IDs as follows:
|
115
|
-
# ```json
|
116
|
-
# {
|
117
|
-
# "delivery_report_ids": [
|
118
|
-
# "011dcead-6988-4ad6-a1c7-6b6c68ea628d",
|
119
|
-
# "3487b3fa-6586-4979-a233-2d1b095c7718",
|
120
|
-
# "ba28e94b-c83d-4759-98e7-ff9c7edb87a1"
|
121
|
-
# ]
|
122
|
-
# }
|
123
|
-
# ```
|
124
|
-
# Up to 100 delivery reports can be confirmed in a single confirm delivery reports request.
|
125
|
-
def test_confirm_delivery_reports_as_received_1
|
126
|
-
# Parameters for the API call
|
127
|
-
body = ConfirmDeliveryReportsAsReceivedRequest.from_hash(JSON.parse(
|
128
|
-
'{"delivery_report_ids":["011dcead-6988-4ad6-a1c7-6b6c68ea628d","3487b3fa-65'\
|
129
|
-
'86-4979-a233-2d1b095c7718","ba28e94b-c83d-4759-98e7-ff9c7edb87a1"]}'
|
130
|
-
))
|
131
|
-
|
132
|
-
# Perform the API call through the SDK function
|
133
|
-
self.class.controller.create_confirm_delivery_reports_as_received(body)
|
134
|
-
|
135
|
-
# Test response code
|
136
|
-
assert_equal(@response_catcher.response.status_code, 202)
|
137
|
-
|
138
|
-
# Test headers
|
139
|
-
expected_headers = {}
|
140
|
-
expected_headers['content-type'] = nil
|
141
|
-
|
142
|
-
assert(TestHelper.match_headers(expected_headers, @response_catcher.response.headers))
|
143
|
-
end
|
144
|
-
|
145
|
-
# Make sure our SDK fails when passed an invalid account id
|
146
|
-
def test_confirm_delivery_reports_as_received_with_invalid_account
|
147
|
-
begin
|
148
|
-
# Perform the API call through the SDK function
|
149
|
-
body = ConfirmDeliveryReportsAsReceivedRequest.from_hash(JSON.parse(
|
150
|
-
'{"delivery_report_ids":["011dcead-6988-4ad6-a1c7-6b6c68ea628d","3487b3fa-65'\
|
151
|
-
'86-4979-a233-2d1b095c7718","ba28e94b-c83d-4759-98e7-ff9c7edb87a1"]}'
|
152
|
-
))
|
153
|
-
|
154
|
-
# Perform the API call through the SDK function
|
155
|
-
self.class.controller.create_confirm_delivery_reports_as_received(body, 'INVALID ACCOUNT')
|
156
|
-
rescue APIException => api_exception
|
157
|
-
assert_equal('HTTP Response Not OK. {"message":"Invalid account \'INVALID ACCOUNT\' in header Account"}' + "\n",
|
158
|
-
api_exception.message,'Make sure we''ve got our error message')
|
159
|
-
# Test response code
|
160
|
-
assert_equal(@response_catcher.response.status_code, 403)
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
end
|