Sha256: e80c13621604469b19abf17404bea017dd417d03306ba6f34ddb0eeb6488de6d

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

# BulkActionRevertDocumentJob
class BulkActionRevertDocumentJob < ApplicationJob
  queue_as :priority

  def perform(action, doc)
    case action
    when :revert_publication_status
      revert_publication_status(doc)
    when :revert_delete
      revert_delete(doc)
    else
      logger.debug("@TODO - #{field_name} => #{field_value}")
    end
  end

  def revert_publication_status(doc)
    document = Document.find_by!(friendlier_id: doc.friendlier_id)

    logger.debug("Revert PubStatus - #{document.friendlier_id}")

    versions = document.versions
    document = versions[doc.version].reify
    document.skip_callbacks = true

    if document.save
      doc.state_machine.transition_to!(:success)
    else
      doc.state_machine.transition_to!(:failed)
    end
  end

  def revert_delete(doc)
    document = Document.new(id: doc.document_id)

    logger.debug("Revert Delete - #{document.id}")

    versions = document.versions
    document = versions.last.reify
    document.skip_callbacks = true

    if document.save
      doc.state_machine.transition_to!(:success)
    else
      doc.state_machine.transition_to!(:failed)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
geoblacklight_admin-0.4.1 app/jobs/bulk_action_revert_document_job.rb
geoblacklight_admin-0.4.0 app/jobs/bulk_action_revert_document_job.rb
geoblacklight_admin-0.3.2 app/jobs/bulk_action_revert_document_job.rb
geoblacklight_admin-0.3.1 app/jobs/bulk_action_revert_document_job.rb