Class: SolidStackWeb::Jobs::SelectionsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/solid_stack_web/jobs/selections_controller.rb

Constant Summary

Constants inherited from ApplicationController

ApplicationController::PERIOD_DURATIONS

Instance Method Summary collapse

Instance Method Details

#destroyObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/controllers/solid_stack_web/jobs/selections_controller.rb', line 4

def destroy
  status = params[:status].presence_in(Job::STATUSES) || "ready"
  raise ArgumentError, "Cannot discard #{status} jobs." unless Job::DISCARDABLE.include?(status)

  ids     = Array(params[:job_ids]).map(&:to_i).reject(&:zero?)
  job_ids = Job::EXECUTION_MODELS[status].where(id: ids).pluck(:job_id)
  SolidQueue::Job.where(id: job_ids).destroy_all

  redirect_to jobs_path(
    status: status,
    q:        params[:q].presence,
    queue:    params[:queue].presence,
    period:   params[:period].presence_in(PERIOD_DURATIONS.keys),
    priority: params[:priority].presence
  )
rescue ArgumentError => e
  redirect_to jobs_path(status: params[:status]), alert: e.message
end