class Teneo::DataModel::IngestAgreement
noinspection RailsParamDefResolve
Public Class Methods
from_hash(hash, id_tags = [:organization_id, :name])
click to toggle source
Calls superclass method
Teneo::DataModel::Base::from_hash
# File lib/teneo/data_model/ingest_agreement.rb, line 34 def self.from_hash(hash, id_tags = [:organization_id, :name]) org_name = hash.delete(:organization) query = org_name ? {name: org_name} : {id: hash[:organization_id]} organization = record_finder Teneo::DataModel::Organization, query hash[:organization_id] = organization.id ingest_models = hash.delete(:ingest_models) ingest_workflows = hash.delete(:ingest_workflows) item = super(hash, id_tags) do |item, h| if (producer = h.delete(:producer)) item.producer = record_finder Teneo::DataModel::Producer, inst_code: organization.inst_code, name: producer end if (material_flow = h.delete(:material_flow)) item.material_flow =record_finder Teneo::DataModel::MaterialFlow, inst_code: organization.inst_code, name: material_flow end end if ingest_models item.ingest_models.clear ingest_models.each do |ingest_model| item.ingest_models << Teneo::DataModel::IngestModel.from_hash(ingest_model.merge(ingest_agreement_id: item.id)) end item.save! end if ingest_workflows item.ingest_workflows.clear ingest_workflows.each do |ingest_workflow| item.ingest_workflows << Teneo::DataModel::IngestWorkflow.from_hash(ingest_workflow.merge(ingest_agreement_id: item.id)) end item.save! end item end