When adding a user via API creating a session token and sending it with the response.

This commit is contained in:
2026-02-18 10:56:16 +01:00
parent 6c41f69723
commit e0b244bd4e
3 changed files with 22 additions and 2 deletions

View File

@ -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 """

View File

@ -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

View File

@ -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.
"""