aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/admin_api/admin_api_controller.ex
diff options
context:
space:
mode:
authorAlexander Strizhakov <alex.strizhakov@gmail.com>2020-01-18 12:25:56 +0300
committerAlexander Strizhakov <alex.strizhakov@gmail.com>2020-01-18 12:25:56 +0300
commite69986169095796f2845c4f859234d96f91bf9ff (patch)
treeee64255b674c622c7ef3545263c2784f69c7f585 /lib/pleroma/web/admin_api/admin_api_controller.ex
parent89e93fb33f6295428dd84a50c9ca44e26bd169c3 (diff)
downloadpleroma-e69986169095796f2845c4f859234d96f91bf9ff.tar.gz
full update for some subkeys
Diffstat (limited to 'lib/pleroma/web/admin_api/admin_api_controller.ex')
-rw-r--r--lib/pleroma/web/admin_api/admin_api_controller.ex12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex
index 7572a6b65..cc658dc0e 100644
--- a/lib/pleroma/web/admin_api/admin_api_controller.ex
+++ b/lib/pleroma/web/admin_api/admin_api_controller.ex
@@ -834,10 +834,20 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
ConfigDB.get_db_keys(value, key)
end
+ db_value = configs[group][key]
+
+ merged_value =
+ if !is_nil(db_value) and Keyword.keyword?(db_value) and
+ ConfigDB.sub_key_full_update?(group, key, Keyword.keys(db_value)) do
+ ConfigDB.deep_merge(group, key, value, db_value)
+ else
+ value
+ end
+
setting = %{
group: ConfigDB.convert(group),
key: ConfigDB.convert(key),
- value: ConfigDB.convert(value)
+ value: ConfigDB.convert(merged_value)
}
if db, do: Map.put(setting, :db, db), else: setting