Class: Printavo::Resources::LineItems

Inherits:
Base
  • Object
show all
Defined in:
lib/printavo/resources/line_items.rb

Constant Summary collapse

ALL_QUERY =
File.read(File.join(__dir__, '../graphql/line_items/all.graphql')).freeze
FIND_QUERY =
File.read(File.join(__dir__, '../graphql/line_items/find.graphql')).freeze
CREATE_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/create.graphql')).freeze
CREATES_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/creates.graphql')).freeze
UPDATE_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/update.graphql')).freeze
UPDATES_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/updates.graphql')).freeze
DELETE_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/delete.graphql')).freeze
DELETES_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/deletes.graphql')).freeze
MOCKUP_CREATE_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/mockup_create.graphql')).freeze
MOCKUP_CREATES_MUTATION =
File.read(File.join(__dir__, '../graphql/line_items/mockup_creates.graphql')).freeze

Instance Method Summary collapse

Methods inherited from Base

#all_pages, #each_page, #initialize

Constructor Details

This class inherits a constructor from Printavo::Resources::Base

Instance Method Details

#all(line_item_group_id:, first: 25, after: nil) ⇒ Object



18
19
20
# File 'lib/printavo/resources/line_items.rb', line 18

def all(line_item_group_id:, first: 25, after: nil)
  fetch_page(line_item_group_id: line_item_group_id, first: first, after: after).records
end

#create(**input) ⇒ Object



27
28
29
30
# File 'lib/printavo/resources/line_items.rb', line 27

def create(**input)
  data = @graphql.mutate(CREATE_MUTATION, variables: { input: camelize_keys(input) })
  Printavo::LineItem.new(data['lineItemCreate'])
end

#creates(inputs) ⇒ Object



32
33
34
35
# File 'lib/printavo/resources/line_items.rb', line 32

def creates(inputs)
  data = @graphql.mutate(CREATES_MUTATION, variables: { inputs: inputs.map { |i| camelize_keys(i) } })
  data['lineItemCreates'].map { |attrs| Printavo::LineItem.new(attrs) }
end

#delete(id) ⇒ Object



47
48
49
50
# File 'lib/printavo/resources/line_items.rb', line 47

def delete(id)
  @graphql.mutate(DELETE_MUTATION, variables: { id: id.to_s })
  nil
end

#deletes(ids) ⇒ Object



52
53
54
55
# File 'lib/printavo/resources/line_items.rb', line 52

def deletes(ids)
  @graphql.mutate(DELETES_MUTATION, variables: { ids: ids.map(&:to_s) })
  nil
end

#find(id) ⇒ Object



22
23
24
25
# File 'lib/printavo/resources/line_items.rb', line 22

def find(id)
  data = @graphql.query(FIND_QUERY, variables: { id: id.to_s })
  Printavo::LineItem.new(data['lineItem'])
end

#mockup_create(**input) ⇒ Object



57
58
59
60
# File 'lib/printavo/resources/line_items.rb', line 57

def mockup_create(**input)
  data = @graphql.mutate(MOCKUP_CREATE_MUTATION, variables: { input: camelize_keys(input) })
  data['lineItemMockupCreate']
end

#mockup_creates(inputs) ⇒ Object



62
63
64
65
# File 'lib/printavo/resources/line_items.rb', line 62

def mockup_creates(inputs)
  data = @graphql.mutate(MOCKUP_CREATES_MUTATION, variables: { inputs: inputs.map { |i| camelize_keys(i) } })
  data['lineItemMockupCreates']
end

#update(id, **input) ⇒ Object



37
38
39
40
# File 'lib/printavo/resources/line_items.rb', line 37

def update(id, **input)
  data = @graphql.mutate(UPDATE_MUTATION, variables: { id: id.to_s, input: camelize_keys(input) })
  Printavo::LineItem.new(data['lineItemUpdate'])
end

#updates(inputs) ⇒ Object



42
43
44
45
# File 'lib/printavo/resources/line_items.rb', line 42

def updates(inputs)
  data = @graphql.mutate(UPDATES_MUTATION, variables: { inputs: inputs.map { |i| camelize_keys(i) } })
  data['lineItemUpdates'].map { |attrs| Printavo::LineItem.new(attrs) }
end