Sha256: 6f7a9f432380bf90ad6c9a39d1718590858bfc4c451c3a1ff59e78bf14902ef1

Contents?: true

Size: 975 Bytes

Versions: 14

Compression:

Stored size: 975 Bytes

Contents

# frozen_string_literal: true
require 'dry/monads'

module Hyrax
  module Transactions
    module Steps
      ##
      # Adds a Hyrax::FileSet
      #
      # @see https://wiki.lyrasis.org/display/samvera/Hydra::Works+Shared+Modeling
      class AddFileSets
        include Dry::Monads[:result]

        ##
        # @param [Class] handler
        def initialize(handler: Hyrax::WorkUploadsHandler)
          @handler = handler
        end

        ##
        # @param [Hyrax::Work] obj
        # @param [Enumerable<UploadedFile>] uploaded_files
        # @param [Enumerable<Hash>] file_set_params
        #
        # @return [Dry::Monads::Result]
        def call(obj, uploaded_files: [], file_set_params: [])
          if @handler.new(work: obj).add(files: uploaded_files, file_set_params: file_set_params).attach
            Success(obj)
          else
            Failure[:failed_to_attach_file_sets, uploaded_files]
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
hyrax-3.6.0 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-4.0.0 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-4.0.0.rc3 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-4.0.0.rc2 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-4.0.0.rc1 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-3.5.0 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-4.0.0.beta2 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-3.4.2 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-4.0.0.beta1 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-3.4.1 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-3.4.0 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-3.3.0 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-3.2.0 lib/hyrax/transactions/steps/add_file_sets.rb
hyrax-3.1.0 lib/hyrax/transactions/steps/add_file_sets.rb