# frozen_string_literal: true

module Bulkrax
  class DeleteJob < ApplicationJob
    queue_as Bulkrax.config.ingest_queue_name

    def perform(entry, importer_run)
      obj = entry.factory.find
      obj&.delete
      # rubocop:disable Rails/SkipsModelValidations
      ImporterRun.increment_counter(:deleted_records, importer_run.id)
      ImporterRun.decrement_counter(:enqueued_records, importer_run.id)
      # rubocop:enable Rails/SkipsModelValidations
      entry.save!
      entry.importer.current_run = ImporterRun.find(importer_run.id)
      entry.importer.record_status
      entry.set_status_info("Deleted", ImporterRun.find(importer_run.id))
    rescue => e
      entry.set_status_info(e)
      # this causes caught exception to be reraised
      raise
    end
  end
end