33 lines
873 B
Elixir
33 lines
873 B
Elixir
defmodule BeetRoundServerWeb.AdminRegistrationController do
|
|
use BeetRoundServerWeb, :controller
|
|
|
|
alias BeetRoundServer.Admins
|
|
alias BeetRoundServer.Admins.Admin
|
|
|
|
def new(conn, _params) do
|
|
changeset = Admins.change_admin_email(%Admin{})
|
|
render(conn, :new, changeset: changeset)
|
|
end
|
|
|
|
def create(conn, %{"admin" => admin_params}) do
|
|
case Admins.register_admin(admin_params) do
|
|
{:ok, admin} ->
|
|
{:ok, _} =
|
|
Admins.deliver_login_instructions(
|
|
admin,
|
|
&url(~p"/admins/log-in/#{&1}")
|
|
)
|
|
|
|
conn
|
|
|> put_flash(
|
|
:info,
|
|
"An email was sent to #{admin.email}, please access it to confirm your account."
|
|
)
|
|
|> redirect(to: ~p"/admins/log-in")
|
|
|
|
{:error, %Ecto.Changeset{} = changeset} ->
|
|
render(conn, :new, changeset: changeset)
|
|
end
|
|
end
|
|
end
|