Class: Veryfi::Api::PdfSplit

Inherits:
Object
  • Object
show all
Includes:
FilePayload
Defined in:
lib/veryfi/api/pdf_split.rb

Overview

PDF splitting endpoints (/partner/documents-set/).

Use these when you have a single PDF containing multiple receipts / invoices. Veryfi will split it and process each page as its own Document; you receive a collection that references the individual document ids it produced.

Constant Summary collapse

ENDPOINT =
"/partner/documents-set/"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ PdfSplit

Returns a new instance of PdfSplit.



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

def initialize(request)
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



18
19
20
# File 'lib/veryfi/api/pdf_split.rb', line 18

def request
  @request
end

Instance Method Details

#all(params = {}) ⇒ Veryfi::Resource

List previously processed document sets.

Parameters:

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

    optional query-string parameters

Returns:



28
29
30
# File 'lib/veryfi/api/pdf_split.rb', line 28

def all(params = {})
  request.get(ENDPOINT, params)
end

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

Fetch a single document set by id.

Parameters:

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

    optional query-string parameters

Returns:



37
38
39
# File 'lib/veryfi/api/pdf_split.rb', line 37

def get(id, params = {})
  request.get("#{ENDPOINT}#{id}", params)
end

#process(raw_params) ⇒ Veryfi::Resource

Upload a multi-document PDF and split-and-process it.

Parameters:

  • raw_params (Hash)

Options Hash (raw_params):

  • :file_path (String)

    required. Local path.

  • :file_name (String) — default: basename of `:file_path`
  • :categories (Array<String>) — default: `[]`

    Restrict categorization to these values.

Returns:



48
49
50
51
52
53
54
55
56
57
# File 'lib/veryfi/api/pdf_split.rb', line 48

def process(raw_params)
  params = raw_params.transform_keys(&:to_sym)
  file_path = params.delete(:file_path)
  file_name = params.delete(:file_name)
  params[:categories] ||= []

  payload = file_payload(file_path, file_name).merge(params)

  request.post(ENDPOINT, payload)
end

#process_url(raw_params) ⇒ Veryfi::Resource

URL variant of #process.

Parameters:

  • raw_params (Hash)

Options Hash (raw_params):

  • :file_url (String)

    single URL

  • :file_urls (Array<String>)

    list of URLs (alternative to :file_url)

  • :categories (Array<String>) — default: `[]`
  • :max_pages_to_process (Integer) — default: `nil`

Returns:



67
68
69
70
71
72
# File 'lib/veryfi/api/pdf_split.rb', line 67

def process_url(raw_params)
  params = raw_params.transform_keys(&:to_sym)
  params[:categories] ||= []

  request.post(ENDPOINT, params)
end