Class: Printavo::Resources::Orders
- Defined in:
- lib/printavo/resources/orders.rb
Constant Summary collapse
- ALL_QUERY =
File.read(File.join(__dir__, '../graphql/orders/all.graphql')).freeze
- FIND_QUERY =
File.read(File.join(__dir__, '../graphql/orders/find.graphql')).freeze
- CREATE_MUTATION =
Printavo creates orders as quotes first; the mutation is quoteCreate.
File.read(File.join(__dir__, '../graphql/orders/create.graphql')).freeze
- DELETE_MUTATION =
File.read(File.join(__dir__, '../graphql/orders/delete.graphql')).freeze
- DUPLICATE_MUTATION =
File.read(File.join(__dir__, '../graphql/orders/duplicate.graphql')).freeze
- UPDATE_MUTATION =
File.read(File.join(__dir__, '../graphql/orders/update.graphql')).freeze
- UPDATE_STATUS_MUTATION =
statusUpdate returns an OrderUnion (Quote | Invoice) — requires fragments.
File.read(File.join(__dir__, '../graphql/orders/update_status.graphql')).freeze
Instance Method Summary collapse
- #all(first: 25, after: nil) ⇒ Object
-
#create(**input) ⇒ Printavo::Order
Creates a new order (quote) in Printavo.
-
#delete(id) ⇒ nil
Permanently deletes an order (quote) by ID.
-
#duplicate(id) ⇒ Printavo::Order
Duplicates an order (quote), returning a new quote pre-populated with the same line items, customer, and settings as the original.
- #find(id) ⇒ Object
-
#update(id, **input) ⇒ Printavo::Order
Updates an existing order (quote or invoice) by ID.
-
#update_status(id, status_id:) ⇒ Printavo::Order
Moves an order to a new status.
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
17 18 19 |
# File 'lib/printavo/resources/orders.rb', line 17 def all(first: 25, after: nil) fetch_page(first: first, after: after).records end |
#create(**input) ⇒ Printavo::Order
Creates a new order (quote) in Printavo.
Requires at minimum contact: (IDInput), due_at:, and customer_due_at:.
37 38 39 40 |
# File 'lib/printavo/resources/orders.rb', line 37 def create(**input) data = @graphql.mutate(CREATE_MUTATION, variables: { input: camelize_keys(input) }) build_order(data['quoteCreate']) end |
#delete(id) ⇒ nil
Permanently deletes an order (quote) by ID.
77 78 79 80 |
# File 'lib/printavo/resources/orders.rb', line 77 def delete(id) @graphql.mutate(DELETE_MUTATION, variables: { id: id.to_s }) nil end |
#duplicate(id) ⇒ Printavo::Order
Duplicates an order (quote), returning a new quote pre-populated with the same line items, customer, and settings as the original.
90 91 92 93 |
# File 'lib/printavo/resources/orders.rb', line 90 def duplicate(id) data = @graphql.mutate(DUPLICATE_MUTATION, variables: { id: id.to_s }) build_order(data['quoteDuplicate']) end |
#find(id) ⇒ Object
21 22 23 24 |
# File 'lib/printavo/resources/orders.rb', line 21 def find(id) data = @graphql.query(FIND_QUERY, variables: { id: id.to_s }) Printavo::Order.new(data['order']) end |
#update(id, **input) ⇒ Printavo::Order
Updates an existing order (quote or invoice) by ID.
49 50 51 52 53 |
# File 'lib/printavo/resources/orders.rb', line 49 def update(id, **input) data = @graphql.mutate(UPDATE_MUTATION, variables: { id: id.to_s, input: camelize_keys(input) }) build_order(data['quoteUpdate']) end |
#update_status(id, status_id:) ⇒ Printavo::Order
Moves an order to a new status.
64 65 66 67 68 |
# File 'lib/printavo/resources/orders.rb', line 64 def update_status(id, status_id:) data = @graphql.mutate(UPDATE_STATUS_MUTATION, variables: { parentId: id.to_s, statusId: status_id.to_s }) build_order(data['statusUpdate']) end |