Sha256: 5fa5bf277dfc878c2eeb98c57afa23b409119aafe2f7d49eadff3be8525eb85f

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

module Bulkrax
  class ImportWorkCollectionJob < 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.create!(
        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-1.0.2 app/jobs/bulkrax/import_work_collection_job.rb
bulkrax-1.0.1 app/jobs/bulkrax/import_work_collection_job.rb
bulkrax-1.0.0 app/jobs/bulkrax/import_work_collection_job.rb