Sha256: c429d4c3a5ad28de42fd8832d14337caa2f227451291098a4e5ef022e175df79

Contents?: true

Size: 970 Bytes

Versions: 7

Compression:

Stored size: 970 Bytes

Contents

module Resque
  class JobsController < ActionController::Metal
    include ActionController::ConditionalGet

    JOB_ID_PATTERN = /([a-f0-9]{32})/

    def show
      unless meta
        self.status = 404
        self.content_type = "application/json; charset=utf-8"
        self.response_body = '{"message":"not found"}'
        return
      end

      data = {
        enqueued_at: meta.enqueued_at,
        started_at: meta.started_at,
        finished_at: meta.finished_at,
        succeeded: meta.succeeded?,
        failed: meta.failed?,
        progress: meta.progress,
        payload: meta['payload']
      }

      self.status = 200
      self.content_type = "application/json; charset=utf-8"
      self.response_body = MultiJson.dump(data)
      expires_now
    end

    private

    def meta
      @meta ||= Resque::Plugins::Meta.get_meta(meta_id) if meta_id
    end

    def meta_id
      id = params[:id]
      id if JOB_ID_PATTERN =~ id
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
resque-integration-3.8.2 app/controllers/resque/jobs_controller.rb
resque-integration-3.8.1 app/controllers/resque/jobs_controller.rb
resque-integration-3.8.0 app/controllers/resque/jobs_controller.rb
resque-integration-3.7.1 app/controllers/resque/jobs_controller.rb
resque-integration-3.5.1 app/controllers/resque/jobs_controller.rb
resque-integration-3.5.0 app/controllers/resque/jobs_controller.rb
resque-integration-3.4.1 app/controllers/resque/jobs_controller.rb