mix jido_action.gen.workflow (Jido Action v2.3.0)

View Source

Generates a Jido Workflow using ActionPlan

Usage

mix jido_action.gen.workflow MyApp.Workflows.OrderPipeline --steps=validate,process,notify

Options

  • --steps - Comma-separated list of step names (required)
  • --no-test - Skip generating the test file

Generated Files

This task generates:

  1. A workflow module at lib/my_app/workflows/order_pipeline.ex
  2. A test file at test/my_app/workflows/order_pipeline_test.exs (unless --no-test)

Example

mix jido_action.gen.workflow MyApp.Workflows.OrderPipeline --steps=validate,process,notify

Generates:

defmodule MyApp.Workflows.OrderPipeline do
  use Jido.Tools.ActionPlan,
    name: "order_pipeline",
    description: "TODO: Add description",
    schema: []

  alias Jido.Plan

  @impl Jido.Tools.ActionPlan
  def build(_params, context) do
    Plan.new(context: context)
    |> Plan.add(:validate, MyApp.Actions.Validate)
    |> Plan.add(:process, MyApp.Actions.Process, depends_on: :validate)
    |> Plan.add(:notify, MyApp.Actions.Notify, depends_on: :process)
  end
end