Class: LcpRuby::BackgroundJobs::ModelSource

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

Instance Method Summary collapse

Instance Method Details

#job_definition_by_name(name) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/lcp_ruby/background_jobs/model_source.rb', line 23

def job_definition_by_name(name)
  model_class = job_definition_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
  log_warn("Failed to load job definition '#{name}': #{e.message}")
  nil
end

#job_definitionsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/lcp_ruby/background_jobs/model_source.rb', line 6

def job_definitions
  model_class = job_definition_model_class
  return {} unless model_class

  fields = field_mapping
  records = model_class.where(fields["active"] => true)
  result = {}
  records.each do |r|
    definition = record_to_definition(r)
    result[definition.name] = definition
  end
  result
rescue LcpRuby::Error, ActiveRecord::StatementInvalid => e
  log_warn("Failed to load job definitions: #{e.message}")
  {}
end