diff options
Diffstat (limited to 'lib/aggiedit_web/controllers/user_registration_controller.ex')
-rw-r--r-- | lib/aggiedit_web/controllers/user_registration_controller.ex | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/aggiedit_web/controllers/user_registration_controller.ex b/lib/aggiedit_web/controllers/user_registration_controller.ex new file mode 100644 index 0000000..c8a4d4a --- /dev/null +++ b/lib/aggiedit_web/controllers/user_registration_controller.ex @@ -0,0 +1,30 @@ +defmodule AggieditWeb.UserRegistrationController do + use AggieditWeb, :controller + + alias Aggiedit.Accounts + alias Aggiedit.Accounts.User + alias AggieditWeb.UserAuth + + def new(conn, _params) do + changeset = Accounts.change_user_registration(%User{}) + render(conn, "new.html", changeset: changeset) + end + + def create(conn, %{"user" => user_params}) do + case Accounts.register_user(user_params) do + {:ok, user} -> + {:ok, _} = + Accounts.deliver_user_confirmation_instructions( + user, + &Routes.user_confirmation_url(conn, :edit, &1) + ) + + conn + |> put_flash(:info, "User created successfully.") + |> UserAuth.log_in_user(user) + + {:error, %Ecto.Changeset{} = changeset} -> + render(conn, "new.html", changeset: changeset) + end + end +end |