messagemedia_messages_sdk 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 64507452df46cd3053f21a48c11d2de7a73a1e75
4
- data.tar.gz: bcef3fa3ac201bd1873b3114dd7a3294de9d7001
3
+ metadata.gz: c1967fd352134b073366c5ebcc98c1fb88800fe5
4
+ data.tar.gz: 3c457dc2d431cb3f3ff1e3d41a824ff3069233c5
5
5
  SHA512:
6
- metadata.gz: 208053caf2e5f80b12ccd4e8ca814dce587954e2d1a614036a6cb80a568814324da33c4806b16ea0ea671071338a05176e784c651e188d945e859e49693f0123
7
- data.tar.gz: adea3750c6ea3f266bc46d7a3104417f8a9e7f6a08c17600dd594945f1150f6f16086716d93ab78d19cc4bf75db2314fc2c5bef496d54cf76dcdf7597e14abb2
6
+ metadata.gz: '089c61c24350ad64f69e0d035187e4ad43311299b368d72c2e80b51ebf269394dc19ba02f7ad6b94afbadc1af420e6c2096b8a61e323991e4c4c378e80296cd4'
7
+ data.tar.gz: 1630fd4caa437af32a658d1b72a5250e3df0c108a63dc912971eef0239ec31095581d2daa82e7133a9fea653623f2f16eef31de612996fe284ea320aa3cc61b7
data/LICENSE CHANGED
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright [yyyy] [name of copyright owner]
189
+ Copyright 2018 MessageMedia
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
data/README.md CHANGED
@@ -1,108 +1,293 @@
1
+
1
2
  # MessageMedia Messages Ruby SDK
2
- [![Travis Build Status](https://api.travis-ci.org/messagemedia/messages-ruby-sdk.svg?branch=master)](https://travis-ci.org/messagemedia/messages-ruby-sdk)
3
- [![gem](https://img.shields.io/badge/gem-v1.1.0-red.svg)](https://rubygems.org/gems/messagemedia_messages_sdk)
3
+ [![Pull Requests Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com)
4
+ [![HitCount](http://hits.dwyl.io/messagemedia/messages-ruby-sdk.svg)](http://hits.dwyl.io/messagemedia/messages-ruby-sdk)
5
+ [![gem](https://badge.fury.io/rb/messagemedia_messages_sdk.svg)](https://rubygems.org/gems/messagemedia_messages_sdk)
4
6
 
5
7
  The MessageMedia Messages API provides a number of endpoints for building powerful two-way messaging applications.
6
8
 
7
- ![Alt Text](https://media.giphy.com/media/l0Exov2QmxF5Xwjkc/giphy.gif)
9
+ ![Isometric](https://i.imgur.com/jJeHwf5.png)
10
+
11
+ ## Table of Contents
12
+ * [Authentication](#closed_lock_with_key-authentication)
13
+ * [Errors](#interrobang-errors)
14
+ * [Information](#newspaper-information)
15
+ * [Slack and Mailing List](#slack-and-mailing-list)
16
+ * [Bug Reports](#bug-reports)
17
+ * [Contributing](#contributing)
18
+ * [Installation](#star-installation)
19
+ * [Get Started](#clapper-get-started)
20
+ * [API Documentation](#closed_book-api-documentation)
21
+ * [Need help?](#confused-need-help)
22
+ * [License](#page_with_curl-license)
23
+
24
+ ## :closed_lock_with_key: Authentication
25
+
26
+ Authentication is done via API keys. Sign up at https://developers.messagemedia.com/register/ to get your API keys.
27
+
28
+ Requests are authenticated using HTTP Basic Auth or HMAC. For Basic Auth, your API key will be basicAuthUserName and API secret will be basicAuthPassword. For HMAC, your API key will be hmacAuthUserName and API secret will be hmacAuthPassword. This is demonstrated in the [Send an SMS example](https://github.com/messagemedia/messages-ruby-sdk/blob/master/README.md#send-an-sms) below.
29
+
30
+ ## :interrobang: Errors
31
+
32
+ Our API returns standard HTTP success or error status codes. For errors, we will also include extra information about what went wrong encoded in the response as JSON. The most common status codes are listed below.
33
+
34
+ #### HTTP Status Codes
35
+
36
+ | Code | Title | Description |
37
+ |-----------|-------------|-------------|
38
+ | 400 | Invalid Request | The request was invalid |
39
+ | 401 | Unauthorized | Your API credentials are invalid |
40
+ | 403 | Disabled feature | Feature not enabled |
41
+ | 404 | Not Found | The resource does not exist |
42
+ | 50X | Internal Server Error | An error occurred with our API |
43
+
44
+ ## :newspaper: Information
45
+
46
+ #### Slack and Mailing List
47
+
48
+ If you have any questions, comments, or concerns, please join our Slack channel:
49
+ https://developers.messagemedia.com/collaborate/slack/
50
+
51
+ Alternatively you can email us at:
52
+ developers@messagemedia.com
53
+
54
+ #### Bug reports
55
+
56
+ If you discover a problem with the SDK, we would like to know about it. You can raise an [issue](https://github.com/messagemedia/signingkeys-nodejs-sdk/issues) or send an email to: developers@messagemedia.com
8
57
 
9
- ## ⭐️ Install via .gem file
10
- * Download [messagemedia_messages_sdk-1.0.0.gem](https://github.com/messagemedia/messages-ruby-sdk/releases/download/v1.0.0/messagemedia_messages_sdk-1.0.0.gem)
11
- run `gem install messagemedia_messages_sdk-1.0.0.gem`
58
+ #### Contributing
12
59
 
13
- ## 🎬 Get Started
60
+ We welcome your thoughts on how we could best provide you with SDKs that would simplify how you consume our services in your application. You can fork and create pull requests for any features you would like to see or raise an [issue](https://github.com/messagemedia/messages-nodejs-sdk/issues). Please be aware that a large share of the files are auto-generated by our backend tool.
61
+
62
+ ## :star Installation
63
+ * Run the following command to install the SDK via RubyGems:
64
+ ```
65
+ gem install messagemedia_messages_sdk
66
+ ```
67
+
68
+ ## :clapper: Get Started
14
69
  It's easy to get started. Simply enter the API Key and secret you obtained from the [MessageMedia Developers Portal](https://developers.messagemedia.com) into the code snippet below and a mobile number you wish to send to.
15
70
 
16
- ### 🚀 Send an SMS
17
- * Destination numbers (`destination_number`) should be in the [E.164](http://en.wikipedia.org/wiki/E.164) format. For example, `+61491570156`.
71
+ ### Send an SMS
72
+ Destination (`destinationNumber`) and source number (`sourceNumber`) should be in the [E.164](http://en.wikipedia.org/wiki/E.164) format. For example, `+61491570156` NOT `0491570156`. The code snippet below comprises of only the bare minimum parameters required to send a message. You can view the full list of parameters over [here](https://github.com/messagemedia/messages-ruby-sdk/wiki/Message-Body-Parameters). Alternatively, you can refer [this](https://github.com/messagemedia/messages-ruby-sdk/blob/master/examples/sendMessage.rb) code snippet with all the parameters in use.
73
+
74
+ ```ruby
75
+ require 'message_media_messages'
76
+ require 'pp'
77
+
78
+ include MessageMediaMessages
79
+
80
+ auth_user_name = 'API_KEY'
81
+ auth_password = 'API_SECRET'
82
+ use_hmac = false
83
+
84
+ client = MessageMediaMessages::MessageMediaMessagesClient.new(
85
+ auth_user_name: auth_user_name,
86
+ auth_password: auth_password,
87
+ use_hmac_authentication: use_hmac
88
+ )
89
+
90
+ messages_controller = client.messages
91
+ body = SendMessagesRequest.new
92
+ body.messages = []
93
+
94
+ body.messages[0] = Message.new
95
+ body.messages[0].content = 'My first message'
96
+ body.messages[0].destination_number = '+61491570156'
97
+
98
+ begin
99
+ result = messages_controller.send_messages(body)
100
+ pp result
101
+ rescue SendMessages400ResponseException => ex
102
+ puts "Caught SendMessages400ResponseException: #{ex.message}"
103
+ rescue APIException => ex
104
+ puts "Caught APIException: #{ex.message}"
105
+ end
106
+ ```
107
+
108
+ ## Send an MMS
109
+ Destination (`destinationNumber`) and source number (`sourceNumber`) should be in the [E.164](http://en.wikipedia.org/wiki/E.164) format. For example, `+61491570156` NOT `0491570156`. The code snippet below comprises of only the bare minimum parameters required to send a message. You can view the full list of parameters over [here](https://github.com/messagemedia/messages-ruby-sdk/wiki/Message-Body-Parameters). Alternatively, you can refer [this](https://github.com/messagemedia/messages-ruby-sdk/blob/master/examples/sendMessage.rb) code snippet with all the parameters in use.
110
+
18
111
  ```ruby
19
112
  require 'message_media_messages'
113
+ require 'pp'
20
114
 
21
- # Configuration parameters and credentials
22
- basic_auth_user_name = 'YOUR_API_KEY' # The username to use with basic authentication
23
- basic_auth_password = 'YOUR_API_SECRET' # The password to use with basic authentication
115
+ include MessageMediaMessages
116
+
117
+ auth_user_name = 'API_KEY'
118
+ auth_password = 'API_SECRET'
119
+ use_hmac = false
24
120
 
25
121
  client = MessageMediaMessages::MessageMediaMessagesClient.new(
26
- basic_auth_user_name: basic_auth_user_name,
27
- basic_auth_password: basic_auth_password
122
+ auth_user_name: auth_user_name,
123
+ auth_password: auth_password,
124
+ use_hmac_authentication: use_hmac
28
125
  )
29
126
 
30
- messages = client.messages
31
- body_value = '{
32
- "messages":[
33
- {
34
- "content":"My first message",
35
- "destination_number":"YOUR_MOBILE_NUMBER"
36
- }
37
- ]
38
- }';
127
+ messages_controller = client.messages
128
+ body = SendMessagesRequest.new
129
+ body.messages = []
39
130
 
40
- body = JSON.parse(body_value);
131
+ body.messages[0] = Message.new
132
+ body.messages[0].content = 'My second message'
133
+ body.messages[0].destination_number = '+61491570158'
134
+ body.messages[0].format = FormatEnum::MMS
135
+ body.messages[0].media = ['https://images.pexels.com/photos/1018350/pexels-photo-1018350.jpeg?cs=srgb&dl=architecture-buildings-city-1018350.jpg']
136
+ body.messages[0].subject = 'This is an MMS message'
41
137
 
42
- result = messages.create_send_messages(body)
138
+ begin
139
+ result = messages_controller.send_messages(body)
140
+ pp result
141
+ rescue SendMessages400ResponseException => ex
142
+ puts "Caught SendMessages400ResponseException: #{ex.message}"
143
+ rescue APIException => ex
144
+ puts "Caught APIException: #{ex.message}"
145
+ end
43
146
  ```
44
147
 
45
- ### 🕓 Get Status of a Message
148
+ ### Get Status of a Message
46
149
  You can get a messsage ID from a sent message by looking at the `message_id` from the response of the above example.
47
150
  ```ruby
48
151
  require 'message_media_messages'
152
+ require 'pp'
153
+
154
+ include MessageMediaMessages
49
155
 
50
- # Configuration parameters and credentials
51
- basic_auth_user_name = 'YOUR_API_KEY' # The username to use with basic authentication
52
- basic_auth_password = 'YOUR_API_SECRET' # The password to use with basic authentication
156
+ auth_user_name = 'API_KEY'
157
+ auth_password = 'API_SECRET'
158
+ use_hmac = false
53
159
 
54
160
  client = MessageMediaMessages::MessageMediaMessagesClient.new(
55
- basic_auth_user_name: basic_auth_user_name,
56
- basic_auth_password: basic_auth_password
161
+ auth_user_name: auth_user_name,
162
+ auth_password: auth_password,
163
+ use_hmac_authentication: use_hmac
57
164
  )
58
165
 
59
- messages = client.messages
60
- message_id = 'YOUR_MESSAGE_ID'
166
+ messages_controller = client.messages
167
+ message_id = '877c19ef-fa2e-4cec-827a-e1df9b5509f7'
61
168
 
62
- result = messages.get_message_status(message_id)
63
- print result
169
+ begin
170
+ result = messages_controller.get_message_status(message_id)
171
+ pp result
172
+ rescue APIException => ex
173
+ puts "Caught APIException: #{ex.message}"
174
+ end
64
175
  ```
65
176
 
66
- ### 💬 Get replies to a message
177
+ ### Get replies to a message
67
178
  You can check for replies that are sent to your messages
68
179
  ```ruby
69
180
  require 'message_media_messages'
181
+ require 'pp'
70
182
 
71
- # Configuration parameters and credentials
72
- basic_auth_user_name = 'YOUR_API_KEY' # The username to use with basic authentication
73
- basic_auth_password = 'YOUR_API_SECRET' # The password to use with basic authentication
183
+ include MessageMediaMessages
184
+
185
+ auth_user_name = 'API_KEY'
186
+ auth_password = 'API_SECRET'
187
+ use_hmac = false
74
188
 
75
189
  client = MessageMediaMessages::MessageMediaMessagesClient.new(
76
- basic_auth_user_name: basic_auth_user_name,
77
- basic_auth_password: basic_auth_password
190
+ auth_user_name: auth_user_name,
191
+ auth_password: auth_password,
192
+ use_hmac_authentication: use_hmac
78
193
  )
79
194
 
80
- replies = client.replies
81
-
82
- result = replies.get_check_replies()
195
+ replies_controller = client.replies
196
+ begin
197
+ result = replies_controller.check_replies()
198
+ pp replies
199
+ rescue APIException => ex
200
+ puts "Caught APIException: #{ex.message}"
201
+ end
83
202
  ```
84
203
 
85
- ### Check Delivery Reports
204
+ ### Check Delivery Reports
86
205
  This endpoint allows you to check for delivery reports to inbound and outbound messages.
87
206
  ```ruby
88
207
  require 'message_media_messages'
208
+ require 'pp'
89
209
 
90
- # Configuration parameters and credentials
91
- basic_auth_user_name = 'YOUR_API_KEY' # The username to use with basic authentication
92
- basic_auth_password = 'YOUR_API_SECRET' # The password to use with basic authentication
210
+ auth_user_name = 'API_KEY'
211
+ auth_password = 'API_SECRET'
212
+ use_hmac = false
93
213
 
94
214
  client = MessageMediaMessages::MessageMediaMessagesClient.new(
95
- basic_auth_user_name: basic_auth_user_name,
96
- basic_auth_password: basic_auth_password
215
+ auth_user_name: auth_user_name,
216
+ auth_password: auth_password,
217
+ use_hmac_authentication: use_hmac
97
218
  )
98
219
 
99
- deliveryReports = client.delivery_reports
220
+ delivery_reports_controller = client.delivery_reports
221
+ begin
222
+ result = delivery_reports_controller.check_delivery_reports()
223
+ pp result
224
+ rescue APIException => ex
225
+ puts "Caught APIException: #{ex.message}"
226
+ end
227
+ ```
228
+
229
+ ### Confirm Delivery Reports
230
+ This endpoint allows you to mark delivery reports as confirmed so they're no longer returned by the Check Delivery Reports function.
231
+ ```ruby
232
+ require 'message_media_messages'
233
+ require 'pp'
100
234
 
101
- result = deliveryReports.get_check_delivery_reports()
235
+ include MessageMediaMessages
236
+
237
+ auth_user_name = 'API_KEY'
238
+ auth_password = 'API_SECRET'
239
+ use_hmac = false
240
+
241
+ client = MessageMediaMessages::MessageMediaMessagesClient.new(
242
+ auth_user_name: auth_user_name,
243
+ auth_password: auth_password,
244
+ use_hmac_authentication: use_hmac
245
+ )
246
+
247
+ delivery_reports_controller = client.delivery_reports
248
+ body = ConfirmDeliveryReportsAsReceivedRequest.new
249
+ body.delivery_report_ids = ['011dcead-6988-4ad6-a1c7-6b6c68ea628d', '3487b3fa-6586-4979-a233-2d1b095c7718', 'ba28e94b-c83d-4759-98e7-ff9c7edb87a1']
250
+
251
+ begin
252
+ result = delivery_reports_controller.confirm_delivery_reports_as_received(body)
253
+ pp result
254
+ rescue APIException => ex
255
+ puts "Caught APIException: #{ex.message}"
256
+ end
257
+ ```
258
+
259
+ ### Check credits remaining (Prepaid accounts only)
260
+ This endpoint allows you to check for credits remaining on your prepaid account.
261
+ ```ruby
262
+ require 'message_media_messages'
263
+ require 'pp'
264
+
265
+ include MessageMediaMessages
266
+
267
+ auth_user_name = 'API_KEY'
268
+ auth_password = 'API_SECRET'
269
+ use_hmac = false
270
+
271
+ client = MessageMediaMessages::MessageMediaMessagesClient.new(
272
+ auth_user_name: auth_user_name,
273
+ auth_password: auth_password,
274
+ use_hmac_authentication: use_hmac
275
+ )
276
+
277
+ messages_controller = client.messages
278
+ begin
279
+ result = messages_controller.check_credits_remaining()
280
+ pp result
281
+ rescue APIException => ex
282
+ puts "Caught APIException: #{ex.message}"
283
+ end
102
284
  ```
103
285
 
104
- ## 📕 Documentation
105
- The Ruby SDK Documentation can be viewed [here](DOCUMENTATION.md)
286
+ ## :closed_book: API Reference Documentation
287
+ Check out the [full API documentation](https://developers.messagemedia.com/code/messages-api-documentation/) for more detailed information.
106
288
 
107
- ## 😕 Got Stuck?
289
+ ## :confused: Need help?
108
290
  Please contact developer support at developers@messagemedia.com or check out the developer portal at [developers.messagemedia.com](https://developers.messagemedia.com/)
291
+
292
+ ## :page_with_curl: License
293
+ Apache License. See the [LICENSE](LICENSE) file.
@@ -1,5 +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 ).
5
+
3
6
  require 'date'
4
7
  require 'json'
5
8
  require 'faraday'
@@ -17,34 +20,45 @@ require_relative 'message_media_messages/http/http_request.rb'
17
20
  require_relative 'message_media_messages/http/http_response.rb'
18
21
  require_relative 'message_media_messages/http/http_context.rb'
19
22
  require_relative 'message_media_messages/http/faraday_client.rb'
20
- require_relative 'message_media_messages/http/auth/basic_auth.rb'
21
- require_relative 'message_media_messages/http/auth/hmac_auth.rb'
22
-
23
+ require_relative 'message_media_messages/http/auth/auth_manager.rb'
23
24
  # Models
24
25
  require_relative 'message_media_messages/models/base_model.rb'
25
- require_relative 'message_media_messages/models' \
26
- '/check_delivery_reports_response.rb'
27
- require_relative 'message_media_messages/models' \
28
- '/confirm_replies_as_received_request_8.rb'
29
- require_relative 'message_media_messages/models' \
30
- '/confirm_replies_as_received_request.rb'
26
+ require_relative 'message_media_messages/models/confirm_delivery_reports_as' \
27
+ '_received_request1.rb'
28
+ require_relative 'message_media_messages/models/confirm_delivery_reports_as' \
29
+ '_received_request.rb'
30
+ require_relative 'message_media_messages/models/check_delivery_reports' \
31
+ '_response.rb'
32
+ require_relative 'message_media_messages/models/confirm_replies_as_received' \
33
+ '_request1.rb'
34
+ require_relative 'message_media_messages/models/confirm_replies_as_received' \
35
+ '_request.rb'
36
+ require_relative 'message_media_messages/models/vendor_account_id.rb'
31
37
  require_relative 'message_media_messages/models/check_replies_response.rb'
32
- require_relative 'message_media_messages/models' \
33
- '/cancel_scheduled_message_request.rb'
34
- require_relative 'message_media_messages/models/send_messages_response.rb'
38
+ require_relative 'message_media_messages/models/cancel_scheduled_message' \
39
+ '_request.rb'
35
40
  require_relative 'message_media_messages/models/send_messages_request.rb'
36
- require_relative 'message_media_messages/models' \
37
- '/confirm_delivery_reports_as_received_request.rb'
38
- require_relative 'message_media_messages/models' \
39
- '/confirm_delivery_reports_as_received_request_11.rb'
41
+ require_relative 'message_media_messages/models/reply.rb'
42
+ require_relative 'message_media_messages/models/delivery_report.rb'
43
+ require_relative 'message_media_messages/models/get_message_status_response.rb'
44
+ require_relative 'message_media_messages/models/message.rb'
45
+ require_relative 'message_media_messages/models/send_messages_response.rb'
46
+ require_relative 'message_media_messages/models/source_number_type_enum.rb'
47
+ require_relative 'message_media_messages/models/status2_enum.rb'
48
+ require_relative 'message_media_messages/models/status_enum.rb'
49
+ require_relative 'message_media_messages/models/format1_enum.rb'
50
+ require_relative 'message_media_messages/models/format_enum.rb'
40
51
 
41
52
  # Exceptions
42
53
  require_relative 'message_media_messages/exceptions/api_exception.rb'
54
+ require_relative 'message_media_messages/exceptions/send_messages400_response' \
55
+ '_exception.rb'
43
56
 
44
57
  require_relative 'message_media_messages/configuration.rb'
45
58
 
46
59
  # Controllers
47
60
  require_relative 'message_media_messages/controllers/base_controller.rb'
48
61
  require_relative 'message_media_messages/controllers/messages_controller.rb'
49
- require_relative 'message_media_messages/controllers/delivery_reports_controller.rb'
62
+ require_relative 'message_media_messages/controllers/delivery_reports' \
63
+ '_controller.rb'
50
64
  require_relative 'message_media_messages/controllers/replies_controller.rb'
@@ -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
  # API utility class
6
- # noinspection RubyClassMethodNamingConvention
7
8
  class APIHelper
8
9
  # Serializes an array parameter (creates key value pairs).
9
10
  # @param [String] The name of the parameter.
@@ -42,6 +43,8 @@ module MessageMediaMessages
42
43
 
43
44
  # Iterate and append parameters.
44
45
  parameters.each do |key, value|
46
+ replace_value = ''
47
+
45
48
  if value.nil?
46
49
  replace_value = ''
47
50
  elsif value.instance_of? Array
@@ -88,7 +91,7 @@ module MessageMediaMessages
88
91
  elsif array_serialization == 'tsv'
89
92
  "#{seperator}#{key}=#{value.map do |element|
90
93
  CGI.escape(element.to_s)
91
- end.join('\t')}"
94
+ end.join("\t")}"
92
95
  else
93
96
  "#{seperator}#{APIHelper.serialize_array(
94
97
  key, value, formatting: array_serialization
@@ -151,19 +154,52 @@ module MessageMediaMessages
151
154
  def self.form_encode_parameters(form_parameters)
152
155
  encoded = {}
153
156
  form_parameters.each do |key, value|
154
- encoded.merge!(APIHelper.form_encode(value, key))
157
+ encoded.merge!(APIHelper.form_encode(value, key, formatting:
158
+ Configuration.array_serialization))
155
159
  end
156
160
  encoded
157
161
  end
158
162
 
163
+ def self.custom_merge(a, b)
164
+ x = {}
165
+ a.each do |key, value_a|
166
+ b.each do |k, value_b|
167
+ next unless key == k
168
+ x[k] = []
169
+ if value_a.instance_of? Array
170
+ value_a.each do |v|
171
+ x[k].push(v)
172
+ end
173
+ else
174
+ x[k].push(value_a)
175
+ end
176
+ if value_b.instance_of? Array
177
+ value_b.each do |v|
178
+ x[k].push(v)
179
+ end
180
+ else
181
+ x[k].push(value_b)
182
+ end
183
+ a.delete(k)
184
+ b.delete(k)
185
+ end
186
+ end
187
+ x.merge!(a)
188
+ x.merge!(b)
189
+ x
190
+ end
191
+
159
192
  # Form encodes an object.
160
193
  # @param [Dynamic] An object to form encode.
161
194
  # @param [String] The name of the object.
162
195
  # @return [Hash] A form encoded representation of the object in the form
163
196
  # of a hash.
164
- def self.form_encode(obj, instance_name)
197
+ def self.form_encode(obj, instance_name, formatting: 'indexed')
165
198
  retval = {}
166
199
 
200
+ serializable_types = [String, Numeric, TrueClass,
201
+ FalseClass, Date, DateTime]
202
+
167
203
  # If this is a structure, resolve it's field names.
168
204
  obj = obj.to_hash if obj.is_a? BaseModel
169
205
 
@@ -171,20 +207,51 @@ module MessageMediaMessages
171
207
  if obj.nil?
172
208
  nil
173
209
  elsif obj.instance_of? Array
174
- obj.each_with_index do |value, index|
175
- retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
176
- index.to_s + ']'))
210
+ if formatting == 'indexed'
211
+ obj.each_with_index do |value, index|
212
+ retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
213
+ index.to_s + ']'))
214
+ end
215
+ elsif serializable_types.map { |x| obj[0].is_a? x }.any?
216
+ obj.each do |value|
217
+ abc = if formatting == 'unindexed'
218
+ APIHelper.form_encode(value, instance_name + '[]',
219
+ formatting: formatting)
220
+ else
221
+ APIHelper.form_encode(value, instance_name,
222
+ formatting: formatting)
223
+ end
224
+ retval = APIHelper.custom_merge(retval, abc)
225
+ # print retval
226
+ end
227
+ else
228
+ obj.each_with_index do |value, index|
229
+ retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
230
+ index.to_s + ']', formatting: formatting))
231
+ end
177
232
  end
178
233
  elsif obj.instance_of? Hash
179
234
  obj.each do |key, value|
180
235
  retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
181
- key + ']'))
236
+ key + ']', formatting: formatting))
182
237
  end
183
238
  else
184
239
  retval[instance_name] = obj
185
240
  end
186
241
  retval
187
242
  end
243
+
244
+ # Safely converts a string into an rfc3339 DateTime object
245
+ # @param [String] The datetime string
246
+ # @return [DateTime] A DateTime object of rfc3339 format
247
+ def self.rfc3339(date_time)
248
+ # missing timezone information
249
+ if date_time.end_with?('Z') || date_time.index('+')
250
+ DateTime.rfc3339(date_time)
251
+ else
252
+ DateTime.rfc3339(date_time + 'Z')
253
+ end
254
+ end
188
255
  end
189
256
  end
190
257