Sha256: 1644e6436d353743a6503dcb036e5e13f2a0dcfa232240bb4d3a870e0cb2edb3

Contents?: true

Size: 1.61 KB

Versions: 2

Compression:

Stored size: 1.61 KB

Contents

# typed: strict
# frozen_string_literal: true

require_relative "request"
require_relative "response"

module WhatsappSdk
  module Api
    class BusinessProfile < Request
      DEFAULT_FIELDS = 'about,address,description,email,profile_picture_url,websites,vertical'

      # Get the details of business profile.
      #
      # @param phone_number_id [Integer] Phone Number Id.
      # @return [Api::Response] Response object.
      sig { params(phone_number_id: Integer).returns(Api::Response) }
      def details(phone_number_id)
        response = send_request(
          http_method: "get",
          endpoint: "#{phone_number_id}/whatsapp_business_profile?fields=#{DEFAULT_FIELDS}"
        )

        Api::Response.new(
          response: response,
          data_class_type: Api::Responses::BusinessProfileDataResponse
        )
      end

      # Update the details of business profile.
      #
      # @param phone_number_id [Integer] Phone Number Id.
      # @param params [Hash] Params to update.
      # @return [Api::Response] Response object.
      sig do
        params(
          phone_number_id: Integer, params: T::Hash[T.untyped, T.untyped]
        ).returns(Api::Response)
      end
      def update(phone_number_id:, params:)
        # this is a required field
        params[:messaging_product] = 'whatsapp'

        response = send_request(
          http_method: "post",
          endpoint: "#{phone_number_id}/whatsapp_business_profile",
          params: params
        )

        Api::Response.new(
          response: response,
          data_class_type: Api::Responses::SuccessResponse
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
whatsapp_sdk-0.11.0 lib/whatsapp_sdk/api/business_profile.rb
whatsapp_sdk-0.10.0 lib/whatsapp_sdk/api/business_profile.rb