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,4 +1,6 @@
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
@@ -7,8 +9,8 @@ module MessageMediaMessages
7
9
  attr_accessor :request, :response
8
10
 
9
11
  # The constructor.
10
- # @param [HttpRequest] request An HttpRequest object representing the HTTP request.
11
- # @param [HttpResponse] response An HttpResponse object representing the HTTP
12
+ # @param [HttpRequest] An HttpRequest object representing the HTTP request.
13
+ # @param [HttpResponse] An HttpResponse object representing the HTTP
12
14
  # response.
13
15
  def initialize(request, response)
14
16
  @request = request
@@ -1,4 +1,6 @@
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
@@ -6,6 +8,6 @@ module MessageMediaMessages
6
8
  class HttpMethodEnum
7
9
  HTTPMETHODENUM = [GET = 'GET'.freeze, POST = 'POST'.freeze,
8
10
  PUT = 'PUT'.freeze, PATCH = 'PATCH'.freeze,
9
- DELETE = 'DELETE'.freeze].freeze
11
+ DELETE = 'DELETE'.freeze, HEAD = 'HEAD'.freeze].freeze
10
12
  end
11
13
  end
@@ -1,4 +1,6 @@
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
@@ -8,10 +10,10 @@ module MessageMediaMessages
8
10
  :parameters, :username, :password
9
11
 
10
12
  # The constructor.
11
- # @param [HttpMethodEnum] http_method The HTTP method.
12
- # @param [String] query_url The URL to send the request to.
13
- # @param [Hash, Optional] headers The headers for the HTTP Request.
14
- # @param [Hash, Optional] parameters The parameters for the HTTP Request.
13
+ # @param [HttpMethodEnum] The HTTP method.
14
+ # @param [String] The URL to send the request to.
15
+ # @param [Hash, Optional] The headers for the HTTP Request.
16
+ # @param [Hash, Optional] The parameters for the HTTP Request.
15
17
  def initialize(http_method,
16
18
  query_url,
17
19
  headers: {},
@@ -23,22 +25,22 @@ module MessageMediaMessages
23
25
  end
24
26
 
25
27
  # Add a header to the HttpRequest.
26
- # @param [String] name The name of the header.
27
- # @param [String] value The value of the header.
28
+ # @param [String] The name of the header.
29
+ # @param [String] The value of the header.
28
30
  def add_header(name, value)
29
31
  @headers[name] = value
30
32
  end
31
33
 
32
34
  # Add a parameter to the HttpRequest.
33
- # @param [String] name The name of the parameter.
34
- # @param [String] value The value of the parameter.
35
+ # @param [String] The name of the parameter.
36
+ # @param [String] The value of the parameter.
35
37
  def add_parameter(name, value)
36
38
  @parameters[name] = value
37
39
  end
38
40
 
39
41
  # Add a query parameter to the HttpRequest.
40
- # @param [String] name The name of the query parameter.
41
- # @param [String] value The value of the query parameter.
42
+ # @param [String] The name of the query parameter.
43
+ # @param [String] The value of the query parameter.
42
44
  def add_query_parameter(name, value)
43
45
  @query_url = APIHelper.append_url_with_query_parameters(@query_url,
44
46
  name => value)
@@ -1,4 +1,6 @@
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
@@ -7,9 +9,9 @@ module MessageMediaMessages
7
9
  attr_accessor :status_code, :headers, :raw_body
8
10
 
9
11
  # The constructor
10
- # @param [Integer] status_code The status code returned by the server.
11
- # @param [Hash] headers The headers sent by the server in the response.
12
- # @param [String] raw_body The raw body of the response.
12
+ # @param [Integer] The status code returned by the server.
13
+ # @param [Hash] The headers sent by the server in the response.
14
+ # @param [String] The raw body of the response.
13
15
  def initialize(status_code,
14
16
  headers,
15
17
  raw_body)
@@ -1,4 +1,6 @@
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
@@ -29,13 +31,14 @@ module MessageMediaMessages
29
31
  end
30
32
 
31
33
  # Initializer with authentication and configuration parameters.
32
- def initialize(auth_user_name: nil, auth_password: nil, use_hmac: false)
33
- if (use_hmac == false)
34
- Configuration.basic_auth_user_name = auth_user_name
35
- Configuration.basic_auth_password = auth_password
36
- else
34
+ def initialize(auth_user_name: nil, auth_password: nil,
35
+ use_hmac_authentication: false)
36
+ if use_hmac_authentication
37
37
  Configuration.hmac_auth_user_name = auth_user_name
38
38
  Configuration.hmac_auth_password = auth_password
39
+ else
40
+ Configuration.basic_auth_user_name = auth_user_name
41
+ Configuration.basic_auth_password = auth_password
39
42
  end
40
43
  end
41
44
  end
@@ -1,4 +1,6 @@
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
@@ -9,6 +11,7 @@ module MessageMediaMessages
9
11
  hash = {}
10
12
  instance_variables.each do |name|
11
13
  value = instance_variable_get(name)
14
+ next if value.nil?
12
15
  name = name[1..-1]
13
16
  key = self.class.names.key?(name) ? self.class.names[name] : name
14
17
  if value.instance_of? Array
@@ -1,4 +1,6 @@
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
@@ -10,14 +12,12 @@ module MessageMediaMessages
10
12
 
11
13
  # A mapping from model property names to API property names.
12
14
  def self.names
13
- if @_hash.nil?
14
- @_hash = {}
15
- @_hash['status'] = 'status'
16
- end
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['status'] = 'status'
17
17
  @_hash
18
18
  end
19
19
 
20
- def initialize(status = nil)
20
+ def initialize(status = 'cancelled')
21
21
  @status = status
22
22
  end
23
23
 
@@ -26,7 +26,7 @@ module MessageMediaMessages
26
26
  return nil unless hash
27
27
 
28
28
  # Extract variables from the hash.
29
- status = hash['status']
29
+ status = hash['status'] ||= 'cancelled'
30
30
 
31
31
  # Create object from extracted values.
32
32
  CancelScheduledMessageRequest.new(status)
@@ -1,19 +1,19 @@
1
- # This file was automatically generated for MessageMedia by APIMATIC v2.0
1
+ # message_media_messages
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
2
4
  # ( https://apimatic.io ).
3
5
 
4
6
  module MessageMediaMessages
5
7
  # CheckDeliveryReportsResponse Model.
6
8
  class CheckDeliveryReportsResponse < BaseModel
7
- # TODO: Write general description for this method
8
- # @return [List of Object]
9
+ # The oldest 100 unconfirmed delivery reports
10
+ # @return [List of DeliveryReport]
9
11
  attr_accessor :delivery_reports
10
12
 
11
13
  # A mapping from model property names to API property names.
12
14
  def self.names
13
- if @_hash.nil?
14
- @_hash = {}
15
- @_hash['delivery_reports'] = 'delivery_reports'
16
- end
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['delivery_reports'] = 'delivery_reports'
17
17
  @_hash
18
18
  end
19
19
 
@@ -26,7 +26,14 @@ module MessageMediaMessages
26
26
  return nil unless hash
27
27
 
28
28
  # Extract variables from the hash.
29
- delivery_reports = hash['delivery_reports']
29
+ # Parameter is an array, so we need to iterate through it
30
+ delivery_reports = nil
31
+ unless hash['delivery_reports'].nil?
32
+ delivery_reports = []
33
+ hash['delivery_reports'].each do |structure|
34
+ delivery_reports << (DeliveryReport.from_hash(structure) if structure)
35
+ end
36
+ end
30
37
 
31
38
  # Create object from extracted values.
32
39
  CheckDeliveryReportsResponse.new(delivery_reports)
@@ -1,19 +1,19 @@
1
- # This file was automatically generated for MessageMedia by APIMATIC v2.0
1
+ # message_media_messages
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
2
4
  # ( https://apimatic.io ).
3
5
 
4
6
  module MessageMediaMessages
5
7
  # CheckRepliesResponse Model.
6
8
  class CheckRepliesResponse < BaseModel
7
- # TODO: Write general description for this method
8
- # @return [List of Object]
9
+ # The oldest 100 unconfirmed replies
10
+ # @return [List of Reply]
9
11
  attr_accessor :replies
10
12
 
11
13
  # A mapping from model property names to API property names.
12
14
  def self.names
13
- if @_hash.nil?
14
- @_hash = {}
15
- @_hash['replies'] = 'replies'
16
- end
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['replies'] = 'replies'
17
17
  @_hash
18
18
  end
19
19
 
@@ -26,7 +26,14 @@ module MessageMediaMessages
26
26
  return nil unless hash
27
27
 
28
28
  # Extract variables from the hash.
29
- replies = hash['replies']
29
+ # Parameter is an array, so we need to iterate through it
30
+ replies = nil
31
+ unless hash['replies'].nil?
32
+ replies = []
33
+ hash['replies'].each do |structure|
34
+ replies << (Reply.from_hash(structure) if structure)
35
+ end
36
+ end
30
37
 
31
38
  # Create object from extracted values.
32
39
  CheckRepliesResponse.new(replies)
@@ -1,4 +1,6 @@
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
@@ -10,10 +12,8 @@ module MessageMediaMessages
10
12
 
11
13
  # A mapping from model property names to API property names.
12
14
  def self.names
13
- if @_hash.nil?
14
- @_hash = {}
15
- @_hash['delivery_report_ids'] = 'delivery_report_ids'
16
- end
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['delivery_report_ids'] = 'delivery_report_ids'
17
17
  @_hash
18
18
  end
19
19
 
@@ -1,19 +1,19 @@
1
- # This file was automatically generated for MessageMedia by APIMATIC v2.0
1
+ # message_media_messages
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
2
4
  # ( https://apimatic.io ).
3
5
 
4
6
  module MessageMediaMessages
5
- # ConfirmDeliveryReportsAsReceivedRequest11 Model.
6
- class ConfirmDeliveryReportsAsReceivedRequest11 < BaseModel
7
+ # ConfirmDeliveryReportsAsReceivedRequest1 Model.
8
+ class ConfirmDeliveryReportsAsReceivedRequest1 < BaseModel
7
9
  # TODO: Write general description for this method
8
10
  # @return [List of UUID | String]
9
11
  attr_accessor :delivery_report_ids
10
12
 
11
13
  # A mapping from model property names to API property names.
12
14
  def self.names
13
- if @_hash.nil?
14
- @_hash = {}
15
- @_hash['delivery_report_ids'] = 'delivery_report_ids'
16
- end
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['delivery_report_ids'] = 'delivery_report_ids'
17
17
  @_hash
18
18
  end
19
19
 
@@ -29,7 +29,7 @@ module MessageMediaMessages
29
29
  delivery_report_ids = hash['delivery_report_ids']
30
30
 
31
31
  # Create object from extracted values.
32
- ConfirmDeliveryReportsAsReceivedRequest11.new(delivery_report_ids)
32
+ ConfirmDeliveryReportsAsReceivedRequest1.new(delivery_report_ids)
33
33
  end
34
34
  end
35
35
  end
@@ -1,4 +1,6 @@
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
@@ -10,10 +12,8 @@ module MessageMediaMessages
10
12
 
11
13
  # A mapping from model property names to API property names.
12
14
  def self.names
13
- if @_hash.nil?
14
- @_hash = {}
15
- @_hash['reply_ids'] = 'reply_ids'
16
- end
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['reply_ids'] = 'reply_ids'
17
17
  @_hash
18
18
  end
19
19
 
@@ -1,19 +1,19 @@
1
- # This file was automatically generated for MessageMedia by APIMATIC v2.0
1
+ # message_media_messages
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
2
4
  # ( https://apimatic.io ).
3
5
 
4
6
  module MessageMediaMessages
5
- # ConfirmRepliesAsReceivedRequest8 Model.
6
- class ConfirmRepliesAsReceivedRequest8 < BaseModel
7
+ # ConfirmRepliesAsReceivedRequest1 Model.
8
+ class ConfirmRepliesAsReceivedRequest1 < BaseModel
7
9
  # TODO: Write general description for this method
8
10
  # @return [List of UUID | String]
9
11
  attr_accessor :reply_ids
10
12
 
11
13
  # A mapping from model property names to API property names.
12
14
  def self.names
13
- if @_hash.nil?
14
- @_hash = {}
15
- @_hash['reply_ids'] = 'reply_ids'
16
- end
15
+ @_hash = {} if @_hash.nil?
16
+ @_hash['reply_ids'] = 'reply_ids'
17
17
  @_hash
18
18
  end
19
19
 
@@ -29,7 +29,7 @@ module MessageMediaMessages
29
29
  reply_ids = hash['reply_ids']
30
30
 
31
31
  # Create object from extracted values.
32
- ConfirmRepliesAsReceivedRequest8.new(reply_ids)
32
+ ConfirmRepliesAsReceivedRequest1.new(reply_ids)
33
33
  end
34
34
  end
35
35
  end
@@ -0,0 +1,135 @@
1
+ # message_media_messages
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'date'
7
+ module MessageMediaMessages
8
+ # DeliveryReport Model.
9
+ class DeliveryReport < BaseModel
10
+ # The URL specified as the callback URL in the original submit message
11
+ # request
12
+ # @return [String]
13
+ attr_accessor :callback_url
14
+
15
+ # The date and time at which this delivery report was generated in UTC.
16
+ # @return [DateTime]
17
+ attr_accessor :date_received
18
+
19
+ # Deprecated, no longer in use
20
+ # @return [Integer]
21
+ attr_accessor :delay
22
+
23
+ # Unique ID for this delivery report
24
+ # @return [UUID | String]
25
+ attr_accessor :delivery_report_id
26
+
27
+ # Unique ID of the original message
28
+ # @return [UUID | String]
29
+ attr_accessor :message_id
30
+
31
+ # Any metadata that was included in the original submit message request
32
+ # @return [Object]
33
+ attr_accessor :metadata
34
+
35
+ # Text of the original message.
36
+ # @return [String]
37
+ attr_accessor :original_text
38
+
39
+ # Address from which this delivery report was received
40
+ # @return [String]
41
+ attr_accessor :source_number
42
+
43
+ # The status of the message as per the delivery report
44
+ # @return [Status2Enum]
45
+ attr_accessor :status
46
+
47
+ # The date and time when the message status changed in UTC. For a delivered
48
+ # DR this may indicate the time at which the message was received on the
49
+ # handset.
50
+ # @return [DateTime]
51
+ attr_accessor :submitted_date
52
+
53
+ # The date and time when the message status changed in UTC. For a delivered
54
+ # DR this may indicate the time at which the message was received on the
55
+ # handset.
56
+ # @return [VendorAccountId]
57
+ attr_accessor :vendor_account_id
58
+
59
+ # A mapping from model property names to API property names.
60
+ def self.names
61
+ @_hash = {} if @_hash.nil?
62
+ @_hash['callback_url'] = 'callback_url'
63
+ @_hash['date_received'] = 'date_received'
64
+ @_hash['delay'] = 'delay'
65
+ @_hash['delivery_report_id'] = 'delivery_report_id'
66
+ @_hash['message_id'] = 'message_id'
67
+ @_hash['metadata'] = 'metadata'
68
+ @_hash['original_text'] = 'original_text'
69
+ @_hash['source_number'] = 'source_number'
70
+ @_hash['status'] = 'status'
71
+ @_hash['submitted_date'] = 'submitted_date'
72
+ @_hash['vendor_account_id'] = 'vendor_account_id'
73
+ @_hash
74
+ end
75
+
76
+ def initialize(callback_url = nil,
77
+ date_received = nil,
78
+ delay = nil,
79
+ delivery_report_id = nil,
80
+ message_id = nil,
81
+ metadata = nil,
82
+ original_text = nil,
83
+ source_number = nil,
84
+ status = nil,
85
+ submitted_date = nil,
86
+ vendor_account_id = nil)
87
+ @callback_url = callback_url
88
+ @date_received = date_received
89
+ @delay = delay
90
+ @delivery_report_id = delivery_report_id
91
+ @message_id = message_id
92
+ @metadata = metadata
93
+ @original_text = original_text
94
+ @source_number = source_number
95
+ @status = status
96
+ @submitted_date = submitted_date
97
+ @vendor_account_id = vendor_account_id
98
+ end
99
+
100
+ # Creates an instance of the object from a hash.
101
+ def self.from_hash(hash)
102
+ return nil unless hash
103
+
104
+ # Extract variables from the hash.
105
+ callback_url = hash['callback_url']
106
+ date_received = APIHelper.rfc3339(hash['date_received']) if
107
+ hash['date_received']
108
+ delay = hash['delay']
109
+ delivery_report_id = hash['delivery_report_id']
110
+ message_id = hash['message_id']
111
+ metadata = hash['metadata']
112
+ original_text = hash['original_text']
113
+ source_number = hash['source_number']
114
+ status = hash['status']
115
+ submitted_date = APIHelper.rfc3339(hash['submitted_date']) if
116
+ hash['submitted_date']
117
+ if hash['vendor_account_id']
118
+ vendor_account_id = VendorAccountId.from_hash(hash['vendor_account_id'])
119
+ end
120
+
121
+ # Create object from extracted values.
122
+ DeliveryReport.new(callback_url,
123
+ date_received,
124
+ delay,
125
+ delivery_report_id,
126
+ message_id,
127
+ metadata,
128
+ original_text,
129
+ source_number,
130
+ status,
131
+ submitted_date,
132
+ vendor_account_id)
133
+ end
134
+ end
135
+ end