From 8c3b9f73a1c533aa4a93d4a6f4caa35cca32b006 Mon Sep 17 00:00:00 2001 From: Mikko Ahlroth Date: Fri, 20 Jan 2023 21:24:09 +0200 Subject: [PATCH] Use proper plug system when calling controller action --- lib/controller_plug.ex | 11 +++++++++++ lib/feeniks/router.ex | 11 +++++------ lib/router_helpers.ex | 7 ------- 3 files changed, 16 insertions(+), 13 deletions(-) create mode 100644 lib/controller_plug.ex delete mode 100644 lib/router_helpers.ex diff --git a/lib/controller_plug.ex b/lib/controller_plug.ex new file mode 100644 index 0000000..8392f80 --- /dev/null +++ b/lib/controller_plug.ex @@ -0,0 +1,11 @@ +defmodule ControllerPlug do + @behaviour Plug + + @impl Plug + def init(action), do: action + + @impl Plug + def call(conn, action) do + action.(conn, conn.params) + end +end diff --git a/lib/feeniks/router.ex b/lib/feeniks/router.ex index aa67d2d..7452580 100644 --- a/lib/feeniks/router.ex +++ b/lib/feeniks/router.ex @@ -1,6 +1,5 @@ defmodule Feeniks.Router do import PlugHelpers - import RouterHelpers @behaviour Plug @@ -16,7 +15,9 @@ defmodule Feeniks.Router do &__MODULE__.accepts_json/1 ]) - @index @common_browser ++ [build_action(&Feeniks.Controller.index/1)] + @index_action module_plug(ControllerPlug, &Feeniks.Controller.index/2) + @index @common_browser ++ [@index_action] + @index_api @common_api ++ [@index_action] @impl Plug def init(opts), do: opts @@ -40,14 +41,12 @@ defmodule Feeniks.Router do defp match(conn, "GET", _) do conn - |> common_browser() - |> Feeniks.Controller.index(conn.params) + |> run_plugs(@index) end defp match(conn, "POST", _) do conn - |> run_plugs(@common_api) - |> Feeniks.Controller.index(conn.params) + |> run_plugs(@index_api) end defp match(conn, _, _) do diff --git a/lib/router_helpers.ex b/lib/router_helpers.ex deleted file mode 100644 index c64a391..0000000 --- a/lib/router_helpers.ex +++ /dev/null @@ -1,7 +0,0 @@ -defmodule RouterHelpers do - @spec build_action((Plug.Conn.t(), Plug.Conn.params() -> Plug.Conn.t())) :: - (Plug.Conn.t() -> Plug.Conn.t()) - def build_action(action) do - fn conn -> action.(conn, conn.params) end - end -end