Module: Legion::Extensions::Detect::Runners::CancelTask

Defined in:
lib/legion/extensions/detect/runners/cancel_task.rb

Overview

rubocop:disable Legion/Extension/RunnerIncludeHelpers

Instance Method Summary collapse

Instance Method Details

#cancel_task(task_id:) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/legion/extensions/detect/runners/cancel_task.rb', line 8

def cancel_task(task_id:, **)
  return { success: false, reason: :data_unavailable } unless defined?(Legion::Data)

  task = Legion::Data::Model::Task[task_id]
  return { success: false, reason: :not_found } unless task
  return { success: false, reason: :already_cancelled } if task.respond_to?(:cancelled?) && task.cancelled?

  task.update(cancelled_at: Time.now.utc)
  { success: true, task_id: task_id, cancelled_at: task.cancelled_at }
rescue StandardError => e
  { success: false, reason: :error, message: e.message }
end