Current section
Files
Jump to
Current section
Files
lib/session_storage/assigns_map.ex
defmodule AuthN.SessionStorage.AssignsMap do
@moduledoc ~S"""
Module for storing sessions into `conn.private`. Used for testing.
"""
@behaviour AuthN.SessionStorage
@type conn :: %Plug.Conn{}
@spec get_user_id(conn) :: term | nil
def get_user_id(conn) do
case conn.private do
%{auth_current_user_id: current_user_id} -> current_user_id
_ -> nil
end
end
@spec put_user_id(conn, term) :: conn
def put_user_id(conn, user_id), do: Plug.Conn.put_private(conn, :auth_current_user_id, user_id)
@spec delete_user_id(conn) :: conn
def delete_user_id(conn), do: %{conn | private: Map.delete(conn.private, :auth_current_user_id)}
end