Sha256: fe80d77260208d340d8092a38606de20de166d57caf39762543d6b39e7592b97

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

module Bulkrax
  class ImportCollectionJob < ApplicationJob
    queue_as :import

    # rubocop:disable Rails/SkipsModelValidations
    def perform(*args)
      entry = Entry.find(args[0])
      begin
        entry.build
        entry.save
        add_user_to_permission_template!(entry)
        ImporterRun.find(args[1]).increment!(:processed_collections)
        ImporterRun.find(args[1]).decrement!(:enqueued_records)
      rescue => e
        ImporterRun.find(args[1]).increment!(:failed_collections)
        ImporterRun.find(args[1]).decrement!(:enqueued_records)
        raise e
      end
    end
    # rubocop:enable Rails/SkipsModelValidations

    private

    def add_user_to_permission_template!(entry)
      user                = ::User.find(entry.importerexporter.user_id)
      collection          = entry.factory.find
      permission_template = Hyrax::PermissionTemplate.find_or_create_by!(source_id: collection.id)

      Hyrax::PermissionTemplateAccess.find_or_create_by!(
        permission_template_id: permission_template.id,
        agent_id: user.user_key,
        agent_type: 'user',
        access: 'manage'
      )

      collection.reset_access_controls!
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bulkrax-2.0.2 app/jobs/bulkrax/import_collection_job.rb
bulkrax-2.0.1 app/jobs/bulkrax/import_collection_job.rb
bulkrax-2.0.0 app/jobs/bulkrax/import_collection_job.rb