whatsapp-ruby-sdk 1.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.
- checksums.yaml +7 -0
- data/LICENSE +28 -0
- data/README.md +85 -0
- data/lib/whats_app_cloud_api/api_helper.rb +277 -0
- data/lib/whats_app_cloud_api/client.rb +68 -0
- data/lib/whats_app_cloud_api/configuration.rb +132 -0
- data/lib/whats_app_cloud_api/controllers/base_controller.rb +52 -0
- data/lib/whats_app_cloud_api/controllers/business_profiles_controller.rb +94 -0
- data/lib/whats_app_cloud_api/controllers/media_controller.rb +142 -0
- data/lib/whats_app_cloud_api/controllers/messages_controller.rb +51 -0
- data/lib/whats_app_cloud_api/controllers/phone_numbers_controller.rb +141 -0
- data/lib/whats_app_cloud_api/controllers/registration_controller.rb +91 -0
- data/lib/whats_app_cloud_api/controllers/two_step_verification_controller.rb +57 -0
- data/lib/whats_app_cloud_api/exceptions/api_exception.rb +20 -0
- data/lib/whats_app_cloud_api/http/auth/o_auth2.rb +17 -0
- data/lib/whats_app_cloud_api/http/faraday_client.rb +97 -0
- data/lib/whats_app_cloud_api/http/http_call_back.rb +24 -0
- data/lib/whats_app_cloud_api/http/http_client.rb +123 -0
- data/lib/whats_app_cloud_api/http/http_method_enum.rb +13 -0
- data/lib/whats_app_cloud_api/http/http_request.rb +54 -0
- data/lib/whats_app_cloud_api/http/http_response.rb +29 -0
- data/lib/whats_app_cloud_api/models/action.rb +91 -0
- data/lib/whats_app_cloud_api/models/address.rb +110 -0
- data/lib/whats_app_cloud_api/models/audio.rb +61 -0
- data/lib/whats_app_cloud_api/models/base_model.rb +58 -0
- data/lib/whats_app_cloud_api/models/body.rb +49 -0
- data/lib/whats_app_cloud_api/models/business_profile.rb +123 -0
- data/lib/whats_app_cloud_api/models/button.rb +71 -0
- data/lib/whats_app_cloud_api/models/button_parameter.rb +72 -0
- data/lib/whats_app_cloud_api/models/button_parameter_type_enum.rb +17 -0
- data/lib/whats_app_cloud_api/models/component.rb +83 -0
- data/lib/whats_app_cloud_api/models/component_type_enum.rb +20 -0
- data/lib/whats_app_cloud_api/models/contact.rb +145 -0
- data/lib/whats_app_cloud_api/models/content_type_enum.rb +14 -0
- data/lib/whats_app_cloud_api/models/currency.rb +67 -0
- data/lib/whats_app_cloud_api/models/date_time_object.rb +128 -0
- data/lib/whats_app_cloud_api/models/document.rb +81 -0
- data/lib/whats_app_cloud_api/models/email_object.rb +60 -0
- data/lib/whats_app_cloud_api/models/footer.rb +49 -0
- data/lib/whats_app_cloud_api/models/get_business_profile_id_response.rb +57 -0
- data/lib/whats_app_cloud_api/models/get_phone_number_by_id_response.rb +78 -0
- data/lib/whats_app_cloud_api/models/header.rb +93 -0
- data/lib/whats_app_cloud_api/models/header_type_enum.rb +23 -0
- data/lib/whats_app_cloud_api/models/image.rb +71 -0
- data/lib/whats_app_cloud_api/models/interactive.rb +87 -0
- data/lib/whats_app_cloud_api/models/interactive_type_enum.rb +17 -0
- data/lib/whats_app_cloud_api/models/language.rb +60 -0
- data/lib/whats_app_cloud_api/models/location.rb +78 -0
- data/lib/whats_app_cloud_api/models/message.rb +194 -0
- data/lib/whats_app_cloud_api/models/message_type_enum.rb +41 -0
- data/lib/whats_app_cloud_api/models/name.rb +100 -0
- data/lib/whats_app_cloud_api/models/org.rb +70 -0
- data/lib/whats_app_cloud_api/models/parameter.rb +113 -0
- data/lib/whats_app_cloud_api/models/parameter_type_enum.rb +29 -0
- data/lib/whats_app_cloud_api/models/personal_information_type_enum.rb +17 -0
- data/lib/whats_app_cloud_api/models/phone_object.rb +70 -0
- data/lib/whats_app_cloud_api/models/phone_type_enum.rb +26 -0
- data/lib/whats_app_cloud_api/models/quality_rating_enum.rb +25 -0
- data/lib/whats_app_cloud_api/models/register_phone_request.rb +58 -0
- data/lib/whats_app_cloud_api/models/request_verification_code_method_enum.rb +17 -0
- data/lib/whats_app_cloud_api/models/request_verification_code_request.rb +57 -0
- data/lib/whats_app_cloud_api/models/response_contact.rb +57 -0
- data/lib/whats_app_cloud_api/models/response_message.rb +48 -0
- data/lib/whats_app_cloud_api/models/retrieve_media_url_response.rb +94 -0
- data/lib/whats_app_cloud_api/models/row.rb +68 -0
- data/lib/whats_app_cloud_api/models/section.rb +72 -0
- data/lib/whats_app_cloud_api/models/send_message_response.rb +85 -0
- data/lib/whats_app_cloud_api/models/set_two_step_verification_code_request.rb +48 -0
- data/lib/whats_app_cloud_api/models/sticker.rb +61 -0
- data/lib/whats_app_cloud_api/models/sub_type_enum.rb +20 -0
- data/lib/whats_app_cloud_api/models/success_response.rb +48 -0
- data/lib/whats_app_cloud_api/models/template.rb +78 -0
- data/lib/whats_app_cloud_api/models/text.rb +72 -0
- data/lib/whats_app_cloud_api/models/update_business_profile_request.rb +116 -0
- data/lib/whats_app_cloud_api/models/upload_media.rb +48 -0
- data/lib/whats_app_cloud_api/models/upload_media_request.rb +80 -0
- data/lib/whats_app_cloud_api/models/url_object.rb +60 -0
- data/lib/whats_app_cloud_api/models/verify_code_request.rb +48 -0
- data/lib/whats_app_cloud_api/models/vertical_enum.rb +68 -0
- data/lib/whats_app_cloud_api/models/video.rb +61 -0
- data/lib/whats_app_cloud_api/utilities/date_time_helper.rb +156 -0
- data/lib/whats_app_cloud_api/utilities/file_wrapper.rb +16 -0
- data/lib/whats_app_cloud_api.rb +104 -0
- metadata +266 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
require 'faraday/http_cache'
|
|
7
|
+
require 'faraday/retry'
|
|
8
|
+
require 'faraday/multipart'
|
|
9
|
+
require 'faraday/follow_redirects'
|
|
10
|
+
require 'faraday/gzip'
|
|
11
|
+
|
|
12
|
+
module WhatsAppCloudApi
|
|
13
|
+
# An implementation of HttpClient.
|
|
14
|
+
class FaradayClient < HttpClient
|
|
15
|
+
# The attribute readers for properties.
|
|
16
|
+
attr_reader :connection
|
|
17
|
+
|
|
18
|
+
# The constructor.
|
|
19
|
+
def initialize(timeout:, max_retries:, retry_interval:,
|
|
20
|
+
backoff_factor:, retry_statuses:, retry_methods:,
|
|
21
|
+
connection:, adapter:, cache: false, verify: true)
|
|
22
|
+
@connection = if connection.nil?
|
|
23
|
+
create_connection(timeout: timeout, max_retries: max_retries,
|
|
24
|
+
retry_interval: retry_interval, backoff_factor: backoff_factor,
|
|
25
|
+
retry_statuses: retry_statuses, retry_methods: retry_methods,
|
|
26
|
+
adapter: adapter, cache: cache, verify: verify)
|
|
27
|
+
else
|
|
28
|
+
connection
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Method to initialize connection.
|
|
33
|
+
def create_connection(timeout:, max_retries:, retry_interval:,
|
|
34
|
+
backoff_factor:, retry_statuses:, retry_methods:,
|
|
35
|
+
adapter:, cache: false, verify: true)
|
|
36
|
+
Faraday.new do |faraday|
|
|
37
|
+
faraday.use Faraday::HttpCache, serializer: Marshal if cache
|
|
38
|
+
faraday.use Faraday::FollowRedirects::Middleware
|
|
39
|
+
faraday.request :gzip
|
|
40
|
+
faraday.request :multipart
|
|
41
|
+
faraday.request :url_encoded
|
|
42
|
+
faraday.ssl[:ca_file] = Certifi.where
|
|
43
|
+
faraday.ssl[:verify] = verify
|
|
44
|
+
faraday.request :retry, max: max_retries, interval: retry_interval,
|
|
45
|
+
backoff_factor: backoff_factor,
|
|
46
|
+
retry_statuses: retry_statuses,
|
|
47
|
+
methods: retry_methods,
|
|
48
|
+
retry_if: proc { |env, _exc|
|
|
49
|
+
env.request.context['forced_retry'] ||= false
|
|
50
|
+
}
|
|
51
|
+
faraday.adapter adapter
|
|
52
|
+
faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
|
|
53
|
+
faraday.options[:timeout] = timeout if timeout.positive?
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Method overridden from HttpClient.
|
|
58
|
+
def execute_as_string(http_request)
|
|
59
|
+
response = @connection.send(
|
|
60
|
+
http_request.http_method.downcase,
|
|
61
|
+
http_request.query_url
|
|
62
|
+
) do |request|
|
|
63
|
+
request.headers = http_request.headers.map { |k, v| [k.to_s, v.to_s] }
|
|
64
|
+
request.options.context ||= {}
|
|
65
|
+
request.options.context.merge!(http_request.context)
|
|
66
|
+
unless http_request.http_method == HttpMethodEnum::GET &&
|
|
67
|
+
http_request.parameters.empty?
|
|
68
|
+
request.body = http_request.parameters
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
convert_response(response, http_request)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Method overridden from HttpClient.
|
|
75
|
+
def execute_as_binary(http_request)
|
|
76
|
+
response = @connection.send(
|
|
77
|
+
http_request.http_method.downcase,
|
|
78
|
+
http_request.query_url
|
|
79
|
+
) do |request|
|
|
80
|
+
request.headers = http_request.headers
|
|
81
|
+
request.options.context ||= {}
|
|
82
|
+
request.options.context.merge!(http_request.context)
|
|
83
|
+
unless http_request.http_method == HttpMethodEnum::GET &&
|
|
84
|
+
http_request.parameters.empty?
|
|
85
|
+
request.body = http_request.parameters
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
convert_response(response, http_request)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Method overridden from HttpClient.
|
|
92
|
+
def convert_response(response, http_request)
|
|
93
|
+
HttpResponse.new(response.status, response.reason_phrase,
|
|
94
|
+
response.headers, response.body, http_request)
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# HttpCallBack allows defining callables for pre and post API calls.
|
|
8
|
+
class HttpCallBack
|
|
9
|
+
# A controller will call this method before making an HTTP Request.
|
|
10
|
+
# @param [HttpRequest] The HttpRequest object which the HttpClient
|
|
11
|
+
# will execute.
|
|
12
|
+
def on_before_request(_http_request)
|
|
13
|
+
raise NotImplementedError, 'This method needs
|
|
14
|
+
to be implemented in a child class.'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# A controller will call this method after making an HTTP Request.
|
|
18
|
+
# @param [HttpResponse] The HttpReponse of the API call.
|
|
19
|
+
def on_after_response(_http_response)
|
|
20
|
+
raise NotImplementedError, 'This method needs
|
|
21
|
+
to be implemented in a child class.'
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# An interface for the methods that an HTTP Client must implement.
|
|
8
|
+
#
|
|
9
|
+
# This class should not be instantiated but should be used as a base class
|
|
10
|
+
# for HTTP Client classes.
|
|
11
|
+
class HttpClient
|
|
12
|
+
# Execute an HttpRequest when the response is expected to be a string.
|
|
13
|
+
# @param [HttpRequest] The HttpRequest to be executed.
|
|
14
|
+
def execute_as_string(_http_request)
|
|
15
|
+
raise NotImplementedError, 'This method needs
|
|
16
|
+
to be implemented in a child class.'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Execute an HttpRequest when the response is expected to be binary.
|
|
20
|
+
# @param [HttpRequest] The HttpRequest to be executed.
|
|
21
|
+
def execute_as_binary(_http_request)
|
|
22
|
+
raise NotImplementedError, 'This method needs
|
|
23
|
+
to be implemented in a child class.'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Converts the HTTP Response from the client to an HttpResponse object.
|
|
27
|
+
# @param [Dynamic] The response object received from the client.
|
|
28
|
+
def convert_response(_response)
|
|
29
|
+
raise NotImplementedError, 'This method needs
|
|
30
|
+
to be implemented in a child class.'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Get a GET HttpRequest object.
|
|
34
|
+
# @param [String] The URL to send the request to.
|
|
35
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
|
36
|
+
# @param [Hash, Optional] The context for the HTTP Request.
|
|
37
|
+
def get(query_url,
|
|
38
|
+
headers: {},
|
|
39
|
+
context: {})
|
|
40
|
+
HttpRequest.new(HttpMethodEnum::GET,
|
|
41
|
+
query_url,
|
|
42
|
+
headers: headers,
|
|
43
|
+
context: context)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Get a HEAD HttpRequest object.
|
|
47
|
+
# @param [String] The URL to send the request to.
|
|
48
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
|
49
|
+
# @param [Hash, Optional] The context for the HTTP Request.
|
|
50
|
+
def head(query_url,
|
|
51
|
+
headers: {},
|
|
52
|
+
context: {})
|
|
53
|
+
HttpRequest.new(HttpMethodEnum::HEAD,
|
|
54
|
+
query_url,
|
|
55
|
+
headers: headers,
|
|
56
|
+
context: context)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Get a POST HttpRequest object.
|
|
60
|
+
# @param [String] The URL to send the request to.
|
|
61
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
|
62
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
|
63
|
+
# @param [Hash, Optional] The context for the HTTP Request.
|
|
64
|
+
def post(query_url,
|
|
65
|
+
headers: {},
|
|
66
|
+
parameters: {},
|
|
67
|
+
context: {})
|
|
68
|
+
HttpRequest.new(HttpMethodEnum::POST,
|
|
69
|
+
query_url,
|
|
70
|
+
headers: headers,
|
|
71
|
+
parameters: parameters,
|
|
72
|
+
context: context)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Get a PUT HttpRequest object.
|
|
76
|
+
# @param [String] The URL to send the request to.
|
|
77
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
|
78
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
|
79
|
+
# @param [Hash, Optional] The context for the HTTP Request.
|
|
80
|
+
def put(query_url,
|
|
81
|
+
headers: {},
|
|
82
|
+
parameters: {},
|
|
83
|
+
context: {})
|
|
84
|
+
HttpRequest.new(HttpMethodEnum::PUT,
|
|
85
|
+
query_url,
|
|
86
|
+
headers: headers,
|
|
87
|
+
parameters: parameters,
|
|
88
|
+
context: context)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Get a PATCH HttpRequest object.
|
|
92
|
+
# @param [String] The URL to send the request to.
|
|
93
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
|
94
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
|
95
|
+
# @param [Hash, Optional] The context for the HTTP Request.
|
|
96
|
+
def patch(query_url,
|
|
97
|
+
headers: {},
|
|
98
|
+
parameters: {},
|
|
99
|
+
context: {})
|
|
100
|
+
HttpRequest.new(HttpMethodEnum::PATCH,
|
|
101
|
+
query_url,
|
|
102
|
+
headers: headers,
|
|
103
|
+
parameters: parameters,
|
|
104
|
+
context: context)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Get a DELETE HttpRequest object.
|
|
108
|
+
# @param [String] The URL to send the request to.
|
|
109
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
|
110
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
|
111
|
+
# @param [Hash, Optional] The context for the HTTP Request.
|
|
112
|
+
def delete(query_url,
|
|
113
|
+
headers: {},
|
|
114
|
+
parameters: {},
|
|
115
|
+
context: {})
|
|
116
|
+
HttpRequest.new(HttpMethodEnum::DELETE,
|
|
117
|
+
query_url,
|
|
118
|
+
headers: headers,
|
|
119
|
+
parameters: parameters,
|
|
120
|
+
context: context)
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# HTTP Methods Enumeration.
|
|
8
|
+
class HttpMethodEnum
|
|
9
|
+
HTTPMETHODENUM = [GET = 'GET'.freeze, POST = 'POST'.freeze,
|
|
10
|
+
PUT = 'PUT'.freeze, PATCH = 'PATCH'.freeze,
|
|
11
|
+
DELETE = 'DELETE'.freeze, HEAD = 'HEAD'.freeze].freeze
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# Represents a single Http Request.
|
|
8
|
+
class HttpRequest
|
|
9
|
+
attr_accessor :http_method, :query_url, :headers,
|
|
10
|
+
:parameters, :username, :password,
|
|
11
|
+
:context
|
|
12
|
+
|
|
13
|
+
# The constructor.
|
|
14
|
+
# @param [HttpMethodEnum] The HTTP method.
|
|
15
|
+
# @param [String] The URL to send the request to.
|
|
16
|
+
# @param [Hash, Optional] The headers for the HTTP Request.
|
|
17
|
+
# @param [Hash, Optional] The parameters for the HTTP Request.
|
|
18
|
+
# @param [Hash, Optional] The context for the HTTP Request.
|
|
19
|
+
def initialize(http_method,
|
|
20
|
+
query_url,
|
|
21
|
+
headers: {},
|
|
22
|
+
parameters: {},
|
|
23
|
+
context: {})
|
|
24
|
+
@http_method = http_method
|
|
25
|
+
@query_url = query_url
|
|
26
|
+
@headers = headers
|
|
27
|
+
@parameters = parameters
|
|
28
|
+
@context = context
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Add a header to the HttpRequest.
|
|
32
|
+
# @param [String] The name of the header.
|
|
33
|
+
# @param [String] The value of the header.
|
|
34
|
+
def add_header(name, value)
|
|
35
|
+
@headers[name] = value
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Add a parameter to the HttpRequest.
|
|
39
|
+
# @param [String] The name of the parameter.
|
|
40
|
+
# @param [String] The value of the parameter.
|
|
41
|
+
def add_parameter(name, value)
|
|
42
|
+
@parameters[name] = value
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Add a query parameter to the HttpRequest.
|
|
46
|
+
# @param [String] The name of the query parameter.
|
|
47
|
+
# @param [String] The value of the query parameter.
|
|
48
|
+
def add_query_parameter(name, value)
|
|
49
|
+
@query_url = APIHelper.append_url_with_query_parameters(@query_url,
|
|
50
|
+
name => value)
|
|
51
|
+
@query_url = APIHelper.clean_url(@query_url)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# Http response received.
|
|
8
|
+
class HttpResponse
|
|
9
|
+
attr_reader :status_code, :reason_phrase, :headers, :raw_body, :request
|
|
10
|
+
|
|
11
|
+
# The constructor
|
|
12
|
+
# @param [Integer] The status code returned by the server.
|
|
13
|
+
# @param [String] The reason phrase returned by the server.
|
|
14
|
+
# @param [Hash] The headers sent by the server in the response.
|
|
15
|
+
# @param [String] The raw body of the response.
|
|
16
|
+
# @param [HttpRequest] The request that resulted in this response.
|
|
17
|
+
def initialize(status_code,
|
|
18
|
+
reason_phrase,
|
|
19
|
+
headers,
|
|
20
|
+
raw_body,
|
|
21
|
+
request)
|
|
22
|
+
@status_code = status_code
|
|
23
|
+
@reason_phrase = reason_phrase
|
|
24
|
+
@headers = headers
|
|
25
|
+
@raw_body = raw_body
|
|
26
|
+
@request = request
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# Action Model.
|
|
8
|
+
class Action < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# Required for List Messages. Button content. It cannot be an empty string
|
|
13
|
+
# and must be unique within the message. Emojis are supported, markdown is
|
|
14
|
+
# not.
|
|
15
|
+
# @return [String]
|
|
16
|
+
attr_accessor :button
|
|
17
|
+
|
|
18
|
+
# Required for Reply Buttons. You can have up to 3 buttons. You cannot have
|
|
19
|
+
# leading or trailing spaces when setting the ID.
|
|
20
|
+
# @return [List of Button]
|
|
21
|
+
attr_accessor :buttons
|
|
22
|
+
|
|
23
|
+
# Required for List Messages.
|
|
24
|
+
# @return [List of Section]
|
|
25
|
+
attr_accessor :sections
|
|
26
|
+
|
|
27
|
+
# A mapping from model property names to API property names.
|
|
28
|
+
def self.names
|
|
29
|
+
@_hash = {} if @_hash.nil?
|
|
30
|
+
@_hash['button'] = 'button'
|
|
31
|
+
@_hash['buttons'] = 'buttons'
|
|
32
|
+
@_hash['sections'] = 'sections'
|
|
33
|
+
@_hash
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# An array for optional fields
|
|
37
|
+
def optionals
|
|
38
|
+
%w[
|
|
39
|
+
button
|
|
40
|
+
buttons
|
|
41
|
+
sections
|
|
42
|
+
]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# An array for nullable fields
|
|
46
|
+
def nullables
|
|
47
|
+
[]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def initialize(button = nil,
|
|
51
|
+
buttons = nil,
|
|
52
|
+
sections = nil)
|
|
53
|
+
@button = button unless button == SKIP
|
|
54
|
+
@buttons = buttons unless buttons == SKIP
|
|
55
|
+
@sections = sections unless sections == SKIP
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Creates an instance of the object from a hash.
|
|
59
|
+
def self.from_hash(hash)
|
|
60
|
+
return nil unless hash
|
|
61
|
+
|
|
62
|
+
# Extract variables from the hash.
|
|
63
|
+
button = hash.key?('button') ? hash['button'] : SKIP
|
|
64
|
+
# Parameter is an array, so we need to iterate through it
|
|
65
|
+
buttons = nil
|
|
66
|
+
unless hash['buttons'].nil?
|
|
67
|
+
buttons = []
|
|
68
|
+
hash['buttons'].each do |structure|
|
|
69
|
+
buttons << (Button.from_hash(structure) if structure)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
buttons = SKIP unless hash.key?('buttons')
|
|
74
|
+
# Parameter is an array, so we need to iterate through it
|
|
75
|
+
sections = nil
|
|
76
|
+
unless hash['sections'].nil?
|
|
77
|
+
sections = []
|
|
78
|
+
hash['sections'].each do |structure|
|
|
79
|
+
sections << (Section.from_hash(structure) if structure)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
sections = SKIP unless hash.key?('sections')
|
|
84
|
+
|
|
85
|
+
# Create object from extracted values.
|
|
86
|
+
Action.new(button,
|
|
87
|
+
buttons,
|
|
88
|
+
sections)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# Address Model.
|
|
8
|
+
class Address < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# Street number and name
|
|
13
|
+
# @return [String]
|
|
14
|
+
attr_accessor :street
|
|
15
|
+
|
|
16
|
+
# City name.
|
|
17
|
+
# @return [String]
|
|
18
|
+
attr_accessor :city
|
|
19
|
+
|
|
20
|
+
# State abbreviation.
|
|
21
|
+
# @return [String]
|
|
22
|
+
attr_accessor :state
|
|
23
|
+
|
|
24
|
+
# ZIP code.
|
|
25
|
+
# @return [String]
|
|
26
|
+
attr_accessor :zip
|
|
27
|
+
|
|
28
|
+
# Full country name.
|
|
29
|
+
# @return [String]
|
|
30
|
+
attr_accessor :country
|
|
31
|
+
|
|
32
|
+
# Two-letter country abbreviation.
|
|
33
|
+
# @return [String]
|
|
34
|
+
attr_accessor :country_code
|
|
35
|
+
|
|
36
|
+
# Two-letter country abbreviation.
|
|
37
|
+
# @return [PersonalInformationTypeEnum]
|
|
38
|
+
attr_accessor :type
|
|
39
|
+
|
|
40
|
+
# A mapping from model property names to API property names.
|
|
41
|
+
def self.names
|
|
42
|
+
@_hash = {} if @_hash.nil?
|
|
43
|
+
@_hash['street'] = 'street'
|
|
44
|
+
@_hash['city'] = 'city'
|
|
45
|
+
@_hash['state'] = 'state'
|
|
46
|
+
@_hash['zip'] = 'zip'
|
|
47
|
+
@_hash['country'] = 'country'
|
|
48
|
+
@_hash['country_code'] = 'country_code'
|
|
49
|
+
@_hash['type'] = 'type'
|
|
50
|
+
@_hash
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# An array for optional fields
|
|
54
|
+
def optionals
|
|
55
|
+
%w[
|
|
56
|
+
street
|
|
57
|
+
city
|
|
58
|
+
state
|
|
59
|
+
zip
|
|
60
|
+
country
|
|
61
|
+
country_code
|
|
62
|
+
type
|
|
63
|
+
]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# An array for nullable fields
|
|
67
|
+
def nullables
|
|
68
|
+
[]
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def initialize(street = nil,
|
|
72
|
+
city = nil,
|
|
73
|
+
state = nil,
|
|
74
|
+
zip = nil,
|
|
75
|
+
country = nil,
|
|
76
|
+
country_code = nil,
|
|
77
|
+
type = nil)
|
|
78
|
+
@street = street unless street == SKIP
|
|
79
|
+
@city = city unless city == SKIP
|
|
80
|
+
@state = state unless state == SKIP
|
|
81
|
+
@zip = zip unless zip == SKIP
|
|
82
|
+
@country = country unless country == SKIP
|
|
83
|
+
@country_code = country_code unless country_code == SKIP
|
|
84
|
+
@type = type unless type == SKIP
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Creates an instance of the object from a hash.
|
|
88
|
+
def self.from_hash(hash)
|
|
89
|
+
return nil unless hash
|
|
90
|
+
|
|
91
|
+
# Extract variables from the hash.
|
|
92
|
+
street = hash.key?('street') ? hash['street'] : SKIP
|
|
93
|
+
city = hash.key?('city') ? hash['city'] : SKIP
|
|
94
|
+
state = hash.key?('state') ? hash['state'] : SKIP
|
|
95
|
+
zip = hash.key?('zip') ? hash['zip'] : SKIP
|
|
96
|
+
country = hash.key?('country') ? hash['country'] : SKIP
|
|
97
|
+
country_code = hash.key?('country_code') ? hash['country_code'] : SKIP
|
|
98
|
+
type = hash.key?('type') ? hash['type'] : SKIP
|
|
99
|
+
|
|
100
|
+
# Create object from extracted values.
|
|
101
|
+
Address.new(street,
|
|
102
|
+
city,
|
|
103
|
+
state,
|
|
104
|
+
zip,
|
|
105
|
+
country,
|
|
106
|
+
country_code,
|
|
107
|
+
type)
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# Audio Model.
|
|
8
|
+
class Audio < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# The media object ID. Required when you are not using a link.
|
|
13
|
+
# @return [String]
|
|
14
|
+
attr_accessor :id
|
|
15
|
+
|
|
16
|
+
# The protocol and URL of the media to be sent. Use only with HTTP/HTTPS
|
|
17
|
+
# URLs. Required when you are not using an uploaded media ID.
|
|
18
|
+
# @return [String]
|
|
19
|
+
attr_accessor :link
|
|
20
|
+
|
|
21
|
+
# A mapping from model property names to API property names.
|
|
22
|
+
def self.names
|
|
23
|
+
@_hash = {} if @_hash.nil?
|
|
24
|
+
@_hash['id'] = 'id'
|
|
25
|
+
@_hash['link'] = 'link'
|
|
26
|
+
@_hash
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# An array for optional fields
|
|
30
|
+
def optionals
|
|
31
|
+
%w[
|
|
32
|
+
id
|
|
33
|
+
link
|
|
34
|
+
]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# An array for nullable fields
|
|
38
|
+
def nullables
|
|
39
|
+
[]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def initialize(id = nil,
|
|
43
|
+
link = nil)
|
|
44
|
+
@id = id unless id == SKIP
|
|
45
|
+
@link = link unless link == SKIP
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Creates an instance of the object from a hash.
|
|
49
|
+
def self.from_hash(hash)
|
|
50
|
+
return nil unless hash
|
|
51
|
+
|
|
52
|
+
# Extract variables from the hash.
|
|
53
|
+
id = hash.key?('id') ? hash['id'] : SKIP
|
|
54
|
+
link = hash.key?('link') ? hash['link'] : SKIP
|
|
55
|
+
|
|
56
|
+
# Create object from extracted values.
|
|
57
|
+
Audio.new(id,
|
|
58
|
+
link)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# whats_app_cloud_api
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module WhatsAppCloudApi
|
|
7
|
+
# Base model.
|
|
8
|
+
class BaseModel
|
|
9
|
+
# Returns a Hash representation of the current object.
|
|
10
|
+
def to_hash
|
|
11
|
+
hash = {}
|
|
12
|
+
instance_variables.each do |name|
|
|
13
|
+
value = instance_variable_get(name)
|
|
14
|
+
name = name[1..]
|
|
15
|
+
key = self.class.names.key?(name) ? self.class.names[name] : name
|
|
16
|
+
|
|
17
|
+
optional_fields = optionals if respond_to? 'optionals'
|
|
18
|
+
nullable_fields = nullables if respond_to? 'nullables'
|
|
19
|
+
if value.nil?
|
|
20
|
+
next unless nullable_fields.include?(name)
|
|
21
|
+
|
|
22
|
+
if !optional_fields.include?(name) && !nullable_fields.include?(name)
|
|
23
|
+
raise ArgumentError,
|
|
24
|
+
"`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value."
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
hash[key] = nil
|
|
29
|
+
unless value.nil?
|
|
30
|
+
if respond_to?("to_#{name}")
|
|
31
|
+
if (value.instance_of? Array) || (value.instance_of? Hash)
|
|
32
|
+
params = [hash, key]
|
|
33
|
+
hash[key] = send("to_#{name}", *params)
|
|
34
|
+
else
|
|
35
|
+
hash[key] = send("to_#{name}")
|
|
36
|
+
end
|
|
37
|
+
elsif value.instance_of? Array
|
|
38
|
+
hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
|
|
39
|
+
elsif value.instance_of? Hash
|
|
40
|
+
hash[key] = {}
|
|
41
|
+
value.each do |k, v|
|
|
42
|
+
hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
|
|
43
|
+
end
|
|
44
|
+
else
|
|
45
|
+
hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
hash
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Returns a JSON representation of the curent object.
|
|
53
|
+
def to_json(options = {})
|
|
54
|
+
hash = to_hash
|
|
55
|
+
hash.to_json(options)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|