Include query params for all /_/
prefixed links
Query params were not included when using the "/_/" prefix for farside links. This extracts the logic for parsing query params into a function that is then used for both /_/ and non-/_/ links.
This commit is contained in:
parent
213658ae6c
commit
6210ed56e7
2 changed files with 14 additions and 14 deletions
|
@ -8,6 +8,16 @@ defmodule Farside.Router do
|
||||||
plug(:match)
|
plug(:match)
|
||||||
plug(:dispatch)
|
plug(:dispatch)
|
||||||
|
|
||||||
|
def get_query_params(conn) do
|
||||||
|
cond do
|
||||||
|
String.length(conn.query_string) > 0 ->
|
||||||
|
"?#{conn.query_string}"
|
||||||
|
|
||||||
|
true ->
|
||||||
|
""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
get "/" do
|
get "/" do
|
||||||
resp =
|
resp =
|
||||||
EEx.eval_file(
|
EEx.eval_file(
|
||||||
|
@ -31,8 +41,7 @@ defmodule Farside.Router do
|
||||||
resp =
|
resp =
|
||||||
EEx.eval_file(
|
EEx.eval_file(
|
||||||
@route,
|
@route,
|
||||||
service: service,
|
instance_url: "#{r_path}#{get_query_params(conn)}"
|
||||||
instance_url: r_path
|
|
||||||
)
|
)
|
||||||
|
|
||||||
send_resp(conn, 200, resp)
|
send_resp(conn, 200, resp)
|
||||||
|
@ -62,21 +71,12 @@ defmodule Farside.Router do
|
||||||
|> Farside.pick_instance
|
|> Farside.pick_instance
|
||||||
end
|
end
|
||||||
|
|
||||||
params =
|
|
||||||
cond do
|
|
||||||
String.length(conn.query_string) > 0 ->
|
|
||||||
"?#{conn.query_string}"
|
|
||||||
|
|
||||||
true ->
|
|
||||||
""
|
|
||||||
end
|
|
||||||
|
|
||||||
# Redirect to the available instance
|
# Redirect to the available instance
|
||||||
conn
|
conn
|
||||||
|> Plug.Conn.resp(:found, "")
|
|> Plug.Conn.resp(:found, "")
|
||||||
|> Plug.Conn.put_resp_header(
|
|> Plug.Conn.put_resp_header(
|
||||||
"location",
|
"location",
|
||||||
"#{instance}/#{path}#{params}"
|
"#{instance}/#{path}#{get_query_params(conn)}"
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<head>
|
<head>
|
||||||
<title>Farside Redirect - <%= service %></title>
|
<title>Farside Redirect</title>
|
||||||
<meta http-equiv="refresh" content="1; url=<%= instance_url %>">
|
<meta http-equiv="refresh" content="1; url=<%= instance_url %>">
|
||||||
<script>
|
<script>
|
||||||
history.pushState({page: 1}, "Farside Redirect");
|
history.pushState({page: 1}, "Farside Redirect");
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<span>Redirecting to <%= service %> instance...
|
<span>Redirecting to <%= instance_url %>...</span>
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Reference in a new issue