module DatashiftJourney
module Collector extend ActiveSupport::Concern included do include DatashiftJourney::ReferenceGenerator.new(prefix: 'C') # See app/models/datashift_journey/collector/data_node.rb has_many :data_nodes, class_name: 'DatashiftJourney::Collector::DataNode', foreign_key: :plan_id, dependent: :destroy, as: :plan has_many :form_fields, through: :data_nodes, source: :form_field has_many :page_states, through: :form_fields end def node_for_form_and_field(form_name, field_name) form_field = DatashiftJourney::Collector::FormBackingModel.for_form_and_field(form_name, field_name) return nil unless form_field data_nodes.where(form_field: form_field).first end def node_for_form_field(form_field) data_nodes.find(form_field).first end def nodes_for_form(form_name) form = page_states.where(form_name: form_name).first return [] unless form form.data_nodes.all.to_a end end
end