diff --git a/lib/something_erlang_web/controllers/page_controller.ex b/lib/something_erlang_web/controllers/page_controller.ex index a6bb25f..ea69be2 100644 --- a/lib/something_erlang_web/controllers/page_controller.ex +++ b/lib/something_erlang_web/controllers/page_controller.ex @@ -6,4 +6,28 @@ defmodule SomethingErlangWeb.PageController do # so skip the default app layout. render(conn, :home) end + + def to_forum_path(conn, %{"forum_path" => path} = _params) do + {redirect_good, thread, page} = + case { + Regex.run(~r{threadid=(\d+)}, path), + Regex.run(~r{pagenumber=(\d+)}, path) + } do + {[_, thread], nil} -> {:ok, thread, 1} + {[_, thread], [_, page]} -> {:ok, thread, page} + _ -> {:error, nil, nil} + end + + if redirect_good == :ok do + redirect(conn, to: ~p"/thread/#{thread}?page=#{page}") + else + put_flash(conn, :error, "Could not resolve URL") + render(conn, :home) + end + end + + def to_forum_path(conn, params) do + params |> IO.inspect() + render(conn, :home) + end end diff --git a/lib/something_erlang_web/controllers/page_html/home.html.heex b/lib/something_erlang_web/controllers/page_html/home.html.heex index 96c3fce..6c17454 100644 --- a/lib/something_erlang_web/controllers/page_html/home.html.heex +++ b/lib/something_erlang_web/controllers/page_html/home.html.heex @@ -1,3 +1,8 @@ +<.form :let={f} for={@conn} action={~p"/"}> + + + +
- <%= inspect(@current_user) %> + <%= inspect(@current_user) %>diff --git a/lib/something_erlang_web/router.ex b/lib/something_erlang_web/router.ex index 191e27d..c86cfa6 100644 --- a/lib/something_erlang_web/router.ex +++ b/lib/something_erlang_web/router.ex @@ -21,10 +21,12 @@ defmodule SomethingErlangWeb.Router do pipe_through [:browser] get "/", PageController, :home + post "/", PageController, :to_forum_path live_session :user_browsing, on_mount: [{SomethingErlangWeb.UserAuth, :mount_current_user}] do live "/thread", ThreadLive + live "/thread/:id", ThreadLive end end