diff options
| author | Ben Busby <contact@benbusby.com> | 2022-06-13 10:20:39 -0600 |
|---|---|---|
| committer | Ben Busby <contact@benbusby.com> | 2022-06-13 10:20:39 -0600 |
| commit | 6210ed56e7bcb6bdbc5cd640001874cf0926f136 (patch) | |
| tree | 541d992ee4fd914a0f97fc02362f397d77835196 /lib | |
| parent | 213658ae6c68e192d3a5c5f24943b4753f954a01 (diff) | |
| download | farside-6210ed56e7bcb6bdbc5cd640001874cf0926f136.tar.gz | |
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.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/farside/router.ex | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/farside/router.ex b/lib/farside/router.ex index e2902f6..85994bc 100644 --- a/lib/farside/router.ex +++ b/lib/farside/router.ex @@ -8,6 +8,16 @@ defmodule Farside.Router do plug(:match) plug(:dispatch) + def get_query_params(conn) do + cond do + String.length(conn.query_string) > 0 -> + "?#{conn.query_string}" + + true -> + "" + end + end + get "/" do resp = EEx.eval_file( @@ -31,8 +41,7 @@ defmodule Farside.Router do resp = EEx.eval_file( @route, - service: service, - instance_url: r_path + instance_url: "#{r_path}#{get_query_params(conn)}" ) send_resp(conn, 200, resp) @@ -62,21 +71,12 @@ defmodule Farside.Router do |> Farside.pick_instance end - params = - cond do - String.length(conn.query_string) > 0 -> - "?#{conn.query_string}" - - true -> - "" - end - # Redirect to the available instance conn |> Plug.Conn.resp(:found, "") |> Plug.Conn.put_resp_header( "location", - "#{instance}/#{path}#{params}" + "#{instance}/#{path}#{get_query_params(conn)}" ) end end |
