By “initialize” I mean add values so we can expect them everywhere. For example a user UUID (in my app users are temporary, they are not persisted).
From the router
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :init_session # <----- here
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
end
def init_session(conn, _opts) do
case Plug.Conn.get_session(conn, "some_key") do
nil -> put_session(conn, "some_key", "my value")
_ -> conn
end
end
Of course I could call a custom plug module or other sophisticated initialization, but the real question is : do you just add a plug to set default values ?