class Topographer::Importer::Strategy::UpdateRecord

Public Instance Methods

failure_message() click to toggle source
# File lib/topographer/importer/strategy/update_record.rb, line 30
def failure_message
  'Unable to update from import'
end
import_record(source_data) click to toggle source
# File lib/topographer/importer/strategy/update_record.rb, line 6
def import_record (source_data)
  mapping_result = mapper.map_input(source_data)

  search_params = mapping_result.data.slice(*mapper.key_fields)
  model_instance = mapper.model_class.where(search_params).first

  if model_instance
    model_instance.attributes = mapping_result.data
    model_instance.valid?
    model_errors = model_instance.errors.full_messages
    status = get_import_status(mapping_result, model_errors)

    model_instance.save if should_persist_import?(status)
  else
    status = get_import_status(mapping_result, ["Record not found with params: #{search_params.to_yaml}"])
  end

  status
end
success_message() click to toggle source
# File lib/topographer/importer/strategy/update_record.rb, line 26
def success_message
  'Updated'
end