Packages
ash_phoenix
1.3.0
2.3.24
2.3.23
2.3.22
2.3.21
2.3.20
2.3.19
2.3.18
2.3.17
2.3.16
2.3.15
2.3.14
2.3.13
2.3.12
2.3.11
2.3.10
2.3.9
2.3.8
2.3.7
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.0
2.1.26
2.1.25
2.1.24
2.1.23
2.1.22
2.1.21
2.1.20
2.1.19
2.1.18
2.1.17
2.1.16
2.1.15
2.1.14
2.1.13
2.1.12
2.1.11
2.1.10
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
2.0.0-rc.8
2.0.0-rc.7
2.0.0-rc.6
2.0.0-rc.5
2.0.0-rc.4
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
2.0.0-rc.0
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.26
1.2.25
1.2.24
1.2.23
1.2.22
1.2.21
1.2.20
1.2.19
1.2.18
1.2.17
1.2.16
1.2.15
1.2.14
1.2.13
1.2.12
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.2
1.1.1
1.1.0
1.1.0-rc.3
1.1.0-rc.2
1.1.0-rc.1
1.1.0-rc.0
1.0.0-rc.1
1.0.0-rc.0
1.0.0-pre.2
1.0.0-pre.1
1.0.0-pre.0
0.7.7
0.7.6-rc.0
0.7.5
0.7.4
0.7.3
0.7.2-rc.2
0.7.2-rc.1
0.7.2-rc.0
0.7.1
0.7.0
0.6.0-rc.7
0.6.0-rc.6
0.6.0-rc.5
0.6.0-rc.4
0.6.0-rc.3
0.6.0-rc.2
0.6.0-rc.1
0.6.0-rc.0
0.5.19-rc.2
0.5.19-rc.1
0.5.19-rc.0
0.5.18
0.5.17
0.5.16
0.5.15
0.5.14
0.5.13
0.5.12
0.5.11
0.5.10
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.24
0.4.23
0.4.23-rc.1
0.4.23-rc.0
0.4.22-rc2
0.4.22-rc1
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Utilities for integrating Ash and Phoenix
Current section
Files
Jump to
Current section
Files
priv/templates/ash_phoenix.gen.html/controller.ex
defmodule <%= @app_name %>Web.<%= @resource %>Controller do
use <%= @app_name %>Web, :controller
alias <%= inspect @full_resource %>
def index(conn, _params) do
<%= @plural %> = <%= @resource %>.read!()
render(conn, :index, <%= @plural %>: <%= @plural %>)
end
def new(conn, _params) do
render(conn, :new, form: create_form())
end
def create(conn, %{"<%= @singular %>" => <%= @singular %>_params}) do
<%= @singular %>_params
|> create_form()
|> AshPhoenix.Form.submit()
|> case do
{:ok, <%= @singular %>} ->
conn
|> put_flash(:info, "<%= @resource %> created successfully.")
|> redirect(to: ~p"/<%= @plural %>/#{<%= @singular %>}")
{:error, form} ->
conn
|> put_flash(:error, "<%= @resource %> could not be created.")
|> render(:new, form: form)
end
end
def show(conn, %{"id" => id}) do
<%= @singular %> = <%= @resource %>.by_id!(id)
render(conn, :show, <%= @singular %>: <%= @singular %>)
end
def edit(conn, %{"id" => id}) do
<%= @singular %> = <%= @resource %>.by_id!(id)
render(conn, :edit, <%= @singular %>: <%= @singular %>, form: update_form(<%= @singular %>))
end
def update(conn, %{"<%= @singular %>" => <%= @singular %>_params, "id" => id}) do
<%= @singular %> = <%= @resource %>.by_id!(id)
<%= @singular %>
|> update_form(<%= @singular %>_params)
|> AshPhoenix.Form.submit()
|> case do
{:ok, <%= @singular %>} ->
conn
|> put_flash(:info, "<%= @resource %> updated successfully.")
|> redirect(to: ~p"/<%= @plural %>/#{<%= @singular %>}")
{:error, form} ->
conn
|> put_flash(:error, "<%= @resource %> could not be updated.")
|> render(:edit, <%= @singular %>: <%= @singular %>, form: form)
end
end
def delete(conn, %{"id" => id}) do
<%= @singular %> = <%= @resource %>.by_id!(id)
:ok = <%= @resource %>.destroy(<%= @singular %>)
conn
|> put_flash(:info, "<%= @resource %> deleted successfully.")
|> redirect(to: ~p"/<%= @plural %>")
end
defp create_form(params \\ nil) do
AshPhoenix.Form.for_create(<%= @resource %>, :create, as: "<%= @singular %>", api: <%= @full_api %>, params: params)
end
defp update_form(<%= @singular %>, params \\ nil) do
AshPhoenix.Form.for_update(<%= @singular %>, :update, as: "<%= @singular %>", api: <%= @full_api %>, params: params)
end
end