chiya/lib/chiya_web/controllers/identity_controller.ex
2023-03-09 21:42:54 +01:00

62 lines
1.8 KiB
Elixir

defmodule ChiyaWeb.IdentityController do
use ChiyaWeb, :controller
alias Chiya.Identities
alias Chiya.Identities.Identity
def index(conn, _params) do
identities = Identities.list_identities()
render(conn, :index, identities: identities)
end
def new(conn, _params) do
changeset = Identities.change_identity(%Identity{})
render(conn, :new, changeset: changeset)
end
def create(conn, %{"identity" => identity_params}) do
case Identities.create_identity(identity_params) do
{:ok, identity} ->
conn
|> put_flash(:info, "Identity created successfully.")
|> redirect(to: ~p"/admin/identities/#{identity}")
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, :new, changeset: changeset)
end
end
def show(conn, %{"id" => id}) do
identity = Identities.get_identity!(id)
render(conn, :show, identity: identity)
end
def edit(conn, %{"id" => id}) do
identity = Identities.get_identity!(id)
changeset = Identities.change_identity(identity)
render(conn, :edit, identity: identity, changeset: changeset)
end
def update(conn, %{"id" => id, "identity" => identity_params}) do
identity = Identities.get_identity!(id)
case Identities.update_identity(identity, identity_params) do
{:ok, identity} ->
conn
|> put_flash(:info, "Identity updated successfully.")
|> redirect(to: ~p"/admin/identities/#{identity}")
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, :edit, identity: identity, changeset: changeset)
end
end
def delete(conn, %{"id" => id}) do
identity = Identities.get_identity!(id)
{:ok, _identity} = Identities.delete_identity(identity)
conn
|> put_flash(:info, "Identity deleted successfully.")
|> redirect(to: ~p"/admin/identities")
end
end