Sha256: 63de9d9cfbcc0215ccd953e28c98eceb96d96ef0933dceba000d2613afe9aab1
Contents?: true
Size: 1.39 KB
Versions: 37
Compression:
Stored size: 1.39 KB
Contents
module CurationConcerns module Actors class AttachFilesActor < AbstractActor def create(attributes) files = [attributes.delete(:files)].flatten.compact attach_files(files, visibility_attributes(attributes)) && next_actor.create(attributes) end def update(attributes) files = [attributes.delete(:files)].flatten.compact next_actor.update(attributes) && attach_files(files, visibility_attributes(attributes)) end private def attach_files(files, visibility_attr) files.all? do |file| attach_file(file, visibility_attr) end end def attach_file(file, visibility_attr) file_set = ::FileSet.new file_set_actor = CurationConcerns::Actors::FileSetActor.new(file_set, user) file_set_actor.create_metadata(curation_concern, visibility_attr) file_set_actor.create_content(file) end # The attributes used for visibility - used to send as initial params to # created FileSets. def visibility_attributes(attributes) attributes.slice(:visibility, :visibility_during_lease, :visibility_after_lease, :lease_expiration_date, :embargo_release_date, :visibility_during_embargo, :visibility_after_embargo) end end end end
Version data entries
37 entries across 37 versions & 1 rubygems