Class: Pinnacle::PhoneNumbers::Campaign::Client
- Inherits:
-
Object
- Object
- Pinnacle::PhoneNumbers::Campaign::Client
- Defined in:
- lib/pinnacle/phone_numbers/campaign/client.rb
Instance Method Summary collapse
-
#attach(request_options: {}, **params) ⇒ Pinnacle::Types::AttachedPhoneNumberResult
Link a phone number to a specific campaign.
-
#detach(request_options: {}, **params) ⇒ Pinnacle::Types::DetachedPhoneNumberResult
Remove the association between a phone number and its attached campaign.
- #initialize(client:) ⇒ void constructor
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/pinnacle/phone_numbers/campaign/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#attach(request_options: {}, **params) ⇒ Pinnacle::Types::AttachedPhoneNumberResult
Link a phone number to a specific campaign. Phone numbers must be linked to a campaign to send messages.
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 |
# File 'lib/pinnacle/phone_numbers/campaign/client.rb', line 25 def attach(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) body_prop_names = i[phones campaign_type campaign_id] body_bag = params.slice(*body_prop_names) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "phone-numbers/attach-campaign", body: Pinnacle::PhoneNumbers::Campaign::Types::AttachCampaignParams.new(body_bag).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Pinnacle::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Pinnacle::Types::AttachedPhoneNumberResult.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#detach(request_options: {}, **params) ⇒ Pinnacle::Types::DetachedPhoneNumberResult
Remove the association between a phone number and its attached campaign.
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 |
# File 'lib/pinnacle/phone_numbers/campaign/client.rb', line 62 def detach(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) body_prop_names = i[phones] body_bag = params.slice(*body_prop_names) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "DELETE", path: "phone-numbers/detach-campaign", body: Pinnacle::PhoneNumbers::Campaign::Types::DetachCampaignParams.new(body_bag).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Pinnacle::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Pinnacle::Types::DetachedPhoneNumberResult.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |