Files
something-erlang/lib/something_erlang_web/controllers/page_controller.ex

31 lines
803 B
Elixir

defmodule SomethingErlangWeb.PageController do
use SomethingErlangWeb, :controller
def index(conn, _params) do
render(conn, "index.html")
end
def to_forum_path(conn, %{"to" => redir_params} = _params) do
%{"forum_path" => path} = redir_params
{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: Routes.thread_show_path(conn, :show, thread, page: page)
)
else
put_flash(conn, :error, "Could not resolve URL")
render(conn, "index.html")
end
end
end