Sha256: b9f1d126995fb13a7f9e7a78247c193de262bbdc96a939bee6443b9e07bc5f03

Contents?: true

Size: 686 Bytes

Versions: 5

Compression:

Stored size: 686 Bytes

Contents

# frozen_string_literal: true

module Hyrax
  module Listeners
    ##
    # Listens for object deleted events and cleans up associated members
    class TrophyCleanupListener
      # Called when 'object.deleted' event is published
      # @param [Dry::Events::Event] event
      # @return [void]
      def on_object_deleted(event)
        object_id = event[:object]&.id || event[:id]
        Trophy.where(work_id: object_id).destroy_all
      rescue StandardError => err
        Hyrax.logger.warn "Failed to delete trophies for #{event[:id]}. " \
                          'These trophies might be orphaned.' \
                          "\n\t#{err.message}"
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hyrax-5.0.3 app/services/hyrax/listeners/trophy_cleanup_listener.rb
hyrax-5.0.2 app/services/hyrax/listeners/trophy_cleanup_listener.rb
hyrax-5.0.1 app/services/hyrax/listeners/trophy_cleanup_listener.rb
hyrax-5.0.0 app/services/hyrax/listeners/trophy_cleanup_listener.rb
hyrax-5.0.0.rc3 app/services/hyrax/listeners/trophy_cleanup_listener.rb