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.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 58 def buy(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "phone-numbers/buy", body: Pinnacle::PhoneNumbers::Types::BuyPhoneNumberParams.new(params).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
119 120 121 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 119 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.
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 90 def get(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "phone-numbers/details", body: Pinnacle::PhoneNumbers::Types::RetrievePhoneNumberDetailsParams.new(params).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 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 24 def search(request_options: {}, **params) params = Pinnacle::Internal::Types::Utils.normalize_keys(params) request = Pinnacle::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "phone-numbers/search", body: Pinnacle::PhoneNumbers::Types::SearchPhoneNumberParams.new(params).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
114 115 116 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 114 def webhook @webhook ||= Pinnacle::PhoneNumbers::Webhook::Client.new(client: @client) end |