Current section
Files
Jump to
Current section
Files
lib/glific_web/controllers/api/v1/registration_controller.ex
defmodule GlificWeb.API.V1.RegistrationController do
@moduledoc """
The Pow User Registration Controller
"""
use GlificWeb, :controller
alias Ecto.Changeset
alias GlificWeb.ErrorHelpers
alias Plug.Conn
@doc false
@spec create(Conn.t(), map()) :: Conn.t()
def create(conn, %{"user" => user_params}) do
conn
|> Pow.Plug.create_user(user_params)
|> case do
{:ok, _user, conn} ->
json(conn, %{
data: %{
access_token: conn.private[:api_access_token],
renewal_token: conn.private[:api_renewal_token]
}
})
{:error, changeset, conn} ->
errors = Changeset.traverse_errors(changeset, &ErrorHelpers.translate_error/1)
conn
|> put_status(500)
|> json(%{error: %{status: 500, message: "Couldn't create user", errors: errors}})
end
end
end