Sha256: e99849781523764dae1d26e788b3d70c481c66c20e1b38e3d908782d15cbad67
Contents?: true
Size: 1 KB
Versions: 7
Compression:
Stored size: 1 KB
Contents
# frozen_string_literal: true module Hyrax module Listeners ## # Listens for resource deleted events and cleans up associated members class MemberCleanupListener # Called when 'object.deleted' event is published # @param [Dry::Events::Event] event # @return [void] def on_object_deleted(event) event = event.to_h return unless event[:object] object = event[:object] user = event[:user] return unless object.is_a?(Hyrax::Work) Hyrax.query_service.find_parents(resource: object).each do |parent| parent.member_ids -= [object.id] Hyrax.persister.save(resource: parent) Hyrax.index_adapter.save(resource: parent) Hyrax.publisher.publish('object.membership.updated', object: parent, user: user) end end # Called when 'collection.deleted' event is published # @param [Dry::Events::Event] event # @return [void] def on_collection_deleted(event); end end end end
Version data entries
7 entries across 7 versions & 1 rubygems