Class: KapsoClientRuby::Resources::PhoneNumbers

Inherits:
Object
  • Object
show all
Defined in:
lib/kapso_client_ruby/resources/phone_numbers.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ PhoneNumbers

Returns a new instance of PhoneNumbers.



6
7
8
# File 'lib/kapso_client_ruby/resources/phone_numbers.rb', line 6

def initialize(client)
  @client = client
end

Instance Method Details

#deregister(phone_number_id:) ⇒ Object

Deregister phone number



48
49
50
51
52
# File 'lib/kapso_client_ruby/resources/phone_numbers.rb', line 48

def deregister(phone_number_id:)
  response = @client.request(:post, "#{phone_number_id}/deregister", 
                             body: {}.to_json, response_type: :json)
  Types::GraphSuccessResponse.new(response)
end

#get(phone_number_id:, fields: nil) ⇒ Object

Get phone number info



67
68
69
70
71
72
73
74
# File 'lib/kapso_client_ruby/resources/phone_numbers.rb', line 67

def get(phone_number_id:, fields: nil)
  query_params = {}
  query_params[:fields] = fields if fields
  
  response = @client.request(:get, phone_number_id, 
                             query: query_params, response_type: :json)
  response
end

#register(phone_number_id:, pin:, data_localization_region: nil) ⇒ Object

Register phone number

Raises:

  • (ArgumentError)


36
37
38
39
40
41
42
43
44
45
# File 'lib/kapso_client_ruby/resources/phone_numbers.rb', line 36

def register(phone_number_id:, pin:, data_localization_region: nil)
  raise ArgumentError, 'PIN cannot be empty' if pin.nil? || pin.strip.empty?
  
  payload = { pin: pin.to_s }
  payload[:data_localization_region] = data_localization_region if data_localization_region
  
  response = @client.request(:post, "#{phone_number_id}/register", 
                             body: payload.to_json, response_type: :json)
  Types::GraphSuccessResponse.new(response)
end

#request_code(phone_number_id:, code_method:, language: 'en_US') ⇒ Object

Request verification code



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/kapso_client_ruby/resources/phone_numbers.rb', line 11

def request_code(phone_number_id:, code_method:, language: 'en_US')
  validate_code_method(code_method)
  
  payload = {
    code_method: code_method.upcase,
    language: language
  }
  
  response = @client.request(:post, "#{phone_number_id}/request_code", 
                             body: payload.to_json, response_type: :json)
  Types::GraphSuccessResponse.new(response)
end

#update_settings(phone_number_id:, messaging_product: 'whatsapp', webhooks: nil, application: nil) ⇒ Object

Update phone number settings



55
56
57
58
59
60
61
62
63
64
# File 'lib/kapso_client_ruby/resources/phone_numbers.rb', line 55

def update_settings(phone_number_id:, messaging_product: 'whatsapp', 
                    webhooks: nil, application: nil)
  payload = { messaging_product: messaging_product }
  payload[:webhooks] = webhooks if webhooks
  payload[:application] = application if application
  
  response = @client.request(:post, phone_number_id, 
                             body: payload.to_json, response_type: :json)
  Types::GraphSuccessResponse.new(response)
end

#verify_code(phone_number_id:, code:) ⇒ Object

Verify the received code

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
32
33
# File 'lib/kapso_client_ruby/resources/phone_numbers.rb', line 25

def verify_code(phone_number_id:, code:)
  raise ArgumentError, 'Verification code cannot be empty' if code.nil? || code.strip.empty?
  
  payload = { code: code.to_s }
  
  response = @client.request(:post, "#{phone_number_id}/verify_code", 
                             body: payload.to_json, response_type: :json)
  Types::GraphSuccessResponse.new(response)
end