Class: WhatsAppCloudApi::PhoneNumbersController

Inherits:
BaseController show all
Defined in:
lib/whats_app_cloud_api/controllers/phone_numbers_controller.rb

Overview

PhoneNumbersController

Instance Attribute Summary

Attributes inherited from BaseController

#config, #http_call_back

Instance Method Summary collapse

Methods inherited from BaseController

#execute_request, #get_user_agent, #validate_parameters, #validate_response

Constructor Details

#initialize(config, http_call_back: nil) ⇒ PhoneNumbersController

Returns a new instance of PhoneNumbersController.

[View source]

9
10
11
# File 'lib/whats_app_cloud_api/controllers/phone_numbers_controller.rb', line 9

def initialize(config, http_call_back: nil)
  super(config, http_call_back: http_call_back)
end

Instance Method Details

#get_phone_number_by_id(phone_number_id) ⇒ GetPhoneNumberByIDResponse

When you query all the phone numbers for a WhatsApp Business Account, each phone number has an id. You can directly query for a phone number using this id.

Parameters:

  • phone_number_id (String)

    Required parameter: Example:

Returns:

[View source]

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/whats_app_cloud_api/controllers/phone_numbers_controller.rb', line 62

def get_phone_number_by_id(phone_number_id)
  # Prepare query url.

  _query_builder = config.get_base_uri
  _query_builder << '/{Phone-Number-ID}'
  _query_builder = APIHelper.append_url_with_template_parameters(
    _query_builder,
    'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
  )
  _query_url = APIHelper.clean_url _query_builder

  # Prepare headers.

  _headers = {
    'accept' => 'application/json'
  }

  # Prepare and execute HttpRequest.

  _request = config.http_client.get(
    _query_url,
    headers: _headers
  )
  OAuth2.apply(config, _request)
  _response = execute_request(_request)
  validate_response(_response)

  # Return appropriate response type.

  decoded = APIHelper.json_deserialize(_response.raw_body)
  GetPhoneNumberByIDResponse.from_hash(decoded)
end

#request_verification_code(phone_number_id, code_method, locale) ⇒ SuccessResponse

Used to request a code to verify a phone number’s ownership. You need to verify the phone number you want to use to send messages to your customers. Phone numbers must be verified through SMS/voice call. The verification process can be done through the Graph API calls specified below. Chosen method for verification. “en_US”.

Parameters:

  • phone_number_id (String)

    Required parameter: Example:

  • code_method (RequestVerificationCodeMethodEnum)

    Required parameter:

  • locale (String)

    Required parameter: Your locale. For example:

Returns:

[View source]

102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/whats_app_cloud_api/controllers/phone_numbers_controller.rb', line 102

def request_verification_code(phone_number_id,
                              code_method,
                              locale)
  # Prepare query url.

  _query_builder = config.get_base_uri
  _query_builder << '/{Phone-Number-ID}/request_code'
  _query_builder = APIHelper.append_url_with_template_parameters(
    _query_builder,
    'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
  )
  _query_url = APIHelper.clean_url _query_builder

  # Prepare headers.

  _headers = {
    'accept' => 'application/json'
  }

  # Prepare form parameters.

  _parameters = {
    'code_method' => code_method,
    'locale' => locale
  }
  _parameters = APIHelper.form_encode_parameters(_parameters)

  # Prepare and execute HttpRequest.

  _request = config.http_client.post(
    _query_url,
    headers: _headers,
    parameters: _parameters
  )
  OAuth2.apply(config, _request)
  _response = execute_request(_request)
  validate_response(_response)

  # Return appropriate response type.

  decoded = APIHelper.json_deserialize(_response.raw_body)
  SuccessResponse.from_hash(decoded)
end

#verify_code(phone_number_id, code) ⇒ SuccessResponse

Used to verify a phone number’s ownership. After you have received a SMS or Voice request code for verification, you need to verify the code that was sent to you. calling FROM_PHONE_NUMBER_ID/request_code.

Parameters:

  • phone_number_id (String)

    Required parameter: Example:

  • code (String)

    Required parameter: The code you received after

Returns:

[View source]

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/whats_app_cloud_api/controllers/phone_numbers_controller.rb', line 20

def verify_code(phone_number_id,
                code)
  # Prepare query url.

  _query_builder = config.get_base_uri
  _query_builder << '/{Phone-Number-ID}/verify_code'
  _query_builder = APIHelper.append_url_with_template_parameters(
    _query_builder,
    'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
  )
  _query_url = APIHelper.clean_url _query_builder

  # Prepare headers.

  _headers = {
    'accept' => 'application/json'
  }

  # Prepare form parameters.

  _parameters = {
    'code' => code
  }
  _parameters = APIHelper.form_encode_parameters(_parameters)

  # Prepare and execute HttpRequest.

  _request = config.http_client.post(
    _query_url,
    headers: _headers,
    parameters: _parameters
  )
  OAuth2.apply(config, _request)
  _response = execute_request(_request)
  validate_response(_response)

  # Return appropriate response type.

  decoded = APIHelper.json_deserialize(_response.raw_body)
  SuccessResponse.from_hash(decoded)
end