Packages

An open source two way communication platform for the social sector

Current section

Files

Jump to
glific lib glific_web controllers api v1 registration_controller.ex
Raw

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