2022-08-17 04:39:35 +12:00
|
|
|
|
|
|
|
|
|
|
|
Available template functions:
|
|
|
|
|
|
|
|
- `arg/1` to refer to a flow argument
|
2022-08-17 04:40:37 +12:00
|
|
|
- `result/1` to refer to the result of another step
|
|
|
|
|
|
|
|
|
|
|
|
If given a single step, then the result of the step is returned. If given multiple, then a map of step name to result is returned.
|
|
|
|
If nothing is provided, then the last step is returned.
|
|
|
|
|
|
|
|
To rename keys in the map of step names to results, use a keyword list, where the key is the step and the value is what should be in
|
|
|
|
the returned map.
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
`returns :step_name`
|
|
|
|
`returns [:step_one, :step_two]`
|
|
|
|
`returns [step_one: :one, step_two: :two]`
|
|
|
|
|
|
|
|
|
|
|
|
## Custom steps
|
|
|
|
|
|
|
|
Generally speaking, you should also set the `touches_resources` if you set `async?` to true.
|
|
|
|
This ensures that the custom step will be run synchronously if any of those resource's data
|
|
|
|
layers is in a corresponding transaction. You don't necessarily need to set *all* of the
|
|
|
|
resources that will be touched. For example, all AshPostgres resources that share the same
|
|
|
|
repo share the same transaction state.
|