defmodule Ash.Flow.Info do
@moduledoc """
Flow introspection functions.
"""
alias Spark.Dsl.Extension
def description(flow) do
Extension.get_opt(flow, [:flow], :description, "", true)
end
def returns(flow) do
Extension.get_opt(flow, [:flow], :returns, nil, false)
end
def short_name(flow) do
Extension.get_opt(flow, [:flow], :short_name, nil, false) || flow.default_short_name()
end
def trace_name(flow) do
Extension.get_opt(flow, [:flow], :trace_name, nil, false) || to_string(short_name(flow))
end
def api(flow) do
Extension.get_opt(flow, [:flow], :api, nil, false)
end
def arguments(flow) do
Extension.get_entities(flow, [:flow])
end
def steps(flow) do
Extension.get_entities(flow, [:steps])
end
end