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
-
#list(request_options: {}, **params) ⇒ Pinnacle::Types::ListPhoneNumbersResponse
List all owned phone numbers with pagination.
-
#search(request_options: {}, **params) ⇒ Array[Pinnacle::Types::PhoneNumberDetails]
Search for available phone numbers that match your exact criteria.
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
148 149 150 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 148 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 |
#list(request_options: {}, **params) ⇒ Pinnacle::Types::ListPhoneNumbersResponse
List all owned phone numbers with pagination. Results are sorted by creation date, newest first.
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/pinnacle/phone_numbers/client.rb', line 124 def list(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/list", body: Pinnacle::PhoneNumbers::Types::ListPhoneNumbersParams.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::Types::ListPhoneNumbersResponse.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 |