Sha256: ec4810bcdcf55ff9284e3a98d336ce2727fb423c625a56a216fb21be8cd03479

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 :default

  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.3.0 app/jobs/bulk_action_run_document_job.rb
geoblacklight_admin-0.2.1 app/jobs/bulk_action_run_document_job.rb
geoblacklight_admin-0.1.0 app/jobs/bulk_action_run_document_job.rb
geoblacklight_admin-0.0.1 app/jobs/bulk_action_run_document_job.rb