Sha256: 02b1a2d9e94b48ac52045aca5e4e965c1c01a76e8a82d107b5f6c807f8ae089d

Contents?: true

Size: 1.77 KB

Versions: 4

Compression:

Stored size: 1.77 KB

Contents

module RushJobMongoid
  class RushJobsController < ApplicationController
    before_action :find_job, only: %i[edit update destroy]

    def index
      @pagination_presenter = PaginationPresenter.new(params[:page])
      @rush_jobs = RushJob.filter(filter_params).locked_by_desc.paginate(@pagination_presenter.page, 20)

      respond_to do |format|
        format.html
        format.turbo_stream
      end
    end

    def edit
      flash.now[:warning] = t(:edit_warning)
    end

    def update
      if @job.update(update_params)
        flash[:success] = t(:updated_job, job_id: @job.id)
        redirect_to rush_jobs_path(doc_id: @job.id)
      else
        flash.now[:danger] = t(:unable_to_update, errors: @job.error_message)
        render :edit, status: :unprocessable_entity
      end
    end

    def destroy
      @job.destroy

      flash[:success] = t(:deleted_job, job_id: @job.id)
      redirect_to rush_jobs_path
    end

    private

    def find_job
      @job = RushJob.find(params[:id])
    rescue Mongoid::Errors::DocumentNotFound => e
      Rails.logger.info e.message
      flash[:danger] = t(:missing_document)
      redirect_to rush_jobs_path
    end

    def filter_params
      params.permit(:doc_id, :priority, :attempts, :job_class, :arguments, :locked_by, :last_error, :queue)
    end

    def update_params
      params.require(:rush_job).permit(:priority,
                                       :attempts,
                                       :handler,
                                       :run_at,
                                       :locked_at,
                                       :locked_by,
                                       :failed_at,
                                       :last_error,
                                       :queue)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rush_job_mongoid-1.5.0 app/controllers/rush_job_mongoid/rush_jobs_controller.rb
rush_job_mongoid-1.4.0 app/controllers/rush_job_mongoid/rush_jobs_controller.rb
rush_job_mongoid-1.3.0 app/controllers/rush_job_mongoid/rush_jobs_controller.rb
rush_job_mongoid-1.2.0 app/controllers/rush_job_mongoid/rush_jobs_controller.rb