blonk is a radar for your web, where you follow vibes for cool blips on the radar
1defmodule ElixirBlonkWeb.UserRegistrationController do
2 use ElixirBlonkWeb, :controller
3
4 alias ElixirBlonk.Accounts
5 alias ElixirBlonk.Accounts.User
6 alias ElixirBlonkWeb.UserAuth
7
8 def new(conn, _params) do
9 changeset = Accounts.change_user_registration(%User{})
10 render(conn, :new, changeset: changeset)
11 end
12
13 def create(conn, %{"user" => user_params}) do
14 case Accounts.register_user(user_params) do
15 {:ok, user} ->
16 {:ok, _} =
17 Accounts.deliver_user_confirmation_instructions(
18 user,
19 &url(~p"/users/confirm/#{&1}")
20 )
21
22 conn
23 |> put_flash(:info, "User created successfully.")
24 |> UserAuth.log_in_user(user)
25
26 {:error, %Ecto.Changeset{} = changeset} ->
27 render(conn, :new, changeset: changeset)
28 end
29 end
30end