Class: Igniter::Extensions::Contracts::Reactive::DispatchResult
- Inherits:
-
Object
- Object
- Igniter::Extensions::Contracts::Reactive::DispatchResult
- Defined in:
- lib/igniter/extensions/contracts/reactive/dispatch_result.rb
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#events ⇒ Object
readonly
Returns the value of attribute events.
-
#execution_error ⇒ Object
readonly
Returns the value of attribute execution_error.
-
#execution_result ⇒ Object
readonly
Returns the value of attribute execution_result.
-
#result ⇒ Object
readonly
Returns the value of attribute result.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
Instance Method Summary collapse
- #failed? ⇒ Boolean
-
#initialize(status:, events:, errors:, result:, execution_result:, execution_error: nil) ⇒ DispatchResult
constructor
A new instance of DispatchResult.
- #output(name) ⇒ Object
- #success? ⇒ Boolean
- #to_h ⇒ Object
Constructor Details
#initialize(status:, events:, errors:, result:, execution_result:, execution_error: nil) ⇒ DispatchResult
Returns a new instance of DispatchResult.
10 11 12 13 14 15 16 17 18 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 10 def initialize(status:, events:, errors:, result:, execution_result:, execution_error: nil) @status = status.to_sym @events = events.freeze @errors = errors.freeze @result = result @execution_result = execution_result @execution_error = execution_error freeze end |
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
8 9 10 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 8 def errors @errors end |
#events ⇒ Object (readonly)
Returns the value of attribute events.
8 9 10 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 8 def events @events end |
#execution_error ⇒ Object (readonly)
Returns the value of attribute execution_error.
8 9 10 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 8 def execution_error @execution_error end |
#execution_result ⇒ Object (readonly)
Returns the value of attribute execution_result.
8 9 10 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 8 def execution_result @execution_result end |
#result ⇒ Object (readonly)
Returns the value of attribute result.
8 9 10 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 8 def result @result end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
8 9 10 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 8 def status @status end |
Instance Method Details
#failed? ⇒ Boolean
24 25 26 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 24 def failed? status == :failed end |
#output(name) ⇒ Object
28 29 30 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 28 def output(name) execution_result&.output(name) end |
#success? ⇒ Boolean
20 21 22 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 20 def success? status == :succeeded end |
#to_h ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/igniter/extensions/contracts/reactive/dispatch_result.rb', line 32 def to_h { status: status, success: success?, events: events.map(&:to_h), errors: errors.map do |entry| { event: entry.fetch(:event).to_h, subscription: entry.fetch(:subscription).to_h, error: { type: entry.fetch(:error).class.name, message: entry.fetch(:error). } } end, execution_error: execution_error && { type: execution_error.class.name, message: execution_error. }, result: result&.to_h, execution_result: execution_result&.to_h } end |