Class: Pinnacle::PhoneNumbers::Client
- Inherits:
-
Object
- Object
- Pinnacle::PhoneNumbers::Client
- Defined in:
- lib/pinnacle/phone_numbers/client.rb
Instance Method Summary collapse
-
#buy(request_options: {}, **params) ⇒ Array[Pinnacle::Types::PurchasedNumber]
Purchase one or more phone numbers found through the [search endpoint](./search).
- #campaign ⇒ Pinnacle::Campaign::Client
-
#get(request_options: {}, **params) ⇒ Pinnacle::PhoneNumbers::Types::PhoneNumbersGetResponse
Retrieve information about any phone number.
- #initialize(client:) ⇒ void constructor
-
#search(request_options: {}, **params) ⇒ Array[Pinnacle::Types::PhoneNumberDetails]
Search for available phone numbers that match your exact criteria.
- #webhook ⇒ Pinnacle::Webhook::Client
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#buy(request_options: {}, **params) ⇒ Array[Pinnacle::Types::PurchasedNumber]
Purchase one or more phone numbers found through the [search endpoint](./search).
Billing uses your account credits and the numbers are ready for immediate use.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 61 def buy(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) body_prop_names = i[numbers] body_bag = params.slice(*body_prop_names) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "phone-numbers/buy", body: Pinnacle::PhoneNumbers::Types::BuyPhoneNumberParams.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 return if code.between?(200, 299) error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#campaign ⇒ Pinnacle::Campaign::Client
128 129 130 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 128 def campaign @campaign ||= Pinnacle::PhoneNumbers::Campaign::Client.new(client: @client) end |
#get(request_options: {}, **params) ⇒ Pinnacle::PhoneNumbers::Types::PhoneNumbersGetResponse
Retrieve information about any phone number.
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 96 def get(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) body_prop_names = i[phone level ] body_bag = params.slice(*body_prop_names) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "phone-numbers/details", body: Pinnacle::PhoneNumbers::Types::RetrievePhoneNumberDetailsParams.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::PhoneNumbers::Types::PhoneNumbersGetResponse.load(response.body) else error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#search(request_options: {}, **params) ⇒ Array[Pinnacle::Types::PhoneNumberDetails]
Search for available phone numbers that match your exact criteria.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 24 def search(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) body_prop_names = i[features location number type] body_bag = params.slice(*body_prop_names) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "phone-numbers/search", body: Pinnacle::PhoneNumbers::Types::SearchPhoneNumberParams.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 return if code.between?(200, 299) error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#webhook ⇒ Pinnacle::Webhook::Client
123 124 125 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 123 def webhook @webhook ||= Pinnacle::PhoneNumbers::Webhook::Client.new(client: @client) end |