Class: SolidObserver::Queries::ExecutionFinder

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_observer/queries/execution_finder.rb

Constant Summary collapse

EXECUTION_TYPES =
[
  "SolidQueue::ReadyExecution",
  "SolidQueue::ScheduledExecution",
  "SolidQueue::ClaimedExecution",
  "SolidQueue::FailedExecution"
].freeze
STATUS_TO_EXECUTION_TYPE =
{
  "ready" => "SolidQueue::ReadyExecution",
  "scheduled" => "SolidQueue::ScheduledExecution",
  "claimed" => "SolidQueue::ClaimedExecution",
  "failed" => "SolidQueue::FailedExecution"
}.freeze

Class Method Summary collapse

Class Method Details

.find_any(id) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/solid_observer/queries/execution_finder.rb', line 20

def self.find_any(id)
  EXECUTION_TYPES.each do |const_name|
    execution = const_name.safe_constantize&.find_by(id: id)
    return execution if execution
  end
  nil
end

.find_by_status(id, status) ⇒ Object



28
29
30
31
32
33
# File 'lib/solid_observer/queries/execution_finder.rb', line 28

def self.find_by_status(id, status)
  const_name = STATUS_TO_EXECUTION_TYPE[status.to_s.downcase]
  return nil unless const_name

  const_name.safe_constantize&.find_by(id: id)
end

.find_failed(id) ⇒ Object



35
36
37
38
39
# File 'lib/solid_observer/queries/execution_finder.rb', line 35

def self.find_failed(id)
  return nil unless defined?(SolidQueue::FailedExecution)

  SolidQueue::FailedExecution.find_by(id: id)
end