Class: Veryfi::Api::LineItem

Inherits:
Object
  • Object
show all
Defined in:
lib/veryfi/api/line_item.rb

Overview

Line items on a processed document (/partner/documents/{id}/line-items/).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ LineItem

Returns a new instance of LineItem.



11
12
13
# File 'lib/veryfi/api/line_item.rb', line 11

def initialize(request)
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



9
10
11
# File 'lib/veryfi/api/line_item.rb', line 9

def request
  @request
end

Instance Method Details

#all(document_id, params = {}) ⇒ Array<Veryfi::Resource>

List all line items on a document.

Parameters:

  • document_id (Integer)
  • params (Hash) (defaults to: {})

    optional query-string parameters

Returns:

  • (Array<Veryfi::Resource>)

    line items (the "line_items" array from the response)



20
21
22
23
# File 'lib/veryfi/api/line_item.rb', line 20

def all(document_id, params = {})
  response = request.get("/partner/documents/#{document_id}/line-items/", params)
  response["line_items"]
end

#create(document_id, params) ⇒ Veryfi::Resource

Add a line item to an existing document.

Parameters:

  • document_id (Integer)
  • params (Hash)

    line-item body. Common fields:

Options Hash (params):

  • :description (String)

    required. Free-text description.

  • :total (Numeric)

    required. Line total.

  • :quantity (Numeric) — default: `1`
  • :price (Numeric)

    Unit price.

  • :tax (Numeric)

    Tax amount.

  • :tax_rate (Numeric)

    Tax rate (%).

  • :discount (Numeric)

    Discount amount.

  • :sku (String)

    SKU / product code.

  • :type (String)

    "product" / "service" / "fuel" / ...

  • :unit_of_measure (String)
  • :order (Integer)

    Display order (0-indexed).

Returns:

See Also:



43
44
45
# File 'lib/veryfi/api/line_item.rb', line 43

def create(document_id, params)
  request.post("/partner/documents/#{document_id}/line-items/", params)
end

#delete(document_id, id) ⇒ Veryfi::Resource

Delete a single line item.

Parameters:

  • document_id (Integer)
  • id (Integer)

Returns:



74
75
76
# File 'lib/veryfi/api/line_item.rb', line 74

def delete(document_id, id)
  request.delete("/partner/documents/#{document_id}/line-items/#{id}")
end

#delete_all(document_id) ⇒ Veryfi::Resource

Delete every line item on a document.



84
85
86
# File 'lib/veryfi/api/line_item.rb', line 84

def delete_all(document_id)
  request.delete("/partner/documents/#{document_id}/line-items")
end

#get(document_id, id, params = {}) ⇒ Veryfi::Resource

Fetch a single line item.

Parameters:

  • document_id (Integer)
  • id (Integer)

    line item id

  • params (Hash) (defaults to: {})

    optional query-string parameters

Returns:



53
54
55
# File 'lib/veryfi/api/line_item.rb', line 53

def get(document_id, id, params = {})
  request.get("/partner/documents/#{document_id}/line-items/#{id}", params)
end

#update(document_id, id, params) ⇒ Veryfi::Resource

Update a line item.

Parameters:

  • document_id (Integer)
  • id (Integer)
  • params (Hash)

    writable fields you want to change

Returns:

See Also:



65
66
67
# File 'lib/veryfi/api/line_item.rb', line 65

def update(document_id, id, params)
  request.put("/partner/documents/#{document_id}/line-items/#{id}", params)
end