When adding a user via API creating a session token and sending it with the response.
This commit is contained in:
@ -180,6 +180,13 @@ defmodule BeetRoundServer.Accounts do
|
||||
|> update_user_and_delete_all_tokens()
|
||||
end
|
||||
|
||||
def create_email_token(%User{} = user) do
|
||||
{encoded_token, user_token} = UserToken.build_email_token(user, "session")
|
||||
Repo.insert!(user_token)
|
||||
|
||||
encoded_token
|
||||
end
|
||||
|
||||
## Session
|
||||
|
||||
@doc """
|
||||
|
||||
@ -54,16 +54,22 @@ defmodule BeetRoundServerWeb.UserController do
|
||||
# end
|
||||
|
||||
defp send_created_response(conn, %User{} = user) do
|
||||
encoded_token = Accounts.create_email_token(user)
|
||||
|
||||
conn
|
||||
|> put_status(:created)
|
||||
|> put_resp_header("location", ~p"/api/users/#{user}")
|
||||
|> render(:show, %{user: user})
|
||||
|> render(:show, %{user: user, token: encoded_token})
|
||||
end
|
||||
|
||||
defp send_already_reported_response(conn, %User{} = user) do
|
||||
encoded_token = Accounts.create_email_token(user)
|
||||
IO.puts("encoded_token for user: " <> user.email)
|
||||
IO.inspect(encoded_token)
|
||||
|
||||
conn
|
||||
|> put_status(:already_reported)
|
||||
|> render(:show, %{user: user})
|
||||
|> render(:show, %{user: user, token: encoded_token})
|
||||
end
|
||||
|
||||
defp send_not_acceptable(conn, changeset) do
|
||||
|
||||
@ -8,6 +8,13 @@ defmodule BeetRoundServerWeb.UserJSON do
|
||||
%{data: for(user <- users, do: data(user))}
|
||||
end
|
||||
|
||||
@doc """
|
||||
Renders a single user with token.
|
||||
"""
|
||||
def show(%{user: user, token: encoded_token}) do
|
||||
%{data: %{email: user.email, id: user.id, token: encoded_token}}
|
||||
end
|
||||
|
||||
@doc """
|
||||
Renders a single user.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user