class Icasework::Document

A Ruby representation of a document in iCasework

Attributes

attributes[R]
url[R]

Public Class Methods

find(document_id: nil, **params) click to toggle source
# File lib/icasework/document.rb, line 21
def find(document_id: nil, **params)
  documents = where(params)
  return documents unless document_id

  documents.find { |d| d.attributes[:id] == document_id }
end
new(attributes) click to toggle source
# File lib/icasework/document.rb, line 31
def initialize(attributes)
  @attributes = attributes
  @url = attributes[:__content__]
end
where(params) click to toggle source
# File lib/icasework/document.rb, line 11
def where(params)
  documents = Icasework::Resource.get_case_documents(params).
              data[:documents]
  return [] unless documents

  [documents[:document]].flatten.map do |attributes|
    new(attributes)
  end
end

Public Instance Methods

pdf?() click to toggle source
# File lib/icasework/document.rb, line 36
def pdf?
  attributes[:type] == 'application/pdf'
end
pdf_contents() click to toggle source
# File lib/icasework/document.rb, line 40
def pdf_contents
  return unless pdf?

  PDF::Reader.open(pdf_file) do |reader|
    reader.pages.map(&:text).join
  end
end

Private Instance Methods

pdf_file() click to toggle source
# File lib/icasework/document.rb, line 50
def pdf_file
  raw = RestClient::Request.execute(
    method: :get,
    url: url,
    raw_response: true
  )
  raw.file
end