Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support pipelines, to declare subsections of action logic that can be referenced from many other places #1625

Open
zachdaniel opened this issue Nov 27, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@zachdaniel
Copy link
Contributor

For example:

update :open do
  pipe_through [:change_state]
  change set_attribute(:state, :open)
end

update :close do
  pipe_through [:change_state], where: [expr(^actor(:role) == :super_user)]
  change set_attribute(:state, :open)
end

pipelines do
  pipeline :change_state do
    validate expr(condition), error_expr: expr(error(...))
    change atomic_update(:score, expr(score + 1))
    change switch(
      [{expr(condition1), change}]
      [{expr(condition1), change}]
      [{expr(condition1), change}]
    )
    change change2
    change change3
  end
end

This has many potential downstream use cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

1 participant