Class: Hyrax::Listeners::WorkflowListener
- Inherits:
-
Object
- Object
- Hyrax::Listeners::WorkflowListener
- Defined in:
- app/services/hyrax/listeners/workflow_listener.rb
Overview
Listens for object lifecycle events that require workflow changes and manages workflow accordingly.
Instance Method Summary collapse
-
#factory ⇒ #create
Default: Workflow::WorkflowFactory.
-
#on_object_deposited(event) ⇒ void
Called when ‘object.deposited’ event is published.
Instance Method Details
#factory ⇒ #create
Note:
respects class attribute configuration at Actors::InitializeWorkflowActor.workflow_factory, but falls back on Workflow::WorkflowFactory to prepare for removal of Actors
Returns default: Workflow::WorkflowFactory.
15 16 17 18 19 20 21 |
# File 'app/services/hyrax/listeners/workflow_listener.rb', line 15 def factory if defined?(Hyrax::Actors::InitializeWorkflowActor) Hyrax::Actors::InitializeWorkflowActor.workflow_factory else Hyrax::Workflow::WorkflowFactory end end |
#on_object_deposited(event) ⇒ void
This method returns an undefined value.
Called when ‘object.deposited’ event is published
27 28 29 30 31 32 33 34 35 |
# File 'app/services/hyrax/listeners/workflow_listener.rb', line 27 def on_object_deposited(event) return Hyrax.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 Hyrax.logger.error(err) end |