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,27 +1,29 @@
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
-
6
- Logging.logger.root.appenders = Logging.appenders.stdout
7
- Logging.logger.root.level = :info
8
-
9
7
  # All configuration including auth info and base URI for the API access
10
8
  # are configured in this class.
11
9
  class Configuration
12
10
  # The base Uri for API calls
13
- @base_uri = 'http://api.messagemedia.com'
11
+ @base_uri = 'https://api.messagemedia.com'
14
12
 
15
13
  # The username to use with basic authentication
14
+ # TODO: Set an appropriate value
16
15
  @basic_auth_user_name = 'TODO: Replace'
17
16
 
18
17
  # The password to use with basic authentication
18
+ # TODO: Set an appropriate value
19
19
  @basic_auth_password = 'TODO: Replace'
20
20
 
21
21
  # The username to use with HMAC authentication
22
+ # TODO: Set an appropriate value
22
23
  @hmac_auth_user_name = nil
23
24
 
24
25
  # The password to use with HMAC authentication
26
+ # TODO: Set an appropriate value
25
27
  @hmac_auth_password = nil
26
28
 
27
29
  # The attribute accessors for public properties.
@@ -1,8 +1,8 @@
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
- require 'message_media_messages/configuration.rb'
5
-
6
6
  module MessageMediaMessages
7
7
  # Base controller.
8
8
  class BaseController
@@ -13,11 +13,8 @@ module MessageMediaMessages
13
13
  @http_call_back = http_call_back
14
14
 
15
15
  @global_headers = {
16
- 'user-agent' => 'messagemedia-messages-ruby-sdk-1.0.0'
16
+ 'user-agent' => 'messagemedia-messages'
17
17
  }
18
-
19
- @logger = Logging.logger[self]
20
- @logger.info("Instantiated controller class.")
21
18
  end
22
19
 
23
20
  def validate_parameters(args)
@@ -28,46 +25,33 @@ module MessageMediaMessages
28
25
  end
29
26
  end
30
27
 
31
- def apply_authentication(request, url, body=nil)
32
- if Configuration.hmac_auth_user_name == nil or Configuration.hmac_auth_password == nil
33
- BasicAuth.apply(request)
34
- else
35
- HmacAuth.apply(request, url, body)
36
- end
37
- end
38
-
39
- def execute_request(request, binary: false, name: nil)
40
- @logger.info("Calling the on_before_request method of http_call_back for #{name}.") if @http_call_back
28
+ def execute_request(request, binary: false)
41
29
  @http_call_back.on_before_request(request) if @http_call_back
42
30
 
43
- @logger.info("Merging global headers with endpoint headers for #{name}.")
44
31
  APIHelper.clean_hash(request.headers)
45
32
  request.headers = @global_headers.clone.merge(request.headers)
46
33
 
47
- @logger.debug("Raw request for #{name} is: #{request.inspect}")
48
34
  response = if binary
49
35
  @http_client.execute_as_binary(request)
50
36
  else
51
37
  @http_client.execute_as_string(request)
52
38
  end
53
- @logger.debug("Raw response for #{name} is: #{response.inspect}")
54
- @logger.info("Wrapping request and response in a context object for #{name}.")
55
39
  context = HttpContext.new(request, response)
56
40
 
57
- @logger.info("Calling on_after_response method of http_call_back for #{name}.") if @http_call_back
58
41
  @http_call_back.on_after_response(context) if @http_call_back
59
42
 
60
43
  context
61
44
  end
62
45
 
63
- def add_account_header(headers, account_header_value)
64
- if headers != nil && account_header_value != nil
65
- headers["account"] = account_header_value
66
- end
67
- end
68
-
69
46
  def validate_response(context)
70
- raise APIException.new 'HTTP Response Not OK. ' + context.response.raw_body, context unless
47
+ if context.response.status_code == 400
48
+ raise APIException.new('Request was invalid',
49
+ context)
50
+ elsif context.response.status_code == 404
51
+ raise APIException.new('Message not found',
52
+ context)
53
+ end
54
+ raise APIException.new 'HTTP Response Not OK', context unless
71
55
  context.response.status_code.between?(200, 208) # [200,208] = HTTP OK
72
56
  end
73
57
  end
@@ -1,9 +1,10 @@
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
  # DeliveryReportsController
6
- # noinspection RubyResolve,RubyInstanceMethodNamingConvention,RubyStringKeysInHashInspection
7
8
  class DeliveryReportsController < BaseController
8
9
  @instance = DeliveryReportsController.new
9
10
 
@@ -95,48 +96,31 @@ module MessageMediaMessages
95
96
  # *Note: It is recommended to use the Webhooks feature to receive reply
96
97
  # messages rather than
97
98
  # polling the check delivery reports endpoint.*
98
- # @param [Object] account_header_value The account id to pass to the API
99
99
  # @return CheckDeliveryReportsResponse response from the API call
100
- def get_check_delivery_reports(account_header_value=nil)
101
- begin
102
- @logger.info("get_check_delivery_reports called.")
103
-
104
- request_url = '/v1/delivery_reports'
105
- # Prepare query url.
106
- @logger.info("Preparing query URL for get_check_delivery_reports.")
107
- query_builder = Configuration.base_uri.dup
108
- query_builder << request_url
109
- query_url = APIHelper.clean_url query_builder
110
-
111
- # Prepare headers.
112
- @logger.info("Preparing headers for get_check_delivery_reports.")
113
- headers = {
114
- 'accept' => 'application/json'
115
- }
116
-
117
- add_account_header(headers, account_header_value)
118
-
119
- # Prepare and execute HttpRequest.
120
- @logger.info('Preparing and executing HttpRequest for get_check_delivery_reports.')
121
- request = @http_client.get(
122
- query_url,
123
- headers: headers
124
- )
125
-
126
- apply_authentication(request, request_url)
127
-
128
- context = execute_request(request, name: 'get_check_delivery_reports')
129
- validate_response(context)
130
-
131
- # Return appropriate response type.
132
- @logger.info("Returning response for get_check_delivery_reports.")
133
- decoded = APIHelper.json_deserialize(context.response.raw_body)
134
- CheckDeliveryReportsResponse.from_hash(decoded)
135
-
136
- rescue Exception => e
137
- @logger.error(e)
138
- raise e
139
- end
100
+ def check_delivery_reports
101
+ # Prepare query url.
102
+ _path_url = '/v1/delivery_reports'
103
+ _query_builder = Configuration.base_uri.dup
104
+ _query_builder << _path_url
105
+ _query_url = APIHelper.clean_url _query_builder
106
+
107
+ # Prepare headers.
108
+ _headers = {
109
+ 'accept' => 'application/json'
110
+ }
111
+
112
+ # Prepare and execute HttpRequest.
113
+ _request = @http_client.get(
114
+ _query_url,
115
+ headers: _headers
116
+ )
117
+ AuthManager.apply(_request, _path_url)
118
+ _context = execute_request(_request)
119
+ validate_response(_context)
120
+
121
+ # Return appropriate response type.
122
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
123
+ CheckDeliveryReportsResponse.from_hash(decoded)
140
124
  end
141
125
 
142
126
  # Mark a delivery report as confirmed so it is no longer return in check
@@ -163,64 +147,35 @@ module MessageMediaMessages
163
147
  # reports request.
164
148
  # @param [ConfirmDeliveryReportsAsReceivedRequest] body Required parameter:
165
149
  # Example:
166
- # @param [Object] account_header_value The account id to pass to the API
167
150
  # @return Mixed response from the API call
168
- def create_confirm_delivery_reports_as_received(body, account_header_value=nil)
169
- begin
170
- @logger.info("create_confirm_delivery_reports_as_received called.")
171
-
172
- request_url = '/v1/delivery_reports/confirmed'
173
-
174
- # Prepare query url.
175
- @logger.info("Preparing query URL for create_confirm_delivery_reports_as_received.")
176
- query_builder = Configuration.base_uri.dup
177
- query_builder << request_url
178
- query_url = APIHelper.clean_url query_builder
179
-
180
- # Prepare headers.
181
- @logger.info("Preparing headers for create_confirm_delivery_reports_as_received.")
182
- headers = {
183
- 'accept' => 'application/json',
184
- 'content-type' => 'application/json; charset=utf-8'
185
- }
186
-
187
- add_account_header(headers, account_header_value)
188
-
189
- json_body = body.to_json
190
-
191
- # Prepare and execute HttpRequest.
192
- @logger.info('Preparing and executing HttpRequest for create_confirm_delivery_reports_as_received.')
193
- request = @http_client.post(
194
- query_url,
195
- headers: headers,
196
- parameters: json_body
197
- )
198
-
199
- apply_authentication(request, request_url, json_body)
200
-
201
- context = execute_request(request, name: 'create_confirm_delivery_reports_as_received')
202
-
203
- # Validate response against endpoint and global error codes.
204
- @logger.info("Validating response for create_confirm_delivery_reports_as_received.")
205
- if context.response.status_code == 400
206
- raise APIException.new(
207
- '',
208
- context
209
- )
210
- end
211
-
212
- validate_response(context)
213
-
214
- # Return appropriate response type.
215
- @logger.info("Returning response for create_confirm_delivery_reports_as_received.")
216
- return APIHelper.json_deserialize(context.response.raw_body) unless
217
- context.response.raw_body.nil? ||
218
- context.response.raw_body.to_s.strip.empty?
219
-
220
- rescue Exception => e
221
- @logger.error(e)
222
- raise e
223
- end
151
+ def confirm_delivery_reports_as_received(body)
152
+ # Prepare query url.
153
+ _path_url = '/v1/delivery_reports/confirmed'
154
+ _query_builder = Configuration.base_uri.dup
155
+ _query_builder << _path_url
156
+ _query_url = APIHelper.clean_url _query_builder
157
+
158
+ # Prepare headers.
159
+ _headers = {
160
+ 'accept' => 'application/json',
161
+ 'content-type' => 'application/json; charset=utf-8'
162
+ }
163
+
164
+ # Prepare and execute HttpRequest.
165
+ _request = @http_client.post(
166
+ _query_url,
167
+ headers: _headers,
168
+ parameters: body.to_json
169
+ )
170
+ AuthManager.apply(_request, _path_url, body.to_json)
171
+ _context = execute_request(_request)
172
+ validate_response(_context)
173
+
174
+ # Return appropriate response type.
175
+ decoded = APIHelper.json_deserialize(_context.response.raw_body) unless
176
+ _context.response.raw_body.nil? ||
177
+ _context.response.raw_body.to_s.strip.empty?
178
+ decoded
224
179
  end
225
180
  end
226
181
  end
@@ -1,9 +1,10 @@
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
  # MessagesController
6
- # noinspection RubyResolve,RubyInstanceMethodNamingConvention,RubyStringKeysInHashInspection
7
8
  class MessagesController < BaseController
8
9
  @instance = MessagesController.new
9
10
 
@@ -15,97 +16,6 @@ module MessageMediaMessages
15
16
  self.class.instance
16
17
  end
17
18
 
18
- # Cancel a scheduled message that has not yet been delivered.
19
- # A scheduled message can be cancelled by updating the status of a message
20
- # from ```scheduled```
21
- # to ```cancelled```. This is done by submitting a PUT request to the
22
- # messages endpoint using
23
- # the message ID as a parameter (the same endpoint used above to retrieve
24
- # the status of a message).
25
- # The body of the request simply needs to contain a ```status``` property
26
- # with the value set
27
- # to ```cancelled```.
28
- # ```json
29
- # {
30
- # "status": "cancelled"
31
- # }
32
- # ```
33
- # *Note: Only messages with a status of scheduled can be cancelled. If an
34
- # invalid or non existent
35
- # message ID parameter is specified in the request, then a HTTP 404 Not
36
- # Found response will be
37
- # returned*
38
- # @param [String] message_id Required parameter: Example:
39
- # @param [CancelScheduledMessageRequest] body Required parameter: Example:
40
- # @param [Object] account_header_value The account id to pass to the API
41
- # @return Mixed response from the API call
42
- def update_cancel_scheduled_message(message_id, body, account_header_value=nil)
43
- begin
44
- @logger.info("update_cancel_scheduled_message called.")
45
-
46
- request_url = '/v1/messages/{messageId}'
47
- request_url = APIHelper.append_url_with_template_parameters(
48
- request_url,
49
- 'messageId' => message_id
50
- )
51
-
52
- # Prepare query url.
53
- @logger.info("Preparing query URL for update_cancel_scheduled_message.")
54
- query_builder = Configuration.base_uri.dup
55
- query_builder << request_url
56
- query_url = APIHelper.clean_url query_builder
57
-
58
- # Prepare headers.
59
- @logger.info("Preparing headers for update_cancel_scheduled_message.")
60
- headers = {
61
- 'accept' => 'application/json',
62
- 'content-type' => 'application/json; charset=utf-8'
63
- }
64
-
65
- add_account_header(headers, account_header_value)
66
-
67
- json_body = body.to_json
68
-
69
- # Prepare and execute HttpRequest.
70
- @logger.info('Preparing and executing HttpRequest for update_cancel_scheduled_message.')
71
- request = @http_client.put(
72
- query_url,
73
- headers: headers,
74
- parameters: json_body
75
- )
76
-
77
- apply_authentication(request, request_url, json_body)
78
-
79
- context = execute_request(request, name: 'update_cancel_scheduled_message')
80
-
81
- # Validate response against endpoint and global error codes.
82
- @logger.info("Validating response for update_cancel_scheduled_message.")
83
- if context.response.status_code == 400
84
- raise APIException.new(
85
- '',
86
- context
87
- )
88
- elsif context.response.status_code == 404
89
- raise APIException.new(
90
- '',
91
- context
92
- )
93
- end
94
- validate_response(context)
95
-
96
- # Return appropriate response type.
97
- @logger.info("Returning response for update_cancel_scheduled_message.")
98
- decoded = APIHelper.json_deserialize(context.response.raw_body) unless
99
- context.response.raw_body.nil? ||
100
- context.response.raw_body.to_s.strip.empty?
101
- decoded
102
-
103
- rescue Exception => e
104
- @logger.error(e)
105
- raise e
106
- end
107
- end
108
-
109
19
  # Retrieve the current status of a message using the message ID returned in
110
20
  # the send messages end point.
111
21
  # A successful request to the get message status endpoint will return a
@@ -124,7 +34,7 @@ module MessageMediaMessages
124
34
  # "destination_number": "+61401760575",
125
35
  # "scheduled": "2016-11-03T11:49:02.807Z",
126
36
  # "source_number": "+61491570157",
127
- # "source_number_type": "INTERNATIONAL"
37
+ # "source_number_type": "INTERNATIONAL",
128
38
  # "message_expiry_timestamp": "2016-11-03T11:49:02.807Z",
129
39
  # "status": "enroute"
130
40
  # }
@@ -137,68 +47,47 @@ module MessageMediaMessages
137
47
  # the request, then
138
48
  # a HTTP 404 Not Found response will be returned*
139
49
  # @param [String] message_id Required parameter: Example:
140
- # @param [Object] account_header_value The account id to pass to the API
141
- # @return Mixed response from the API call
142
- def get_message_status(message_id, account_header_value=nil)
143
- begin
144
- @logger.info("get_message_status called.")
50
+ # @return GetMessageStatusResponse response from the API call
51
+ def get_message_status(message_id)
52
+ # Prepare query url.
53
+ _path_url = '/v1/messages/{messageId}'
54
+ _path_url = APIHelper.append_url_with_template_parameters(
55
+ _path_url,
56
+ 'messageId' => message_id
57
+ )
58
+ _query_builder = Configuration.base_uri.dup
59
+ _query_builder << _path_url
60
+ _query_url = APIHelper.clean_url _query_builder
145
61
 
146
- request_url = '/v1/messages/{messageId}'
147
- request_url = APIHelper.append_url_with_template_parameters(
148
- request_url,
149
- 'messageId' => message_id
150
- )
62
+ # Prepare headers.
63
+ _headers = {
64
+ 'accept' => 'application/json'
65
+ }
151
66
 
152
- # Prepare query url.
153
- @logger.info("Preparing query URL for get_message_status.")
154
- query_builder = Configuration.base_uri.dup
155
- query_builder << request_url
156
- query_url = APIHelper.clean_url query_builder
157
-
158
- # Prepare headers.
159
- @logger.info("Preparing headers for get_message_status.")
160
- headers = {
161
- 'accept' => 'application/json'
162
- }
67
+ # Prepare and execute HttpRequest.
68
+ _request = @http_client.get(
69
+ _query_url,
70
+ headers: _headers
71
+ )
72
+ AuthManager.apply(_request, _path_url)
73
+ _context = execute_request(_request)
163
74
 
164
- add_account_header(headers, account_header_value)
165
-
166
- # Prepare and execute HttpRequest.
167
- @logger.info('Preparing and executing HttpRequest for get_message_status.')
168
- request = @http_client.get(
169
- query_url,
170
- headers: headers
75
+ # Validate response against endpoint and global error codes.
76
+ if _context.response.status_code == 404
77
+ raise APIException.new(
78
+ 'Resource not found',
79
+ _context
171
80
  )
172
-
173
- apply_authentication(request, request_url)
174
-
175
- context = execute_request(request, name: 'get_message_status')
176
-
177
- # Validate response against endpoint and global error codes.
178
- @logger.info("Validating response for get_message_status.")
179
- if context.response.status_code == 404
180
- raise APIException.new(
181
- '',
182
- context
183
- )
184
- end
185
- validate_response(context)
186
-
187
- # Return appropriate response type.
188
- @logger.info("Returning response for get_message_status.")
189
- decoded = APIHelper.json_deserialize(context.response.raw_body) unless
190
- context.response.raw_body.nil? ||
191
- context.response.raw_body.to_s.strip.empty?
192
- decoded
193
-
194
- rescue Exception => e
195
- @logger.error(e)
196
- raise e
197
81
  end
82
+ validate_response(_context)
83
+
84
+ # Return appropriate response type.
85
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
86
+ GetMessageStatusResponse.from_hash(decoded)
198
87
  end
199
88
 
200
- # Submit one or more (up to 100 per request) SMS or text to voice messages
201
- # for delivery.
89
+ # Submit one or more (up to 100 per request) SMS, MMS or text to voice
90
+ # messages for delivery.
202
91
  # The most basic message has the following structure:
203
92
  # ```json
204
93
  # {
@@ -238,7 +127,7 @@ module MessageMediaMessages
238
127
  # http://en.wikipedia.org/wiki/E.164.
239
128
  # A destination number is required.
240
129
  # - ```format``` The format specifies which format the message will be sent
241
- # as, ```SMS``` (text message)
130
+ # as, ```SMS``` (text message), ```MMS``` (multimedia message)
242
131
  # or ```TTS``` (text to speech). With ```TTS``` format, we will call the
243
132
  # destination number and read out the
244
133
  # message using a computer generated voice. Specifying a format is
@@ -247,10 +136,16 @@ module MessageMediaMessages
247
136
  # this will be the number that
248
137
  # the message appears from on the handset. By default this feature is
249
138
  # _not_ available and will be ignored
250
- # in the request. Please contact <support@messagemeda.com> for more
139
+ # in the request. Please contact <support@messagemedia.com> for more
251
140
  # information. Specifying a source
252
141
  # number is optional and a by default a source number will be assigned to
253
142
  # the message.
143
+ # - ```media``` The media is used to specify the url of the media file that
144
+ # you are trying to send. Supported file formats include png, jpeg and gif.
145
+ # ```format``` parameter must be set to ```MMS``` for this to work.
146
+ # - ```subject``` The subject field is used to denote subject of the MMS
147
+ # message and has a maximum size of 64 characters long. Specifying a subject
148
+ # is optional.
254
149
  # - ```source_number_type``` If a source number is specified, the type of
255
150
  # source number may also be
256
151
  # specified. This is recommended when using a source address type that is
@@ -303,61 +198,129 @@ module MessageMediaMessages
303
198
  # valid for the request to be successful.
304
199
  # If any messages in the request are invalid, no messages will be sent.*
305
200
  # @param [SendMessagesRequest] body Required parameter: Example:
306
- # @param [Object] account_header_value The account id to pass to the API
307
201
  # @return SendMessagesResponse response from the API call
308
- def create_send_messages(body, account_header_value=nil)
309
- begin
310
- @logger.info("create_send_messages called.")
202
+ def send_messages(body)
203
+ # Prepare query url.
204
+ _path_url = '/v1/messages'
205
+ _query_builder = Configuration.base_uri.dup
206
+ _query_builder << _path_url
207
+ _query_url = APIHelper.clean_url _query_builder
311
208
 
312
- request_url = '/v1/messages'
313
- # Prepare query url.
314
- @logger.info("Preparing query URL for create_send_messages.")
315
- query_builder = Configuration.base_uri.dup
316
- query_builder << request_url
317
- query_url = APIHelper.clean_url query_builder
318
-
319
- # Prepare headers.
320
- @logger.info("Preparing headers for create_send_messages.")
321
- headers = {
322
- 'accept' => 'application/json',
323
- 'content-type' => 'application/json; charset=utf-8'
324
- }
209
+ # Prepare headers.
210
+ _headers = {
211
+ 'accept' => 'application/json',
212
+ 'content-type' => 'application/json; charset=utf-8'
213
+ }
325
214
 
326
- add_account_header(headers, account_header_value)
215
+ # Prepare and execute HttpRequest.
216
+ _request = @http_client.post(
217
+ _query_url,
218
+ headers: _headers,
219
+ parameters: body.to_json
220
+ )
221
+ AuthManager.apply(_request, _path_url, body.to_json)
222
+ _context = execute_request(_request)
327
223
 
328
- json_body = body.to_json
329
-
330
- # Prepare and execute HttpRequest.
331
- @logger.info('Preparing and executing HttpRequest for create_send_messages.')
332
- request = @http_client.post(
333
- query_url,
334
- headers: headers,
335
- parameters: json_body
224
+ # Validate response against endpoint and global error codes.
225
+ if _context.response.status_code == 400
226
+ raise SendMessages400ResponseException.new(
227
+ 'Unexpected error in API call. See HTTP response body for details.',
228
+ _context
336
229
  )
230
+ end
231
+ validate_response(_context)
232
+
233
+ # Return appropriate response type.
234
+ decoded = APIHelper.json_deserialize(_context.response.raw_body)
235
+ SendMessagesResponse.from_hash(decoded)
236
+ end
237
+
238
+ # Cancel a scheduled message that has not yet been delivered.
239
+ # A scheduled message can be cancelled by updating the status of a message
240
+ # from ```scheduled```
241
+ # to ```cancelled```. This is done by submitting a PUT request to the
242
+ # messages endpoint using
243
+ # the message ID as a parameter (the same endpoint used above to retrieve
244
+ # the status of a message).
245
+ # The body of the request simply needs to contain a ```status``` property
246
+ # with the value set
247
+ # to ```cancelled```.
248
+ # ```json
249
+ # {
250
+ # "status": "cancelled"
251
+ # }
252
+ # ```
253
+ # *Note: Only messages with a status of scheduled can be cancelled. If an
254
+ # invalid or non existent
255
+ # message ID parameter is specified in the request, then a HTTP 404 Not
256
+ # Found response will be
257
+ # returned*
258
+ # @param [String] message_id Required parameter: Example:
259
+ # @param [CancelScheduledMessageRequest] body Required parameter: Example:
260
+ # @return Mixed response from the API call
261
+ def cancel_scheduled_message(message_id,
262
+ body)
263
+ # Prepare query url.
264
+ _path_url = '/v1/messages/{messageId}'
265
+ _path_url = APIHelper.append_url_with_template_parameters(
266
+ _path_url,
267
+ 'messageId' => message_id
268
+ )
269
+ _query_builder = Configuration.base_uri.dup
270
+ _query_builder << _path_url
271
+ _query_url = APIHelper.clean_url _query_builder
337
272
 
338
- apply_authentication(request, request_url, json_body)
273
+ # Prepare headers.
274
+ _headers = {
275
+ 'accept' => 'application/json',
276
+ 'content-type' => 'application/json; charset=utf-8'
277
+ }
339
278
 
340
- context = execute_request(request, name: 'create_send_messages')
341
-
342
- # Validate response against endpoint and global error codes.
343
- @logger.info("Validating response for create_send_messages.")
344
- if context.response.status_code == 400
345
- raise APIException.new(
346
- '',
347
- context
348
- )
349
- end
350
- validate_response(context)
351
-
352
- # Return appropriate response type.
353
- @logger.info("Returning response for create_send_messages.")
354
- decoded = APIHelper.json_deserialize(context.response.raw_body)
355
- SendMessagesResponse.from_hash(decoded)
279
+ # Prepare and execute HttpRequest.
280
+ _request = @http_client.put(
281
+ _query_url,
282
+ headers: _headers,
283
+ parameters: body.to_json
284
+ )
285
+ AuthManager.apply(_request, _path_url, body.to_json)
286
+ _context = execute_request(_request)
287
+ validate_response(_context)
356
288
 
357
- rescue Exception => e
358
- @logger.error(e)
359
- raise e
360
- end
289
+ # Return appropriate response type.
290
+ decoded = APIHelper.json_deserialize(_context.response.raw_body) unless
291
+ _context.response.raw_body.nil? ||
292
+ _context.response.raw_body.to_s.strip.empty?
293
+ decoded
294
+ end
295
+
296
+ # TODO: type endpoint description here
297
+ # @return Mixed response from the API call
298
+ def check_credits_remaining
299
+ # Prepare query url.
300
+ _path_url = '/v1/messaging/credits'
301
+ _query_builder = Configuration.base_uri.dup
302
+ _query_builder << _path_url
303
+ _query_url = APIHelper.clean_url _query_builder
304
+
305
+ # Prepare headers.
306
+ _headers = {
307
+ 'accept' => 'application/json'
308
+ }
309
+
310
+ # Prepare and execute HttpRequest.
311
+ _request = @http_client.get(
312
+ _query_url,
313
+ headers: _headers
314
+ )
315
+ AuthManager.apply(_request, _path_url)
316
+ _context = execute_request(_request)
317
+ validate_response(_context)
318
+
319
+ # Return appropriate response type.
320
+ decoded = APIHelper.json_deserialize(_context.response.raw_body) unless
321
+ _context.response.raw_body.nil? ||
322
+ _context.response.raw_body.to_s.strip.empty?
323
+ decoded
361
324
  end
362
325
  end
363
- end
326
+ end