class MojitoImport::Report
Attributes
import_id[RW]
object_errors[RW]
object_updates[RW]
request_errors[RW]
Public Class Methods
new(import_id)
click to toggle source
# File lib/mojito_import/report.rb, line 7 def initialize(import_id) self.import_id = import_id self.object_errors = [] self.request_errors = [] self.object_updates = [] end
Public Instance Methods
add_object_error(mojito_id, error, field: nil)
click to toggle source
# File lib/mojito_import/report.rb, line 43 def add_object_error(mojito_id, error, field: nil) hash_element = object_errors.detect { |error_hash| error_hash["mojitoObjectId"] == mojito_id } if hash_element.nil? hash_element = { "mojitoObjectId" => mojito_id, "general" => [], "fields" => { } } object_errors << hash_element end if field.nil? # it's a general error hash_element["general"] << error else # The field has to be initialized to an array # Else we got an error when adding an error to a 2nd field hash_element["fields"][field] ||= [] hash_element["fields"][field] << error end end
add_object_update(mojito_id, field, from, to: nil)
click to toggle source
# File lib/mojito_import/report.rb, line 27 def add_object_update(mojito_id, field, from, to: nil) hash_element = object_updates.detect { |error_hash| error_hash["mojitoObjectId"] == mojito_id } update_hash = {"before" => from} update_hash["after"] = to unless to.nil? if hash_element.nil? new_update_hash = { "mojitoObjectId" => mojito_id, field => update_hash } object_updates << new_update_hash else hash_element[field] = update_hash end end
add_request_error(error)
click to toggle source
# File lib/mojito_import/report.rb, line 23 def add_request_error(error) request_errors << error end
find_errors_for_object(mojito_id)
click to toggle source
# File lib/mojito_import/report.rb, line 63 def find_errors_for_object(mojito_id) object_error = object_errors.detect { |data| data["mojitoObjectId"] == mojito_id } return if object_error.nil? object_error.except("mojitoObjectId") end
to_json()
click to toggle source
# File lib/mojito_import/report.rb, line 14 def to_json { "mojitoRequestId" => self.import_id, "requestErrors" => self.request_errors, "objectErrors" => self.object_errors, "objectUpdates" => self.object_updates }.to_json end