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()
|
|> update_user_and_delete_all_tokens()
|
||||||
end
|
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
|
## Session
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
|||||||
@ -54,16 +54,22 @@ defmodule BeetRoundServerWeb.UserController do
|
|||||||
# end
|
# end
|
||||||
|
|
||||||
defp send_created_response(conn, %User{} = user) do
|
defp send_created_response(conn, %User{} = user) do
|
||||||
|
encoded_token = Accounts.create_email_token(user)
|
||||||
|
|
||||||
conn
|
conn
|
||||||
|> put_status(:created)
|
|> put_status(:created)
|
||||||
|> put_resp_header("location", ~p"/api/users/#{user}")
|
|> put_resp_header("location", ~p"/api/users/#{user}")
|
||||||
|> render(:show, %{user: user})
|
|> render(:show, %{user: user, token: encoded_token})
|
||||||
end
|
end
|
||||||
|
|
||||||
defp send_already_reported_response(conn, %User{} = user) do
|
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
|
conn
|
||||||
|> put_status(:already_reported)
|
|> put_status(:already_reported)
|
||||||
|> render(:show, %{user: user})
|
|> render(:show, %{user: user, token: encoded_token})
|
||||||
end
|
end
|
||||||
|
|
||||||
defp send_not_acceptable(conn, changeset) do
|
defp send_not_acceptable(conn, changeset) do
|
||||||
|
|||||||
@ -8,6 +8,13 @@ defmodule BeetRoundServerWeb.UserJSON do
|
|||||||
%{data: for(user <- users, do: data(user))}
|
%{data: for(user <- users, do: data(user))}
|
||||||
end
|
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 """
|
@doc """
|
||||||
Renders a single user.
|
Renders a single user.
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user