Sha256: 65100d904163d5b8bd1318b08b819ee0f336838cd36afd1a54256c72db9069a8

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

# BulkActionRunDocumentJob
class BulkActionRunDocumentJob < ApplicationJob
  queue_as :priority

  def perform(action, doc, field_name, field_value)
    case action
    when :update_publication_status
      update_publication_status(doc, field_value)
    when :update_delete
      update_delete(doc, field_value)
    # @TODO: Field Level changes
    else
      logger.debug("@TODO - #{field_name} => #{field_value}")
    end
  end

  def update_publication_status(doc, field_value)
    document = Document.find_by!(friendlier_id: doc.friendlier_id)

    logger.debug("Update PubStatus - #{document.friendlier_id} => #{field_value}")

    if document.update!(publication_state: field_value.to_sym)
      doc.state_machine.transition_to!(:success)
    else
      doc.state_machine.transition_to!(:failed)
    end
  end

  def update_delete(doc, field_value)
    document = Document.find_by!(friendlier_id: doc.friendlier_id)

    logger.debug("Update Delete - #{document.friendlier_id} => #{field_value}")

    if document.destroy
      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_run_document_job.rb
geoblacklight_admin-0.4.0 app/jobs/bulk_action_run_document_job.rb
geoblacklight_admin-0.3.2 app/jobs/bulk_action_run_document_job.rb
geoblacklight_admin-0.3.1 app/jobs/bulk_action_run_document_job.rb