class Teneo::DataModel::IngestTask

noinspection RailsParamDefResolve

Constants

STAGE_LIST

Public Class Methods

from_hash(hash, id_tags = [:ingest_workflow_id, :stage]) click to toggle source
Calls superclass method Teneo::DataModel::Base::from_hash
# File lib/teneo/data_model/ingest_task.rb, line 25
def self.from_hash(hash, id_tags = [:ingest_workflow_id, :stage])
  ingest_workflow = hash.delete(:ingest_workflow)
  query = ingest_workflow ? {name: ingest_workflow} : {id: hash[:ingest_workflow_id]}
  ingest_workflow = record_finder Teneo::DataModel::IngestWorkflow, query
  hash[:ingest_workflow_id] = ingest_workflow.id

  params = hash.delete(:values)

  item = super(hash, id_tags) do |item, h|
    if (stage_workflow = h.delete(:workflow))
      item.stage_workflow = record_finder Teneo::DataModel::StageWorkflow, name: stage_workflow
    end
  end

  if params
    item.parameter_values.clear
    params.each do |name, value|
      item.parameter_values <<
          Teneo::DataModel::ParameterValue.from_hash(name: name, value: value,
                                                     with_values_id: item.id,
                                                     with_values_type: item.class.name)
    end
    item.save!
  end

  item
end