Sha256: 33b305d30f79fc5d7bcf68ffe80166065fed699e910bffb5c850005af2be5233
Contents?: true
Size: 1.19 KB
Versions: 7
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module Hyrax module Listeners ## # Listens for object lifecycle events that require workflow changes and # manages workflow accordingly. class WorkflowListener ## # @note respects class attribute configuration at # {Hyrax::Actors::InitializeWorkflowActor.workflow_factory}, but falls # back on {Hyrax::Workflow::WorkflowFactory} to prepare for removal of # Actors # @return [#create] default: {Hyrax::Workflow::WorkflowFactory} def factory if defined?(Hyrax::Actors::InitializeWorkflowActor) Hyrax::Actors::InitializeWorkflowActor.workflow_factory else Hyrax::Workflow::WorkflowFactory end end ## # @param event [Dry::Event] def on_object_deposited(event) return Rails.logger.warn("Skipping workflow initialization for #{event[:object]}; no user is given\n\t#{event}") if event[:user].blank? factory.create(event[:object], {}, event[:user]) rescue Sipity::StateError, Sipity::ConversionError => err # don't error on known sipity error types; log instead Rails.logger.error(err) end end end end
Version data entries
7 entries across 7 versions & 1 rubygems