whatsapp-ruby-sdk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +85 -0
  4. data/lib/whats_app_cloud_api/api_helper.rb +277 -0
  5. data/lib/whats_app_cloud_api/client.rb +68 -0
  6. data/lib/whats_app_cloud_api/configuration.rb +132 -0
  7. data/lib/whats_app_cloud_api/controllers/base_controller.rb +52 -0
  8. data/lib/whats_app_cloud_api/controllers/business_profiles_controller.rb +94 -0
  9. data/lib/whats_app_cloud_api/controllers/media_controller.rb +142 -0
  10. data/lib/whats_app_cloud_api/controllers/messages_controller.rb +51 -0
  11. data/lib/whats_app_cloud_api/controllers/phone_numbers_controller.rb +141 -0
  12. data/lib/whats_app_cloud_api/controllers/registration_controller.rb +91 -0
  13. data/lib/whats_app_cloud_api/controllers/two_step_verification_controller.rb +57 -0
  14. data/lib/whats_app_cloud_api/exceptions/api_exception.rb +20 -0
  15. data/lib/whats_app_cloud_api/http/auth/o_auth2.rb +17 -0
  16. data/lib/whats_app_cloud_api/http/faraday_client.rb +97 -0
  17. data/lib/whats_app_cloud_api/http/http_call_back.rb +24 -0
  18. data/lib/whats_app_cloud_api/http/http_client.rb +123 -0
  19. data/lib/whats_app_cloud_api/http/http_method_enum.rb +13 -0
  20. data/lib/whats_app_cloud_api/http/http_request.rb +54 -0
  21. data/lib/whats_app_cloud_api/http/http_response.rb +29 -0
  22. data/lib/whats_app_cloud_api/models/action.rb +91 -0
  23. data/lib/whats_app_cloud_api/models/address.rb +110 -0
  24. data/lib/whats_app_cloud_api/models/audio.rb +61 -0
  25. data/lib/whats_app_cloud_api/models/base_model.rb +58 -0
  26. data/lib/whats_app_cloud_api/models/body.rb +49 -0
  27. data/lib/whats_app_cloud_api/models/business_profile.rb +123 -0
  28. data/lib/whats_app_cloud_api/models/button.rb +71 -0
  29. data/lib/whats_app_cloud_api/models/button_parameter.rb +72 -0
  30. data/lib/whats_app_cloud_api/models/button_parameter_type_enum.rb +17 -0
  31. data/lib/whats_app_cloud_api/models/component.rb +83 -0
  32. data/lib/whats_app_cloud_api/models/component_type_enum.rb +20 -0
  33. data/lib/whats_app_cloud_api/models/contact.rb +145 -0
  34. data/lib/whats_app_cloud_api/models/content_type_enum.rb +14 -0
  35. data/lib/whats_app_cloud_api/models/currency.rb +67 -0
  36. data/lib/whats_app_cloud_api/models/date_time_object.rb +128 -0
  37. data/lib/whats_app_cloud_api/models/document.rb +81 -0
  38. data/lib/whats_app_cloud_api/models/email_object.rb +60 -0
  39. data/lib/whats_app_cloud_api/models/footer.rb +49 -0
  40. data/lib/whats_app_cloud_api/models/get_business_profile_id_response.rb +57 -0
  41. data/lib/whats_app_cloud_api/models/get_phone_number_by_id_response.rb +78 -0
  42. data/lib/whats_app_cloud_api/models/header.rb +93 -0
  43. data/lib/whats_app_cloud_api/models/header_type_enum.rb +23 -0
  44. data/lib/whats_app_cloud_api/models/image.rb +71 -0
  45. data/lib/whats_app_cloud_api/models/interactive.rb +87 -0
  46. data/lib/whats_app_cloud_api/models/interactive_type_enum.rb +17 -0
  47. data/lib/whats_app_cloud_api/models/language.rb +60 -0
  48. data/lib/whats_app_cloud_api/models/location.rb +78 -0
  49. data/lib/whats_app_cloud_api/models/message.rb +194 -0
  50. data/lib/whats_app_cloud_api/models/message_type_enum.rb +41 -0
  51. data/lib/whats_app_cloud_api/models/name.rb +100 -0
  52. data/lib/whats_app_cloud_api/models/org.rb +70 -0
  53. data/lib/whats_app_cloud_api/models/parameter.rb +113 -0
  54. data/lib/whats_app_cloud_api/models/parameter_type_enum.rb +29 -0
  55. data/lib/whats_app_cloud_api/models/personal_information_type_enum.rb +17 -0
  56. data/lib/whats_app_cloud_api/models/phone_object.rb +70 -0
  57. data/lib/whats_app_cloud_api/models/phone_type_enum.rb +26 -0
  58. data/lib/whats_app_cloud_api/models/quality_rating_enum.rb +25 -0
  59. data/lib/whats_app_cloud_api/models/register_phone_request.rb +58 -0
  60. data/lib/whats_app_cloud_api/models/request_verification_code_method_enum.rb +17 -0
  61. data/lib/whats_app_cloud_api/models/request_verification_code_request.rb +57 -0
  62. data/lib/whats_app_cloud_api/models/response_contact.rb +57 -0
  63. data/lib/whats_app_cloud_api/models/response_message.rb +48 -0
  64. data/lib/whats_app_cloud_api/models/retrieve_media_url_response.rb +94 -0
  65. data/lib/whats_app_cloud_api/models/row.rb +68 -0
  66. data/lib/whats_app_cloud_api/models/section.rb +72 -0
  67. data/lib/whats_app_cloud_api/models/send_message_response.rb +85 -0
  68. data/lib/whats_app_cloud_api/models/set_two_step_verification_code_request.rb +48 -0
  69. data/lib/whats_app_cloud_api/models/sticker.rb +61 -0
  70. data/lib/whats_app_cloud_api/models/sub_type_enum.rb +20 -0
  71. data/lib/whats_app_cloud_api/models/success_response.rb +48 -0
  72. data/lib/whats_app_cloud_api/models/template.rb +78 -0
  73. data/lib/whats_app_cloud_api/models/text.rb +72 -0
  74. data/lib/whats_app_cloud_api/models/update_business_profile_request.rb +116 -0
  75. data/lib/whats_app_cloud_api/models/upload_media.rb +48 -0
  76. data/lib/whats_app_cloud_api/models/upload_media_request.rb +80 -0
  77. data/lib/whats_app_cloud_api/models/url_object.rb +60 -0
  78. data/lib/whats_app_cloud_api/models/verify_code_request.rb +48 -0
  79. data/lib/whats_app_cloud_api/models/vertical_enum.rb +68 -0
  80. data/lib/whats_app_cloud_api/models/video.rb +61 -0
  81. data/lib/whats_app_cloud_api/utilities/date_time_helper.rb +156 -0
  82. data/lib/whats_app_cloud_api/utilities/file_wrapper.rb +16 -0
  83. data/lib/whats_app_cloud_api.rb +104 -0
  84. metadata +266 -0
@@ -0,0 +1,94 @@
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
+ # BusinessProfilesController
8
+ class BusinessProfilesController < BaseController
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # Use this endpoint to update your business’ profile information such as the
14
+ # business description, email or address.
15
+ # @param [String] phone_number_id Required parameter: Example:
16
+ # @param [UpdateBusinessProfileRequest] body Required parameter: Example:
17
+ # @return [SuccessResponse] response from the API call
18
+ def update_business_profile(phone_number_id,
19
+ body)
20
+ # Prepare query url.
21
+ _query_builder = config.get_base_uri
22
+ _query_builder << '/{Phone-Number-ID}/whatsapp_business_profile'
23
+ _query_builder = APIHelper.append_url_with_template_parameters(
24
+ _query_builder,
25
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
26
+ )
27
+ _query_url = APIHelper.clean_url _query_builder
28
+
29
+ # Prepare headers.
30
+ _headers = {
31
+ 'accept' => 'application/json',
32
+ 'Content-Type' => 'application/json'
33
+ }
34
+
35
+ # Prepare and execute HttpRequest.
36
+ _request = config.http_client.post(
37
+ _query_url,
38
+ headers: _headers,
39
+ parameters: body.to_json
40
+ )
41
+ OAuth2.apply(config, _request)
42
+ _response = execute_request(_request)
43
+ validate_response(_response)
44
+
45
+ # Return appropriate response type.
46
+ decoded = APIHelper.json_deserialize(_response.raw_body)
47
+ SuccessResponse.from_hash(decoded)
48
+ end
49
+
50
+ # Use this endpoint to retrieve your business’ profile. This business
51
+ # profile is visible to consumers in the chat thread next to the profile
52
+ # photo. The profile information will contain a business profile ID which
53
+ # you can use to make API calls.
54
+ # @param [String] phone_number_id Required parameter: Example:
55
+ # @param [String] fields Optional parameter: Here you can specify what you
56
+ # want to know from your business as a comma separated list of fields.
57
+ # Available fields include: id, about, messaging_product, address,
58
+ # description, vertical, email, websites, profile_picture_url
59
+ # @return [GetBusinessProfileIDResponse] response from the API call
60
+ def get_business_profile_id(phone_number_id,
61
+ fields: nil)
62
+ # Prepare query url.
63
+ _query_builder = config.get_base_uri
64
+ _query_builder << '/{Phone-Number-ID}/whatsapp_business_profile'
65
+ _query_builder = APIHelper.append_url_with_template_parameters(
66
+ _query_builder,
67
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
68
+ )
69
+ _query_builder = APIHelper.append_url_with_query_parameters(
70
+ _query_builder,
71
+ 'fields' => fields
72
+ )
73
+ _query_url = APIHelper.clean_url _query_builder
74
+
75
+ # Prepare headers.
76
+ _headers = {
77
+ 'accept' => 'application/json'
78
+ }
79
+
80
+ # Prepare and execute HttpRequest.
81
+ _request = config.http_client.get(
82
+ _query_url,
83
+ headers: _headers
84
+ )
85
+ OAuth2.apply(config, _request)
86
+ _response = execute_request(_request)
87
+ validate_response(_response)
88
+
89
+ # Return appropriate response type.
90
+ decoded = APIHelper.json_deserialize(_response.raw_body)
91
+ GetBusinessProfileIDResponse.from_hash(decoded)
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,142 @@
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
+ # MediaController
8
+ class MediaController < BaseController
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # This endpoint can be used for deleting a media object.
14
+ # @param [String] media_id Required parameter: Media object ID from either
15
+ # uploading media endpoint or media message Webhooks
16
+ # @return [SuccessResponse] response from the API call
17
+ def delete_media(media_id)
18
+ # Prepare query url.
19
+ _query_builder = config.get_base_uri
20
+ _query_builder << '/{Media-ID}'
21
+ _query_builder = APIHelper.append_url_with_template_parameters(
22
+ _query_builder,
23
+ 'Media-ID' => { 'value' => media_id, 'encode' => true }
24
+ )
25
+ _query_url = APIHelper.clean_url _query_builder
26
+
27
+ # Prepare headers.
28
+ _headers = {
29
+ 'accept' => 'application/json'
30
+ }
31
+
32
+ # Prepare and execute HttpRequest.
33
+ _request = config.http_client.delete(
34
+ _query_url,
35
+ headers: _headers
36
+ )
37
+ OAuth2.apply(config, _request)
38
+ _response = execute_request(_request)
39
+ validate_response(_response)
40
+
41
+ # Return appropriate response type.
42
+ decoded = APIHelper.json_deserialize(_response.raw_body)
43
+ SuccessResponse.from_hash(decoded)
44
+ end
45
+
46
+ # To retrieve your media’s URL, make a request to this endpoint. Later, you
47
+ # can use this URL to download the media file.
48
+ # @param [String] media_id Required parameter: Media object ID from either
49
+ # uploading media endpoint or media message Webhooks
50
+ # @return [RetrieveMediaURLResponse] response from the API call
51
+ def retrieve_media_url(media_id)
52
+ # Prepare query url.
53
+ _query_builder = config.get_base_uri
54
+ _query_builder << '/{Media-ID}'
55
+ _query_builder = APIHelper.append_url_with_template_parameters(
56
+ _query_builder,
57
+ 'Media-ID' => { 'value' => media_id, 'encode' => true }
58
+ )
59
+ _query_url = APIHelper.clean_url _query_builder
60
+
61
+ # Prepare headers.
62
+ _headers = {
63
+ 'accept' => 'application/json'
64
+ }
65
+
66
+ # Prepare and execute HttpRequest.
67
+ _request = config.http_client.get(
68
+ _query_url,
69
+ headers: _headers
70
+ )
71
+ OAuth2.apply(config, _request)
72
+ _response = execute_request(_request)
73
+ validate_response(_response)
74
+
75
+ # Return appropriate response type.
76
+ decoded = APIHelper.json_deserialize(_response.raw_body)
77
+ RetrieveMediaURLResponse.from_hash(decoded)
78
+ end
79
+
80
+ # Used to upload media. All media files sent through this endpoint are
81
+ # encrypted and persist for 30 days.
82
+ # @param [String] phone_number_id Required parameter: Example:
83
+ # @param [String] messaging_product Required parameter: Messaging service
84
+ # used for the request. In this case, use whatsapp.
85
+ # @param [String] file Required parameter: Path to the file stored in your
86
+ # local directory. For example: "@/local/path/file.jpg".
87
+ # @param [String] type Required parameter: Type of media file being
88
+ # uploaded. See Supported Media Types for more information. Supported
89
+ # options for images are: `image/jpeg`, `image/png` Supported options for
90
+ # documents are: `text/plain`, `application/pdf`,
91
+ # `application/vnd.ms-powerpoint`, `application/msword`,
92
+ # `application/vnd.ms-excel`,
93
+ # `application/vnd.openxmlformats-officedocument.wordprocessingml.document`,
94
+ # `application/vnd.openxmlformats-officedocument.presentationml.presentation
95
+ # `, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`
96
+ # Supported options for audio are: `audio/aac`, `audio/mp4`, `audio/mpeg`,
97
+ # `audio/amr`, `audio/ogg`, `audio/opus` Supported options for video are:
98
+ # `video/mp4`, `video/3gp` Supported options for stickers are:
99
+ # `image/webp`
100
+ # @return [UploadMedia] response from the API call
101
+ def upload_media(phone_number_id,
102
+ messaging_product,
103
+ file,
104
+ type)
105
+ # Prepare query url.
106
+ _query_builder = config.get_base_uri
107
+ _query_builder << '/{Phone-Number-ID}/media'
108
+ _query_builder = APIHelper.append_url_with_template_parameters(
109
+ _query_builder,
110
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
111
+ )
112
+ _query_url = APIHelper.clean_url _query_builder
113
+
114
+ # Prepare headers.
115
+ _headers = {
116
+ 'accept' => 'application/json'
117
+ }
118
+
119
+ # Prepare form parameters.
120
+ _parameters = {
121
+ 'messaging_product' => messaging_product,
122
+ 'file' => file,
123
+ 'type' => type
124
+ }
125
+ _parameters = APIHelper.form_encode_parameters(_parameters)
126
+
127
+ # Prepare and execute HttpRequest.
128
+ _request = config.http_client.post(
129
+ _query_url,
130
+ headers: _headers,
131
+ parameters: _parameters
132
+ )
133
+ OAuth2.apply(config, _request)
134
+ _response = execute_request(_request)
135
+ validate_response(_response)
136
+
137
+ # Return appropriate response type.
138
+ decoded = APIHelper.json_deserialize(_response.raw_body)
139
+ UploadMedia.from_hash(decoded)
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,51 @@
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
+ # MessagesController
8
+ class MessagesController < BaseController
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # Use this endpoint to send text messages, media, message templates to your
14
+ # customers.
15
+ # @param [String] phone_number_id Required parameter: Example:
16
+ # @param [Message] body Required parameter: To send a message, you must
17
+ # first assemble a message object with the content you want to send.
18
+ # @return [SendMessageResponse] response from the API call
19
+ def send_message(phone_number_id,
20
+ body)
21
+ # Prepare query url.
22
+ _query_builder = config.get_base_uri
23
+ _query_builder << '/{Phone-Number-ID}/messages'
24
+ _query_builder = APIHelper.append_url_with_template_parameters(
25
+ _query_builder,
26
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
27
+ )
28
+ _query_url = APIHelper.clean_url _query_builder
29
+
30
+ # Prepare headers.
31
+ _headers = {
32
+ 'accept' => 'application/json',
33
+ 'Content-Type' => 'application/json'
34
+ }
35
+
36
+ # Prepare and execute HttpRequest.
37
+ _request = config.http_client.post(
38
+ _query_url,
39
+ headers: _headers,
40
+ parameters: body.to_json
41
+ )
42
+ OAuth2.apply(config, _request)
43
+ _response = execute_request(_request)
44
+ validate_response(_response)
45
+
46
+ # Return appropriate response type.
47
+ decoded = APIHelper.json_deserialize(_response.raw_body)
48
+ SendMessageResponse.from_hash(decoded)
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,141 @@
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
+ # PhoneNumbersController
8
+ class PhoneNumbersController < BaseController
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # Used to verify a phone number's ownership. After you have received a SMS
14
+ # or Voice request code for verification, you need to verify the code that
15
+ # was sent to you.
16
+ # @param [String] phone_number_id Required parameter: Example:
17
+ # @param [String] code Required parameter: The code you received after
18
+ # calling FROM_PHONE_NUMBER_ID/request_code.
19
+ # @return [SuccessResponse] response from the API call
20
+ def verify_code(phone_number_id,
21
+ code)
22
+ # Prepare query url.
23
+ _query_builder = config.get_base_uri
24
+ _query_builder << '/{Phone-Number-ID}/verify_code'
25
+ _query_builder = APIHelper.append_url_with_template_parameters(
26
+ _query_builder,
27
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
28
+ )
29
+ _query_url = APIHelper.clean_url _query_builder
30
+
31
+ # Prepare headers.
32
+ _headers = {
33
+ 'accept' => 'application/json'
34
+ }
35
+
36
+ # Prepare form parameters.
37
+ _parameters = {
38
+ 'code' => code
39
+ }
40
+ _parameters = APIHelper.form_encode_parameters(_parameters)
41
+
42
+ # Prepare and execute HttpRequest.
43
+ _request = config.http_client.post(
44
+ _query_url,
45
+ headers: _headers,
46
+ parameters: _parameters
47
+ )
48
+ OAuth2.apply(config, _request)
49
+ _response = execute_request(_request)
50
+ validate_response(_response)
51
+
52
+ # Return appropriate response type.
53
+ decoded = APIHelper.json_deserialize(_response.raw_body)
54
+ SuccessResponse.from_hash(decoded)
55
+ end
56
+
57
+ # When you query all the phone numbers for a WhatsApp Business Account, each
58
+ # phone number has an id. You can directly query for a phone number using
59
+ # this id.
60
+ # @param [String] phone_number_id Required parameter: Example:
61
+ # @return [GetPhoneNumberByIDResponse] response from the API call
62
+ def get_phone_number_by_id(phone_number_id)
63
+ # Prepare query url.
64
+ _query_builder = config.get_base_uri
65
+ _query_builder << '/{Phone-Number-ID}'
66
+ _query_builder = APIHelper.append_url_with_template_parameters(
67
+ _query_builder,
68
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
69
+ )
70
+ _query_url = APIHelper.clean_url _query_builder
71
+
72
+ # Prepare headers.
73
+ _headers = {
74
+ 'accept' => 'application/json'
75
+ }
76
+
77
+ # Prepare and execute HttpRequest.
78
+ _request = config.http_client.get(
79
+ _query_url,
80
+ headers: _headers
81
+ )
82
+ OAuth2.apply(config, _request)
83
+ _response = execute_request(_request)
84
+ validate_response(_response)
85
+
86
+ # Return appropriate response type.
87
+ decoded = APIHelper.json_deserialize(_response.raw_body)
88
+ GetPhoneNumberByIDResponse.from_hash(decoded)
89
+ end
90
+
91
+ # Used to request a code to verify a phone number's ownership. You need to
92
+ # verify the phone number you want to use to send messages to your
93
+ # customers. Phone numbers must be verified through SMS/voice call. The
94
+ # verification process can be done through the Graph API calls specified
95
+ # below.
96
+ # @param [String] phone_number_id Required parameter: Example:
97
+ # @param [RequestVerificationCodeMethodEnum] code_method Required parameter:
98
+ # Chosen method for verification.
99
+ # @param [String] locale Required parameter: Your locale. For example:
100
+ # "en_US".
101
+ # @return [SuccessResponse] response from the API call
102
+ def request_verification_code(phone_number_id,
103
+ code_method,
104
+ locale)
105
+ # Prepare query url.
106
+ _query_builder = config.get_base_uri
107
+ _query_builder << '/{Phone-Number-ID}/request_code'
108
+ _query_builder = APIHelper.append_url_with_template_parameters(
109
+ _query_builder,
110
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
111
+ )
112
+ _query_url = APIHelper.clean_url _query_builder
113
+
114
+ # Prepare headers.
115
+ _headers = {
116
+ 'accept' => 'application/json'
117
+ }
118
+
119
+ # Prepare form parameters.
120
+ _parameters = {
121
+ 'code_method' => code_method,
122
+ 'locale' => locale
123
+ }
124
+ _parameters = APIHelper.form_encode_parameters(_parameters)
125
+
126
+ # Prepare and execute HttpRequest.
127
+ _request = config.http_client.post(
128
+ _query_url,
129
+ headers: _headers,
130
+ parameters: _parameters
131
+ )
132
+ OAuth2.apply(config, _request)
133
+ _response = execute_request(_request)
134
+ validate_response(_response)
135
+
136
+ # Return appropriate response type.
137
+ decoded = APIHelper.json_deserialize(_response.raw_body)
138
+ SuccessResponse.from_hash(decoded)
139
+ end
140
+ end
141
+ 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
+ # RegistrationController
8
+ class RegistrationController < BaseController
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # Used to register a phone number or to migrate WhatsApp Business Accounts
14
+ # from a current On-Premises deployment to the new Cloud-Based API. Business
15
+ # Solution Providers (BSPs) must authenticate themselves with an access
16
+ # token with the whatsapp_business_management permission.
17
+ # @param [String] phone_number_id Required parameter: Example:
18
+ # @param [RegisterPhoneRequest] body Required parameter: Example:
19
+ # @return [SuccessResponse] response from the API call
20
+ def register_phone(phone_number_id,
21
+ body)
22
+ # Prepare query url.
23
+ _query_builder = config.get_base_uri
24
+ _query_builder << '/{Phone-Number-ID}/register'
25
+ _query_builder = APIHelper.append_url_with_template_parameters(
26
+ _query_builder,
27
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
28
+ )
29
+ _query_url = APIHelper.clean_url _query_builder
30
+
31
+ # Prepare headers.
32
+ _headers = {
33
+ 'accept' => 'application/json',
34
+ 'Content-Type' => 'application/json'
35
+ }
36
+
37
+ # Prepare and execute HttpRequest.
38
+ _request = config.http_client.post(
39
+ _query_url,
40
+ headers: _headers,
41
+ parameters: body.to_json
42
+ )
43
+ OAuth2.apply(config, _request)
44
+ _response = execute_request(_request)
45
+ validate_response(_response)
46
+
47
+ # Return appropriate response type.
48
+ decoded = APIHelper.json_deserialize(_response.raw_body)
49
+ SuccessResponse.from_hash(decoded)
50
+ end
51
+
52
+ # Used to deregister a phone number. Deregister phone removes a previously
53
+ # registered phone. You can always re-register your phone using by repeating
54
+ # the registration process. Business Solution Providers (BSPs) must
55
+ # authenticate themselves with an access token with the
56
+ # whatsapp_business_management permission.
57
+ # @param [ContentTypeEnum] content_type Required parameter: Example:
58
+ # @param [String] phone_number_id Required parameter: Example:
59
+ # @return [SuccessResponse] response from the API call
60
+ def deregister_phone(content_type,
61
+ phone_number_id)
62
+ # Prepare query url.
63
+ _query_builder = config.get_base_uri
64
+ _query_builder << '/{Phone-Number-ID}/deregister'
65
+ _query_builder = APIHelper.append_url_with_template_parameters(
66
+ _query_builder,
67
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
68
+ )
69
+ _query_url = APIHelper.clean_url _query_builder
70
+
71
+ # Prepare headers.
72
+ _headers = {
73
+ 'accept' => 'application/json',
74
+ 'Content-Type' => content_type
75
+ }
76
+
77
+ # Prepare and execute HttpRequest.
78
+ _request = config.http_client.post(
79
+ _query_url,
80
+ headers: _headers
81
+ )
82
+ OAuth2.apply(config, _request)
83
+ _response = execute_request(_request)
84
+ validate_response(_response)
85
+
86
+ # Return appropriate response type.
87
+ decoded = APIHelper.json_deserialize(_response.raw_body)
88
+ SuccessResponse.from_hash(decoded)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,57 @@
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
+ # TwoStepVerificationController
8
+ class TwoStepVerificationController < BaseController
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # You are required to set up two-step verification for your phone number, as
14
+ # this provides an extra layer of security to the business accounts. You can
15
+ # use this endpoint to change two-step verification code associated with
16
+ # your account.
17
+ # After you change the verification code, future requests like changing the
18
+ # name, must use the new code.
19
+ # You set up two-factor verification and register a phone number in the same
20
+ # API call.
21
+ # @param [String] phone_number_id Required parameter: Example:
22
+ # @param [SetTwoStepVerificationCodeRequest] body Required parameter:
23
+ # Example:
24
+ # @return [SuccessResponse] response from the API call
25
+ def set_two_step_verification_code(phone_number_id,
26
+ body)
27
+ # Prepare query url.
28
+ _query_builder = config.get_base_uri
29
+ _query_builder << '/{Phone-Number-ID}'
30
+ _query_builder = APIHelper.append_url_with_template_parameters(
31
+ _query_builder,
32
+ 'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
33
+ )
34
+ _query_url = APIHelper.clean_url _query_builder
35
+
36
+ # Prepare headers.
37
+ _headers = {
38
+ 'accept' => 'application/json',
39
+ 'Content-Type' => 'application/json'
40
+ }
41
+
42
+ # Prepare and execute HttpRequest.
43
+ _request = config.http_client.post(
44
+ _query_url,
45
+ headers: _headers,
46
+ parameters: body.to_json
47
+ )
48
+ OAuth2.apply(config, _request)
49
+ _response = execute_request(_request)
50
+ validate_response(_response)
51
+
52
+ # Return appropriate response type.
53
+ decoded = APIHelper.json_deserialize(_response.raw_body)
54
+ SuccessResponse.from_hash(decoded)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,20 @@
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
+ # Class for exceptions when there is a network error, status code error, etc.
8
+ class APIException < StandardError
9
+ attr_reader :response, :response_code
10
+
11
+ # The constructor.
12
+ # @param [String] The reason for raising an exception.
13
+ # @param [HttpResponse] The HttpReponse of the API call.
14
+ def initialize(reason, response)
15
+ super(reason)
16
+ @response = response
17
+ @response_code = response.status_code
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
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
+ # Utility class for OAuth 2 authorization and token management.
8
+ class OAuth2
9
+ # Add OAuth2 authentication to the http request.
10
+ # @param [HttpRequest] The HttpRequest object to which authentication will
11
+ # be added.
12
+ def self.apply(config, http_request)
13
+ token = config.access_token
14
+ http_request.headers['Authorization'] = "Bearer #{token}"
15
+ end
16
+ end
17
+ end