Method: Hyrax::Transactions::Steps::RemoveFileSetFromWork#call

Defined in:
lib/hyrax/transactions/steps/remove_file_set_from_work.rb

#call(file_set, user: nil) ⇒ Dry::Monads::Result

Parameters:

Returns:

  • (Dry::Monads::Result)

Since:

  • 2.4.0



33
34
35
36
37
38
39
40
41
42
# File 'lib/hyrax/transactions/steps/remove_file_set_from_work.rb', line 33

def call(file_set, user: nil)
  return Failure('No user provided.') if user.nil?
  find_parents(resource: file_set).each do |parent|
    parent.member_ids -= [file_set.id]
    unlink_file_set(parent: parent, file_set: file_set)
    saved = @persister.save(resource: parent)
    Hyrax.publisher.publish('object.metadata.updated', object: saved, user: user)
  end
  Success(file_set)
end