defmodule MicrowavepropWeb.UserRegistrationController do use MicrowavepropWeb, :controller alias Microwaveprop.Accounts alias Microwaveprop.Accounts.User @spec new(Plug.Conn.t(), map()) :: Plug.Conn.t() def new(conn, _params) do changeset = Accounts.change_user_registration(%User{}) render(conn, :new, changeset: changeset) end @spec create(Plug.Conn.t(), map()) :: Plug.Conn.t() def create(conn, %{"user" => user_params}) do case Accounts.register_user(user_params) do {:ok, user} -> {:ok, _email} = Accounts.deliver_user_confirmation_instructions( user, &url(~p"/users/confirm/#{&1}") ) conn |> put_flash( :info, "Account created. Please check #{user.email} for a confirmation link to activate your account." ) |> redirect(to: ~p"/users/log-in") {:error, %Ecto.Changeset{} = changeset} -> render(conn, :new, changeset: changeset) end end end