Class: LcpRuby::Workflow::ModelSource

Inherits:
Object
  • Object
show all
Includes:
Contract
Defined in:
lib/lcp_ruby/workflow/model_source.rb

Instance Method Summary collapse

Instance Method Details

#workflow_by_name(name) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/lcp_ruby/workflow/model_source.rb', line 18

def workflow_by_name(name)
  model_class = workflow_model_class
  return nil unless model_class

  fields = field_mapping
  record = model_class.find_by(fields["name"] => name.to_s, fields["active"] => true)
  record ? record_to_definition(record) : nil
rescue LcpRuby::Error, ActiveRecord::StatementInvalid => e
  LcpRuby.record_error(e, subsystem: "workflow", workflow: name.to_s)
  nil
end

#workflows_for(model_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/lcp_ruby/workflow/model_source.rb', line 6

def workflows_for(model_name)
  model_class = workflow_model_class
  return [] unless model_class

  fields = field_mapping
  records = model_class.where(fields["model_name"] => model_name.to_s, fields["active"] => true)
  records.map { |r| record_to_definition(r) }
rescue LcpRuby::Error, ActiveRecord::StatementInvalid => e
  LcpRuby.record_error(e, subsystem: "workflow", model: model_name.to_s)
  []
end