Sha256: 4a1032b28a8b8dbeb03e4ffe4da994cc65332cbbc96e7f5bd52a33b794d65705

Contents?: true

Size: 1.46 KB

Versions: 9

Compression:

Stored size: 1.46 KB

Contents

require 'iiif_print/data/fileset_helper'
require 'iiif_print/data/path_helper'
require 'iiif_print/data/work_derivatives'
require 'iiif_print/data/work_files'
require 'iiif_print/data/work_file'

module IiifPrint
  # Module for data access helper / adapter classes supporting, enhancing
  #   IiifPrint work models
  module Data
    # Handler for after_create_fileset, to be called by block subscribing to
    #   and overriding default Hyrax `:after_create_fileset` handler, via
    #   app integrating iiif_print.
    def self.handle_after_create_fileset(file_set, user)
      handle_queued_derivative_attachments(file_set)
      # Hyrax queues this job by default, and since iiif_print
      #   overrides the single subscriber Hyrax uses to do so, we
      #   must call this here:
      FileSetAttachedEventJob.perform_later(file_set, user)
      work = file_set.member_of[0]
      # Hyrax CreateWithRemoteFilesActor has glaring omission re: this job,
      #   so we call it here, once we have a fileset to copy permissions to.
      InheritPermissionsJob.perform_later(work) unless work.nil?
    end

    def self.handle_queued_derivative_attachments(file_set)
      return if file_set.import_url.nil?
      work = file_set.member_of.find(&:work?)
      derivatives = IiifPrint::Data::WorkDerivatives.of(work)
      # For now, becuase this is IO-bound operation, it makes sense to have
      #   this not be a job, but run inline:
      derivatives.commit_queued!(file_set)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
iiif_print-3.0.4 lib/iiif_print/data.rb
iiif_print-3.0.3 lib/iiif_print/data.rb
iiif_print-3.0.2 lib/iiif_print/data.rb
iiif_print-3.0.1 lib/iiif_print/data.rb
iiif_print-3.0.0 lib/iiif_print/data.rb
iiif_print-2.0.1 lib/iiif_print/data.rb
iiif_print-2.0.0 lib/iiif_print/data.rb
iiif_print-1.1.0 lib/iiif_print/data.rb
iiif_print-1.0.0 lib/iiif_print/data.rb