diff options
| -rw-r--r-- | lib/pleroma/web/admin_api/config.ex | 11 | ||||
| -rw-r--r-- | test/web/admin_api/admin_api_controller_test.exs | 29 | 
2 files changed, 38 insertions, 2 deletions
| diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex index b7072f050..ddcfc87d5 100644 --- a/lib/pleroma/web/admin_api/config.ex +++ b/lib/pleroma/web/admin_api/config.ex @@ -77,8 +77,15 @@ defmodule Pleroma.Web.AdminAPI.Config do    defp do_convert({k, v} = value) when is_tuple(value),      do: %{k => do_convert(v)} -  defp do_convert(value) when is_binary(value) or is_atom(value) or is_map(value), -    do: value +  defp do_convert(value) when is_binary(value) or is_map(value) or is_number(value), do: value + +  defp do_convert(value) when is_atom(value) do +    string = to_string(value) + +    if String.starts_with?(string, "Elixir."), +      do: String.trim_leading(string, "Elixir."), +      else: value +  end    @spec transform(any()) :: binary()    def transform(entity) when is_map(entity) do diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 2a5912645..17a872b21 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -1463,5 +1463,34 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do        assert Application.get_env(:pleroma, :keyaa1) == "another_value"        refute Application.get_env(:pleroma, :keyaa2)      end + +    test "common config example", %{conn: conn} do +      conn = +        post(conn, "/api/pleroma/admin/config", %{ +          configs: [ +            %{ +              "key" => "Pleroma.Captcha", +              "value" => %{ +                "enabled" => ":false", +                "method" => "Pleroma.Captcha.Kocaptcha", +                "seconds_valid" => "i:60" +              } +            } +          ] +        }) + +      assert json_response(conn, 200) == %{ +               "configs" => [ +                 %{ +                   "key" => "Pleroma.Captcha", +                   "value" => [ +                     %{"enabled" => false}, +                     %{"method" => "Pleroma.Captcha.Kocaptcha"}, +                     %{"seconds_valid" => 60} +                   ] +                 } +               ] +             } +    end    end  end | 
