Class: Printavo::Resources::Invoices
- Defined in:
- lib/printavo/resources/invoices.rb
Constant Summary collapse
- ALL_QUERY =
File.read(File.join(__dir__, '../graphql/invoices/all.graphql')).freeze
- FIND_QUERY =
File.read(File.join(__dir__, '../graphql/invoices/find.graphql')).freeze
- DELETE_MUTATION =
File.read(File.join(__dir__, '../graphql/invoices/delete.graphql')).freeze
- DUPLICATE_MUTATION =
File.read(File.join(__dir__, '../graphql/invoices/duplicate.graphql')).freeze
- UPDATE_MUTATION =
File.read(File.join(__dir__, '../graphql/invoices/update.graphql')).freeze
Instance Method Summary collapse
- #all(first: 25, after: nil) ⇒ Object
-
#delete(id) ⇒ nil
Permanently deletes an invoice by ID.
-
#duplicate(id) ⇒ Printavo::Invoice
Duplicates an invoice, returning a new invoice pre-populated with the same line items, customer, and settings as the original.
-
#find(id) ⇒ Printavo::Invoice
Finds an invoice by ID.
-
#update(id, **input) ⇒ Printavo::Invoice
Updates an existing invoice by ID.
Methods inherited from Base
#all_pages, #each_page, #initialize
Constructor Details
This class inherits a constructor from Printavo::Resources::Base
Instance Method Details
#all(first: 25, after: nil) ⇒ Object
13 14 15 |
# File 'lib/printavo/resources/invoices.rb', line 13 def all(first: 25, after: nil) fetch_page(first: first, after: after).records end |
#delete(id) ⇒ nil
Permanently deletes an invoice by ID.
50 51 52 53 |
# File 'lib/printavo/resources/invoices.rb', line 50 def delete(id) @graphql.mutate(DELETE_MUTATION, variables: { id: id.to_s }) nil end |
#duplicate(id) ⇒ Printavo::Invoice
Duplicates an invoice, returning a new invoice pre-populated with the same line items, customer, and settings as the original.
63 64 65 66 |
# File 'lib/printavo/resources/invoices.rb', line 63 def duplicate(id) data = @graphql.mutate(DUPLICATE_MUTATION, variables: { id: id.to_s }) Printavo::Invoice.new(data['invoiceDuplicate']) end |
#find(id) ⇒ Printavo::Invoice
Finds an invoice by ID.
24 25 26 27 |
# File 'lib/printavo/resources/invoices.rb', line 24 def find(id) data = @graphql.query(FIND_QUERY, variables: { id: id.to_s }) Printavo::Invoice.new(data['invoice']) end |
#update(id, **input) ⇒ Printavo::Invoice
Updates an existing invoice by ID.
Note: invoices are promoted from quotes — use client.orders.create to originate.
37 38 39 40 41 |
# File 'lib/printavo/resources/invoices.rb', line 37 def update(id, **input) data = @graphql.mutate(UPDATE_MUTATION, variables: { id: id.to_s, input: camelize_keys(input) }) Printavo::Invoice.new(data['invoiceUpdate']) end |