Last active
March 27, 2025 15:43
-
-
Save osbre/f6a2ade5203322bbc1a463aadd4c7679 to your computer and use it in GitHub Desktop.
Phoenix controller template without use of Contexts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
defmodule <%= inspect context.web_module %>.<%= inspect Module.concat(schema.web_namespace, schema.alias) %>Controller do | |
use <%= inspect context.web_module %>, :controller | |
alias <%= inspect schema.module %> | |
alias <%= inspect context.base_module %>.Repo | |
def index(conn, _params) do | |
<%= schema.plural %> = Repo.all(<%= inspect schema.alias %>) | |
render(conn, :index, <%= schema.collection %>: <%= schema.plural %>) | |
end | |
def new(conn, _params) do | |
changeset = <%= inspect schema.alias %>.changeset(%<%= inspect schema.alias %>{}, %{}) | |
render(conn, :new, changeset: changeset) | |
end | |
def create(conn, %{<%= inspect schema.singular %> => <%= schema.singular %>_params}) do | |
case <%= inspect schema.alias %>.changeset(%<%= inspect schema.alias %>{}, <%= schema.singular %>_params) |> Repo.insert() do | |
{:ok, <%= schema.singular %>} -> | |
conn | |
|> put_flash(:info, "<%= schema.human_singular %> created successfully.") | |
|> redirect(to: ~p"<%= schema.route_prefix %>/#{<%= schema.singular %>}") | |
{:error, %Ecto.Changeset{} = changeset} -> | |
render(conn, :new, changeset: changeset) | |
end | |
end | |
def show(conn, %{"id" => id}) do | |
<%= schema.singular %> = Repo.get!(<%= inspect schema.alias %>, id) | |
render(conn, :show, <%= schema.singular %>: <%= schema.singular %>) | |
end | |
def edit(conn, %{"id" => id}) do | |
<%= schema.singular %> = Repo.get!(<%= inspect schema.alias %>, id) | |
changeset = <%= inspect schema.alias %>.changeset(<%= schema.singular %>, %{}) | |
render(conn, :edit, <%= schema.singular %>: <%= schema.singular %>, changeset: changeset) | |
end | |
def update(conn, %{"id" => id, <%= inspect schema.singular %> => <%= schema.singular %>_params}) do | |
<%= schema.singular %> = Repo.get!(<%= inspect schema.alias %>, id) | |
case <%= schema.singular %> |> <%= inspect schema.alias %>.changeset(<%= schema.singular %>_params) |> Repo.update() do | |
{:ok, <%= schema.singular %>} -> | |
conn | |
|> put_flash(:info, "<%= schema.human_singular %> updated successfully.") | |
|> redirect(to: ~p"<%= schema.route_prefix %>/#{<%= schema.singular %>}") | |
{:error, %Ecto.Changeset{} = changeset} -> | |
render(conn, :edit, <%= schema.singular %>: <%= schema.singular %>, changeset: changeset) | |
end | |
end | |
def delete(conn, %{"id" => id}) do | |
Repo.get!(<%= inspect schema.alias %>, id) |> Repo.delete! | |
conn | |
|> put_flash(:info, "<%= schema.human_singular %> deleted successfully.") | |
|> redirect(to: ~p"<%= schema.route_prefix %>") | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment