class Icasework::Case
A Ruby representation of a case in iCasework
Public Class Methods
create(params)
click to toggle source
# File lib/icasework/case.rb, line 18 def create(params) data = Icasework::Resource.create_case(params).data[:createcaseresponse] return nil unless data new(case_details: { case_id: data[:caseid] }) end
new(hash)
click to toggle source
# File lib/icasework/case.rb, line 52 def initialize(hash) @hash = LazyHash.new(hash) do load_additional_data! end end
where(params)
click to toggle source
# File lib/icasework/case.rb, line 11 def where(params) cases = Icasework::Resource.get_cases(params).data[:cases] return [] unless cases [cases[:case]].flatten.map { |data| new(case_data(data)) } end
Private Class Methods
case_data(data)
click to toggle source
# File lib/icasework/case.rb, line 27 def case_data(data) { case_details: case_details_data(data), case_status: case_status_data(data), case_status_receipt: case_status_receipt_data(data), attributes: data[:attributes], classifications: [data[:classifications][:classification]].flatten, documents: [data[:documents][:document]].flatten } end
case_details_data(data)
click to toggle source
# File lib/icasework/case.rb, line 38 def case_details_data(data) { case_id: data[:case_id], case_type: data[:type], case_label: data[:label] } end
case_status_data(data)
click to toggle source
# File lib/icasework/case.rb, line 47 def case_status_data(data) { status: data[:status] } end
case_status_receipt_data(data)
click to toggle source
# File lib/icasework/case.rb, line 43 def case_status_receipt_data(data) { method: data[:request_method], time_created: data[:request_date] } end
Public Instance Methods
[](key)
click to toggle source
# File lib/icasework/case.rb, line 62 def [](key) @hash[key] end
case_id()
click to toggle source
# File lib/icasework/case.rb, line 58 def case_id self[:case_details][:case_id] end
classifications()
click to toggle source
# File lib/icasework/case.rb, line 66 def classifications @hash[:classifications].map { |c| Classification.new(c) } end
documents()
click to toggle source
# File lib/icasework/case.rb, line 70 def documents @hash[:documents].map { |d| Document.new(d) } end
to_h()
click to toggle source
# File lib/icasework/case.rb, line 74 def to_h @hash.to_h end
Private Instance Methods
fetch_additional_data()
click to toggle source
# File lib/icasework/case.rb, line 87 def fetch_additional_data @fetch_additional_data ||= begin cases = Icasework::Resource.get_case_details( case_id: case_id ).data[:cases] if cases cases[:case] else {} end end end
load_additional_data!()
click to toggle source
# File lib/icasework/case.rb, line 80 def load_additional_data! return @hash if @loaded @loaded = true @hash.deep_merge!(fetch_additional_data) end