Files
elixirAI/lib/elixir_ai_web/plugs/voice_session_id.ex
Alex Mickelson d857e91241
Some checks failed
CI/CD Pipeline / build (push) Failing after 4s
general solution to voice control
2026-03-25 09:22:48 -06:00

24 lines
538 B
Elixir

defmodule ElixirAiWeb.Plugs.VoiceSessionId do
@moduledoc """
Ensures a `voice_session_id` exists in the Plug session.
This UUID ties VoiceLive (root layout) to page LiveViews (inner content)
so they can discover each other via `:pg` process groups.
"""
import Plug.Conn
def init(opts), do: opts
def call(conn, _opts) do
case get_session(conn, "voice_session_id") do
nil ->
id = Ecto.UUID.generate()
put_session(conn, "voice_session_id", id)
_existing ->
conn
end
end
end