View Source AshPhoenix (ash_phoenix v2.1.12)

An extension to add form builders to the code interface.

There is currently no DSL for this extension.

This defines a form_to_<name> function for each code interface function. Positional arguments are ignored, given that in forms, all input typically comes from the params map.

The generated function passes all options through to AshPhoenix.Form.for_action/3

Update and destroy actions take the record being updated/destroyed as the first argument.

For example, given this code interface definition on a domain called MyApp.Accounts:

resources do
  resource MyApp.Accounts.User do
    define :register_with_password, args: [:email, :password]
    define :update_user, action: :update, args: [:email, :password]
  end
end

Adding the AshPhoenix extension would define form_to_register_with_password/2.

Usage

Without options:

MyApp.Accounts.form_to_register_with_password()
#=> %AshPhoenix.Form{}

With options:

MyApp.Accounts.form_to_register_with_password(params: %{"email" => "placeholder@email"})
#=> %AshPhoenix.Form{}

With

MyApp.Accounts.form_to_update_user(params: %{"email" => "placeholder@email"})
#=> %AshPhoenix.Form{}