Class: DurableFlow::WorkflowStep
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- DurableFlow::WorkflowStep
- Includes:
- Live::Broadcastable
- Defined in:
- lib/durable_flow/models/workflow_step.rb
Instance Method Summary collapse
- #complete!(value) ⇒ Object
- #fail!(error) ⇒ Object
- #live_snapshot ⇒ Object
- #metadata_hash ⇒ Object
- #result_value ⇒ Object
- #retry!(error, retry_at: nil) ⇒ Object
- #succeeded? ⇒ Boolean
Instance Method Details
#complete!(value) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/durable_flow/models/workflow_step.rb', line 20 def complete!(value) update!( status: "succeeded", result: Serializer.dump(value), completed_at: Time.current, ) end |
#fail!(error) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/durable_flow/models/workflow_step.rb', line 28 def fail!(error) update!( status: "failed", metadata: .merge("last_error" => error_payload(error)), ) end |
#live_snapshot ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/durable_flow/models/workflow_step.rb', line 49 def live_snapshot { id: id, workflow_run_id: workflow_run_id, name: name, status: status, attempts: attempts, result: result, metadata: , started_at: started_at, completed_at: completed_at, created_at: created_at, updated_at: updated_at, } end |
#metadata_hash ⇒ Object
45 46 47 |
# File 'lib/durable_flow/models/workflow_step.rb', line 45 def .presence || {} end |
#result_value ⇒ Object
16 17 18 |
# File 'lib/durable_flow/models/workflow_step.rb', line 16 def result_value Serializer.load(result) end |
#retry!(error, retry_at: nil) ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/durable_flow/models/workflow_step.rb', line 35 def retry!(error, retry_at: nil) = .merge("last_error" => error_payload(error)) ["retry_at"] = retry_at.utc.iso8601(9) if retry_at update!( status: "retrying", metadata: , ) end |
#succeeded? ⇒ Boolean
12 13 14 |
# File 'lib/durable_flow/models/workflow_step.rb', line 12 def succeeded? status == "succeeded" end |