Class: Intacct::FunctionResult

Inherits:
Object
  • Object
show all
Defined in:
lib/intacct/function_result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml_entry) ⇒ FunctionResult

Returns a new instance of FunctionResult.



5
6
7
8
9
# File 'lib/intacct/function_result.rb', line 5

def initialize(xml_entry)
  @status = xml_entry.xpath('status').text
  @control_id = xml_entry.xpath('controlid').text
  @xml_data = xml_entry
end

Instance Attribute Details

#control_idObject (readonly)

Returns the value of attribute control_id.



3
4
5
# File 'lib/intacct/function_result.rb', line 3

def control_id
  @control_id
end

#statusObject (readonly)

Returns the value of attribute status.



3
4
5
# File 'lib/intacct/function_result.rb', line 3

def status
  @status
end

#xml_dataObject (readonly)

Returns the value of attribute xml_data.



3
4
5
# File 'lib/intacct/function_result.rb', line 3

def xml_data
  @xml_data
end

Instance Method Details

#parsed_dataObject



15
16
17
18
# File 'lib/intacct/function_result.rb', line 15

def parsed_data
  hash = Crack::XML.parse(@xml_data.to_s).with_indifferent_access
  successful? ? hash.fetch('result') : hash
end

#push_error_messagesObject



20
21
22
23
24
25
26
27
28
# File 'lib/intacct/function_result.rb', line 20

def push_error_messages
  error_details = parsed_data.dig(:result, :errormessage, :error)

  error_details = [error_details] unless error_details.is_a?(Array)

  error_details.compact.map do |error_data|
    [error_data[:description2], error_data[:correction]].compact.join(' ')
  end
end

#successful?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/intacct/function_result.rb', line 11

def successful?
  @status == 'success'
end