Method: Trailblazer::Operation::PublicCall#call_task

Defined in:
lib/trailblazer/operation/public_call.rb

#call_task(wrap_ctx, original_args) ⇒ Object

DISCUSS: copied from TaskWrap.call_task.



89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/trailblazer/operation/public_call.rb', line 89

def call_task(wrap_ctx, original_args) # DISCUSS: copied from {TaskWrap.call_task}.
  op = wrap_ctx[:task]

  original_arguments, original_circuit_options = original_args

  # Call the actual task we're wrapping here.
  # puts "~~~~wrap.call: #{task}"
  return_signal, return_args = op.call_with_circuit_interface(original_arguments, **original_circuit_options)

  # DISCUSS: do we want original_args here to be passed on, or the "effective" return_args which are different to original_args now?
  wrap_ctx = wrap_ctx.merge(return_signal: return_signal, return_args: return_args)

  return wrap_ctx, original_args
end