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