Class: Wavix::Billing::Invoices::Client
- Inherits:
-
Object
- Object
- Wavix::Billing::Invoices::Client
- Defined in:
- lib/wavix/billing/invoices/client.rb
Instance Method Summary collapse
-
#download(request_options: {}, **params) ⇒ untyped
Returns the financial statement identified by
idas a PDF file. - #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Wavix::Billing::Invoices::Types::ListInvoicesResponse
Returns the auto-generated financial statements for the authenticated account, paginated and ordered by billing period.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/wavix/billing/invoices/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#download(request_options: {}, **params) ⇒ untyped
Returns the financial statement identified by id as a PDF file.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/wavix/billing/invoices/client.rb', line 67 def download(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v1/billing/invoices/#{URI.encode_uri_component(params[:id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i return if code.between?(200, 299) error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end |
#list(request_options: {}, **params) ⇒ Wavix::Billing::Invoices::Types::ListInvoicesResponse
Returns the auto-generated financial statements for the authenticated account, paginated and ordered by billing period.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/wavix/billing/invoices/client.rb', line 28 def list(request_options: {}, **params) params = Wavix::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["page"] = params[:page] if params.key?(:page) query_params["per_page"] = params[:per_page] if params.key?(:per_page) request = Wavix::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v1/billing/invoices", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Wavix::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Wavix::Billing::Invoices::Types::ListInvoicesResponse.load(response.body) else error_class = Wavix::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |