messagemedia_messages_sdk 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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