messagemedia_messages_sdk 1.0.0 → 1.1.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.
@@ -18,6 +18,7 @@ require_relative 'message_media_messages/http/http_response.rb'
18
18
  require_relative 'message_media_messages/http/http_context.rb'
19
19
  require_relative 'message_media_messages/http/faraday_client.rb'
20
20
  require_relative 'message_media_messages/http/auth/basic_auth.rb'
21
+ require_relative 'message_media_messages/http/auth/hmac_auth.rb'
21
22
 
22
23
  # Models
23
24
  require_relative 'message_media_messages/models/base_model.rb'
@@ -45,6 +46,5 @@ require_relative 'message_media_messages/configuration.rb'
45
46
  # Controllers
46
47
  require_relative 'message_media_messages/controllers/base_controller.rb'
47
48
  require_relative 'message_media_messages/controllers/messages_controller.rb'
48
- require_relative 'message_media_messages/controllers' \
49
- '/delivery_reports_controller.rb'
49
+ require_relative 'message_media_messages/controllers/delivery_reports_controller.rb'
50
50
  require_relative 'message_media_messages/controllers/replies_controller.rb'
@@ -3,6 +3,7 @@
3
3
 
4
4
  module MessageMediaMessages
5
5
  # API utility class
6
+ # noinspection RubyClassMethodNamingConvention
6
7
  class APIHelper
7
8
  # Serializes an array parameter (creates key value pairs).
8
9
  # @param [String] The name of the parameter.
@@ -41,8 +42,6 @@ module MessageMediaMessages
41
42
 
42
43
  # Iterate and append parameters.
43
44
  parameters.each do |key, value|
44
- replace_value = ''
45
-
46
45
  if value.nil?
47
46
  replace_value = ''
48
47
  elsif value.instance_of? Array
@@ -10,7 +10,7 @@ module MessageMediaMessages
10
10
  # are configured in this class.
11
11
  class Configuration
12
12
  # The base Uri for API calls
13
- @base_uri = 'https://api.messagemedia.com'
13
+ @base_uri = 'http://api.messagemedia.com'
14
14
 
15
15
  # The username to use with basic authentication
16
16
  @basic_auth_user_name = 'TODO: Replace'
@@ -18,12 +18,20 @@ module MessageMediaMessages
18
18
  # The password to use with basic authentication
19
19
  @basic_auth_password = 'TODO: Replace'
20
20
 
21
+ # The username to use with HMAC authentication
22
+ @hmac_auth_user_name = nil
23
+
24
+ # The password to use with HMAC authentication
25
+ @hmac_auth_password = nil
26
+
21
27
  # The attribute accessors for public properties.
22
28
  class << self
23
29
  attr_accessor :array_serialization
24
30
  attr_accessor :base_uri
25
31
  attr_accessor :basic_auth_user_name
26
32
  attr_accessor :basic_auth_password
33
+ attr_accessor :hmac_auth_user_name
34
+ attr_accessor :hmac_auth_password
27
35
  end
28
36
  end
29
37
  end
@@ -1,6 +1,8 @@
1
1
  # This file was automatically generated for MessageMedia by APIMATIC v2.0
2
2
  # ( https://apimatic.io ).
3
3
 
4
+ require 'message_media_messages/configuration.rb'
5
+
4
6
  module MessageMediaMessages
5
7
  # Base controller.
6
8
  class BaseController
@@ -13,6 +15,7 @@ module MessageMediaMessages
13
15
  @global_headers = {
14
16
  'user-agent' => 'messagemedia-messages-ruby-sdk-1.0.0'
15
17
  }
18
+
16
19
  @logger = Logging.logger[self]
17
20
  @logger.info("Instantiated controller class.")
18
21
  end
@@ -25,6 +28,14 @@ module MessageMediaMessages
25
28
  end
26
29
  end
27
30
 
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
+
28
39
  def execute_request(request, binary: false, name: nil)
29
40
  @logger.info("Calling the on_before_request method of http_call_back for #{name}.") if @http_call_back
30
41
  @http_call_back.on_before_request(request) if @http_call_back
@@ -49,8 +60,14 @@ module MessageMediaMessages
49
60
  context
50
61
  end
51
62
 
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
+
52
69
  def validate_response(context)
53
- raise APIException.new 'HTTP Response Not OK', context unless
70
+ raise APIException.new 'HTTP Response Not OK. ' + context.response.raw_body, context unless
54
71
  context.response.status_code.between?(200, 208) # [200,208] = HTTP OK
55
72
  end
56
73
  end
@@ -3,6 +3,7 @@
3
3
 
4
4
  module MessageMediaMessages
5
5
  # DeliveryReportsController
6
+ # noinspection RubyResolve,RubyInstanceMethodNamingConvention,RubyStringKeysInHashInspection
6
7
  class DeliveryReportsController < BaseController
7
8
  @instance = DeliveryReportsController.new
8
9
 
@@ -94,35 +95,42 @@ module MessageMediaMessages
94
95
  # *Note: It is recommended to use the Webhooks feature to receive reply
95
96
  # messages rather than
96
97
  # polling the check delivery reports endpoint.*
98
+ # @param [Object] account_header_value The account id to pass to the API
97
99
  # @return CheckDeliveryReportsResponse response from the API call
98
- def get_check_delivery_reports
100
+ def get_check_delivery_reports(account_header_value=nil)
99
101
  begin
100
102
  @logger.info("get_check_delivery_reports called.")
103
+
104
+ request_url = '/v1/delivery_reports'
101
105
  # Prepare query url.
102
106
  @logger.info("Preparing query URL for get_check_delivery_reports.")
103
- _query_builder = Configuration.base_uri.dup
104
- _query_builder << '/v1/delivery_reports'
105
- _query_url = APIHelper.clean_url _query_builder
107
+ query_builder = Configuration.base_uri.dup
108
+ query_builder << request_url
109
+ query_url = APIHelper.clean_url query_builder
106
110
 
107
111
  # Prepare headers.
108
112
  @logger.info("Preparing headers for get_check_delivery_reports.")
109
- _headers = {
113
+ headers = {
110
114
  'accept' => 'application/json'
111
115
  }
112
-
116
+
117
+ add_account_header(headers, account_header_value)
118
+
113
119
  # Prepare and execute HttpRequest.
114
120
  @logger.info('Preparing and executing HttpRequest for get_check_delivery_reports.')
115
- _request = @http_client.get(
116
- _query_url,
117
- headers: _headers
121
+ request = @http_client.get(
122
+ query_url,
123
+ headers: headers
118
124
  )
119
- BasicAuth.apply(_request)
120
- _context = execute_request(_request, name: 'get_check_delivery_reports')
121
- validate_response(_context)
125
+
126
+ apply_authentication(request, request_url)
127
+
128
+ context = execute_request(request, name: 'get_check_delivery_reports')
129
+ validate_response(context)
122
130
 
123
131
  # Return appropriate response type.
124
132
  @logger.info("Returning response for get_check_delivery_reports.")
125
- decoded = APIHelper.json_deserialize(_context.response.raw_body)
133
+ decoded = APIHelper.json_deserialize(context.response.raw_body)
126
134
  CheckDeliveryReportsResponse.from_hash(decoded)
127
135
 
128
136
  rescue Exception => e
@@ -155,49 +163,59 @@ module MessageMediaMessages
155
163
  # reports request.
156
164
  # @param [ConfirmDeliveryReportsAsReceivedRequest] body Required parameter:
157
165
  # Example:
166
+ # @param [Object] account_header_value The account id to pass to the API
158
167
  # @return Mixed response from the API call
159
- def create_confirm_delivery_reports_as_received(body)
168
+ def create_confirm_delivery_reports_as_received(body, account_header_value=nil)
160
169
  begin
161
170
  @logger.info("create_confirm_delivery_reports_as_received called.")
171
+
172
+ request_url = '/v1/delivery_reports/confirmed'
173
+
162
174
  # Prepare query url.
163
175
  @logger.info("Preparing query URL for create_confirm_delivery_reports_as_received.")
164
- _query_builder = Configuration.base_uri.dup
165
- _query_builder << '/v1/delivery_reports/confirmed'
166
- _query_url = APIHelper.clean_url _query_builder
176
+ query_builder = Configuration.base_uri.dup
177
+ query_builder << request_url
178
+ query_url = APIHelper.clean_url query_builder
167
179
 
168
180
  # Prepare headers.
169
181
  @logger.info("Preparing headers for create_confirm_delivery_reports_as_received.")
170
- _headers = {
182
+ headers = {
171
183
  'accept' => 'application/json',
172
184
  'content-type' => 'application/json; charset=utf-8'
173
185
  }
174
-
186
+
187
+ add_account_header(headers, account_header_value)
188
+
189
+ json_body = body.to_json
190
+
175
191
  # Prepare and execute HttpRequest.
176
192
  @logger.info('Preparing and executing HttpRequest for create_confirm_delivery_reports_as_received.')
177
- _request = @http_client.post(
178
- _query_url,
179
- headers: _headers,
180
- parameters: body.to_json
193
+ request = @http_client.post(
194
+ query_url,
195
+ headers: headers,
196
+ parameters: json_body
181
197
  )
182
- BasicAuth.apply(_request)
183
- _context = execute_request(_request, name: 'create_confirm_delivery_reports_as_received')
198
+
199
+ apply_authentication(request, request_url, json_body)
200
+
201
+ context = execute_request(request, name: 'create_confirm_delivery_reports_as_received')
184
202
 
185
203
  # Validate response against endpoint and global error codes.
186
204
  @logger.info("Validating response for create_confirm_delivery_reports_as_received.")
187
- if _context.response.status_code == 400
205
+ if context.response.status_code == 400
188
206
  raise APIException.new(
189
207
  '',
190
- _context
208
+ context
191
209
  )
192
210
  end
193
- validate_response(_context)
211
+
212
+ validate_response(context)
194
213
 
195
214
  # Return appropriate response type.
196
215
  @logger.info("Returning response for create_confirm_delivery_reports_as_received.")
197
- decoded = APIHelper.json_deserialize(_context.response.raw_body) unless
198
- _context.response.raw_body.nil? ||
199
- _context.response.raw_body.to_s.strip.empty?
200
- decoded
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?
201
219
 
202
220
  rescue Exception => e
203
221
  @logger.error(e)
@@ -3,6 +3,7 @@
3
3
 
4
4
  module MessageMediaMessages
5
5
  # MessagesController
6
+ # noinspection RubyResolve,RubyInstanceMethodNamingConvention,RubyStringKeysInHashInspection
6
7
  class MessagesController < BaseController
7
8
  @instance = MessagesController.new
8
9
 
@@ -36,58 +37,67 @@ module MessageMediaMessages
36
37
  # returned*
37
38
  # @param [String] message_id Required parameter: Example:
38
39
  # @param [CancelScheduledMessageRequest] body Required parameter: Example:
40
+ # @param [Object] account_header_value The account id to pass to the API
39
41
  # @return Mixed response from the API call
40
- def update_cancel_scheduled_message(message_id,
41
- body)
42
+ def update_cancel_scheduled_message(message_id, body, account_header_value=nil)
42
43
  begin
43
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
+
44
52
  # Prepare query url.
45
53
  @logger.info("Preparing query URL for update_cancel_scheduled_message.")
46
- _query_builder = Configuration.base_uri.dup
47
- _query_builder << '/v1/messages/{messageId}'
48
- _query_builder = APIHelper.append_url_with_template_parameters(
49
- _query_builder,
50
- 'messageId' => message_id
51
- )
52
- _query_url = APIHelper.clean_url _query_builder
53
-
54
+ query_builder = Configuration.base_uri.dup
55
+ query_builder << request_url
56
+ query_url = APIHelper.clean_url query_builder
57
+
54
58
  # Prepare headers.
55
59
  @logger.info("Preparing headers for update_cancel_scheduled_message.")
56
- _headers = {
60
+ headers = {
57
61
  'accept' => 'application/json',
58
62
  'content-type' => 'application/json; charset=utf-8'
59
63
  }
60
-
64
+
65
+ add_account_header(headers, account_header_value)
66
+
67
+ json_body = body.to_json
68
+
61
69
  # Prepare and execute HttpRequest.
62
70
  @logger.info('Preparing and executing HttpRequest for update_cancel_scheduled_message.')
63
- _request = @http_client.put(
64
- _query_url,
65
- headers: _headers,
66
- parameters: body.to_json
71
+ request = @http_client.put(
72
+ query_url,
73
+ headers: headers,
74
+ parameters: json_body
67
75
  )
68
- BasicAuth.apply(_request)
69
- _context = execute_request(_request, name: 'update_cancel_scheduled_message')
70
-
76
+
77
+ apply_authentication(request, request_url, json_body)
78
+
79
+ context = execute_request(request, name: 'update_cancel_scheduled_message')
80
+
71
81
  # Validate response against endpoint and global error codes.
72
82
  @logger.info("Validating response for update_cancel_scheduled_message.")
73
- if _context.response.status_code == 400
83
+ if context.response.status_code == 400
74
84
  raise APIException.new(
75
85
  '',
76
- _context
86
+ context
77
87
  )
78
- elsif _context.response.status_code == 404
88
+ elsif context.response.status_code == 404
79
89
  raise APIException.new(
80
90
  '',
81
- _context
91
+ context
82
92
  )
83
93
  end
84
- validate_response(_context)
85
-
94
+ validate_response(context)
95
+
86
96
  # Return appropriate response type.
87
97
  @logger.info("Returning response for update_cancel_scheduled_message.")
88
- decoded = APIHelper.json_deserialize(_context.response.raw_body) unless
89
- _context.response.raw_body.nil? ||
90
- _context.response.raw_body.to_s.strip.empty?
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?
91
101
  decoded
92
102
 
93
103
  rescue Exception => e
@@ -127,50 +137,58 @@ module MessageMediaMessages
127
137
  # the request, then
128
138
  # a HTTP 404 Not Found response will be returned*
129
139
  # @param [String] message_id Required parameter: Example:
140
+ # @param [Object] account_header_value The account id to pass to the API
130
141
  # @return Mixed response from the API call
131
- def get_message_status(message_id)
142
+ def get_message_status(message_id, account_header_value=nil)
132
143
  begin
133
144
  @logger.info("get_message_status called.")
145
+
146
+ request_url = '/v1/messages/{messageId}'
147
+ request_url = APIHelper.append_url_with_template_parameters(
148
+ request_url,
149
+ 'messageId' => message_id
150
+ )
151
+
134
152
  # Prepare query url.
135
153
  @logger.info("Preparing query URL for get_message_status.")
136
- _query_builder = Configuration.base_uri.dup
137
- _query_builder << '/v1/messages/{messageId}'
138
- _query_builder = APIHelper.append_url_with_template_parameters(
139
- _query_builder,
140
- 'messageId' => message_id
141
- )
142
- _query_url = APIHelper.clean_url _query_builder
154
+ query_builder = Configuration.base_uri.dup
155
+ query_builder << request_url
156
+ query_url = APIHelper.clean_url query_builder
143
157
 
144
158
  # Prepare headers.
145
159
  @logger.info("Preparing headers for get_message_status.")
146
- _headers = {
160
+ headers = {
147
161
  'accept' => 'application/json'
148
162
  }
149
-
163
+
164
+ add_account_header(headers, account_header_value)
165
+
150
166
  # Prepare and execute HttpRequest.
151
167
  @logger.info('Preparing and executing HttpRequest for get_message_status.')
152
- _request = @http_client.get(
153
- _query_url,
154
- headers: _headers
168
+ request = @http_client.get(
169
+ query_url,
170
+ headers: headers
155
171
  )
156
- BasicAuth.apply(_request)
157
- _context = execute_request(_request, name: 'get_message_status')
172
+
173
+ apply_authentication(request, request_url)
174
+
175
+ context = execute_request(request, name: 'get_message_status')
158
176
 
159
177
  # Validate response against endpoint and global error codes.
160
178
  @logger.info("Validating response for get_message_status.")
161
- if _context.response.status_code == 404
179
+ if context.response.status_code == 404
162
180
  raise APIException.new(
163
181
  '',
164
- _context
182
+ context
165
183
  )
166
184
  end
167
- validate_response(_context)
185
+ validate_response(context)
168
186
 
169
187
  # Return appropriate response type.
170
188
  @logger.info("Returning response for get_message_status.")
171
- decoded = APIHelper.json_deserialize(_context.response.raw_body) unless
172
- _context.response.raw_body.nil? ||
173
- _context.response.raw_body.to_s.strip.empty?
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?
174
192
  decoded
175
193
 
176
194
  rescue Exception => e
@@ -285,46 +303,55 @@ module MessageMediaMessages
285
303
  # valid for the request to be successful.
286
304
  # If any messages in the request are invalid, no messages will be sent.*
287
305
  # @param [SendMessagesRequest] body Required parameter: Example:
306
+ # @param [Object] account_header_value The account id to pass to the API
288
307
  # @return SendMessagesResponse response from the API call
289
- def create_send_messages(body)
308
+ def create_send_messages(body, account_header_value=nil)
290
309
  begin
291
310
  @logger.info("create_send_messages called.")
311
+
312
+ request_url = '/v1/messages'
292
313
  # Prepare query url.
293
314
  @logger.info("Preparing query URL for create_send_messages.")
294
- _query_builder = Configuration.base_uri.dup
295
- _query_builder << '/v1/messages'
296
- _query_url = APIHelper.clean_url _query_builder
315
+ query_builder = Configuration.base_uri.dup
316
+ query_builder << request_url
317
+ query_url = APIHelper.clean_url query_builder
297
318
 
298
319
  # Prepare headers.
299
320
  @logger.info("Preparing headers for create_send_messages.")
300
- _headers = {
321
+ headers = {
301
322
  'accept' => 'application/json',
302
323
  'content-type' => 'application/json; charset=utf-8'
303
324
  }
304
-
325
+
326
+ add_account_header(headers, account_header_value)
327
+
328
+ json_body = body.to_json
329
+
305
330
  # Prepare and execute HttpRequest.
306
331
  @logger.info('Preparing and executing HttpRequest for create_send_messages.')
307
- _request = @http_client.post(
308
- _query_url,
309
- headers: _headers,
310
- parameters: body.to_json
332
+ request = @http_client.post(
333
+ query_url,
334
+ headers: headers,
335
+ parameters: json_body
311
336
  )
312
- BasicAuth.apply(_request)
313
- _context = execute_request(_request, name: 'create_send_messages')
337
+
338
+ apply_authentication(request, request_url, json_body)
339
+
340
+ context = execute_request(request, name: 'create_send_messages')
314
341
 
315
342
  # Validate response against endpoint and global error codes.
316
343
  @logger.info("Validating response for create_send_messages.")
317
- if _context.response.status_code == 400
344
+ if context.response.status_code == 400
318
345
  raise APIException.new(
319
346
  '',
320
- _context
347
+ context
321
348
  )
322
349
  end
323
- validate_response(_context)
350
+ validate_response(context)
324
351
 
325
352
  # Return appropriate response type.
326
353
  @logger.info("Returning response for create_send_messages.")
327
- decoded = APIHelper.json_deserialize(_context.response.raw_body)
354
+ decoded = APIHelper.json_deserialize(context.response.raw_body)
328
355
  SendMessagesResponse.from_hash(decoded)
329
356
 
330
357
  rescue Exception => e
@@ -333,4 +360,4 @@ module MessageMediaMessages
333
360
  end
334
361
  end
335
362
  end
336
- end
363
+ end