Link Search Menu Expand Document

Octo with service step

class AssignMessage
  def self.call(ctx, ms, message:)
    ctx[:message] = message
  end
end

class OctoServiceStep < Decouplio::Action
  logic do
    octo :octo_name, ctx_key: :octo_key do
      on :octo_key1, AssignMessage, message: 'Octo key 1', on_success: :PASS
      on :octo_key2, AssignMessage, message: 'Octo key 2', on_success: :PASS
    end
  end
end

puts OctoServiceStep.call(octo_key: :octo_key1) # =>
# Result: success
# RailwayFlow:
#   octo_name -> octo_key1 -> AssignMessage
# Context:
#   :octo_key => :octo_key1
#   :message => "Octo key 1"
# Status: NONE
# Errors:
#   NONE

puts OctoServiceStep.call(octo_key: :octo_key2) # =>
# Result: success
# RailwayFlow:
#   octo_name -> octo_key2 -> AssignMessage
# Context:
#   :octo_key => :octo_key2
#   :message => "Octo key 2"
# Status: NONE
# Errors:
#   NONE