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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +240 -55
  4. data/lib/message_media_messages.rb +32 -18
  5. data/lib/message_media_messages/api_helper.rb +76 -9
  6. data/lib/message_media_messages/configuration.rb +8 -6
  7. data/lib/message_media_messages/controllers/base_controller.rb +13 -29
  8. data/lib/message_media_messages/controllers/delivery_reports_controller.rb +55 -100
  9. data/lib/message_media_messages/controllers/messages_controller.rb +162 -199
  10. data/lib/message_media_messages/controllers/replies_controller.rb +79 -123
  11. data/lib/message_media_messages/exceptions/api_exception.rb +5 -3
  12. data/lib/message_media_messages/exceptions/send_messages400_response_exception.rb +29 -0
  13. data/lib/message_media_messages/http/auth/auth_manager.rb +90 -0
  14. data/lib/message_media_messages/http/faraday_client.rb +10 -3
  15. data/lib/message_media_messages/http/http_call_back.rb +5 -3
  16. data/lib/message_media_messages/http/http_client.rb +29 -18
  17. data/lib/message_media_messages/http/http_context.rb +5 -3
  18. data/lib/message_media_messages/http/http_method_enum.rb +4 -2
  19. data/lib/message_media_messages/http/http_request.rb +13 -11
  20. data/lib/message_media_messages/http/http_response.rb +6 -4
  21. data/lib/message_media_messages/message_media_messages_client.rb +9 -6
  22. data/lib/message_media_messages/models/base_model.rb +4 -1
  23. data/lib/message_media_messages/models/cancel_scheduled_message_request.rb +7 -7
  24. data/lib/message_media_messages/models/check_delivery_reports_response.rb +15 -8
  25. data/lib/message_media_messages/models/check_replies_response.rb +15 -8
  26. data/lib/message_media_messages/models/confirm_delivery_reports_as_received_request.rb +5 -5
  27. data/lib/message_media_messages/models/{confirm_delivery_reports_as_received_request_11.rb → confirm_delivery_reports_as_received_request1.rb} +8 -8
  28. data/lib/message_media_messages/models/confirm_replies_as_received_request.rb +5 -5
  29. data/lib/message_media_messages/models/{confirm_replies_as_received_request_8.rb → confirm_replies_as_received_request1.rb} +8 -8
  30. data/lib/message_media_messages/models/delivery_report.rb +135 -0
  31. data/lib/message_media_messages/models/format1_enum.rb +20 -0
  32. data/lib/message_media_messages/models/format_enum.rb +20 -0
  33. data/lib/message_media_messages/models/get_message_status_response.rb +145 -0
  34. data/lib/message_media_messages/models/message.rb +166 -0
  35. data/lib/message_media_messages/models/reply.rb +112 -0
  36. data/lib/message_media_messages/models/send_messages_request.rb +14 -7
  37. data/lib/message_media_messages/models/send_messages_response.rb +14 -7
  38. data/lib/message_media_messages/models/source_number_type_enum.rb +21 -0
  39. data/lib/message_media_messages/models/status2_enum.rb +32 -0
  40. data/lib/message_media_messages/models/status_enum.rb +44 -0
  41. data/lib/message_media_messages/models/vendor_account_id.rb +44 -0
  42. metadata +18 -21
  43. data/lib/message_media_messages/http/auth/basic_auth.rb +0 -20
  44. data/lib/message_media_messages/http/auth/hmac_auth.rb +0 -54
  45. data/test/controllers/controller_test_base.rb +0 -33
  46. data/test/controllers/test_delivery_reports_controller.rb +0 -164
  47. data/test/controllers/test_messages_controller.rb +0 -166
  48. data/test/controllers/test_replies_controller.rb +0 -164
  49. data/test/http_response_catcher.rb +0 -16
  50. data/test/test_helper.rb +0 -79
@@ -1,19 +1,19 @@
1
- # This file was automatically generated for MessageMedia by APIMATIC v2.0
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 Object]
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
- @_hash = {}
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
- messages = hash['messages']
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
- # This file was automatically generated for MessageMedia by APIMATIC v2.0
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 Object]
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
- @_hash = {}
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
- messages = hash['messages']
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: 1.1.0
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: 2018-03-16 00:00:00.000000000 Z
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/http/auth/basic_auth.rb
119
- - lib/message_media_messages/http/auth/hmac_auth.rb
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/confirm_delivery_reports_as_received_request_11.rb
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/confirm_replies_as_received_request_8.rb
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
- - test/controllers/controller_test_base.rb
139
- - test/controllers/test_delivery_reports_controller.rb
140
- - test/controllers/test_messages_controller.rb
141
- - test/controllers/test_replies_controller.rb
142
- - test/http_response_catcher.rb
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