Class: WhatsAppCloudApi::BusinessProfilesController

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

Overview

BusinessProfilesController

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) ⇒ BusinessProfilesController

Returns a new instance of BusinessProfilesController.



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

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

Instance Method Details

#get_business_profile_id(phone_number_id, fields: nil) ⇒ GetBusinessProfileIDResponse

Use this endpoint to retrieve your business’ profile. This business profile is visible to consumers in the chat thread next to the profile photo. The profile information will contain a business profile ID which you can use to make API calls. want to know from your business as a comma separated list of fields. Available fields include: id, about, messaging_product, address, description, vertical, email, websites, profile_picture_url

Parameters:

  • phone_number_id (String)

    Required parameter: Example:

  • fields (String) (defaults to: nil)

    Optional parameter: Here you can specify what you

Returns:



60
61
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
90
91
92
# File 'lib/whats_app_cloud_api/controllers/business_profiles_controller.rb', line 60

def get_business_profile_id(phone_number_id,
                            fields: nil)
  # Prepare query url.
  _query_builder = config.get_base_uri
  _query_builder << '/{Phone-Number-ID}/whatsapp_business_profile'
  _query_builder = APIHelper.append_url_with_template_parameters(
    _query_builder,
    'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
  )
  _query_builder = APIHelper.append_url_with_query_parameters(
    _query_builder,
    'fields' => fields
  )
  _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)
  GetBusinessProfileIDResponse.from_hash(decoded)
end

#update_business_profile(phone_number_id, body) ⇒ SuccessResponse

Use this endpoint to update your business’ profile information such as the business description, email or address.

Parameters:

Returns:



18
19
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
# File 'lib/whats_app_cloud_api/controllers/business_profiles_controller.rb', line 18

def update_business_profile(phone_number_id,
                            body)
  # Prepare query url.
  _query_builder = config.get_base_uri
  _query_builder << '/{Phone-Number-ID}/whatsapp_business_profile'
  _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',
    'Content-Type' => 'application/json'
  }

  # Prepare and execute HttpRequest.
  _request = config.http_client.post(
    _query_url,
    headers: _headers,
    parameters: body.to_json
  )
  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