aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex S <alex.strizhakov@gmail.com>2019-06-22 09:01:30 +0300
committerAlex S <alex.strizhakov@gmail.com>2019-06-22 09:01:30 +0300
commitf0fccb75783bcac406133d8cb3d4d3a485189092 (patch)
treef6eb75d62523815c41a57ac148b519ea3cf2c95e
parentddd04d1c52a0ce7cc44f14c736cb2271ecf279e9 (diff)
downloadpleroma-f0fccb75783bcac406133d8cb3d4d3a485189092.tar.gz
fix for int and modules
-rw-r--r--lib/pleroma/web/admin_api/config.ex11
-rw-r--r--test/web/admin_api/admin_api_controller_test.exs29
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