Class: CdmMigrator::BatchCreateFilesWithOrderedMembersJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
app/jobs/cdm_migrator/batch_create_files_with_ordered_members_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(work, ingest_work, user) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/jobs/cdm_migrator/batch_create_files_with_ordered_members_job.rb', line 25

def perform work, ingest_work, user
    ordered_members = []
    ingest_work.files.each do |file|
      url = file[:url]
      last_file = ingest_work.files.last==file
      ::FileSet.new(import_url: url, label: file[:title]) do |fs|
        fs.attributes = file[:metadata]
        fs.save!
        ordered_members << fs
      end
    end
    actor = Hyrax::Actors::OrderedMembersActor.new(ordered_members, user)
    actor.attach_ordered_members_to_work(work)
    work.representative = work.ordered_members.to_a.first
    work.thumbnail_id = work.ordered_member_ids.first
    work.save!
    work.file_sets.each { |fs| CdmIngestFilesJob.perform_later(fs, fs.import_url, user, ingest_work) }
end