diff options
author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-01-18 12:25:56 +0300 |
---|---|---|
committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-01-18 12:25:56 +0300 |
commit | e69986169095796f2845c4f859234d96f91bf9ff (patch) | |
tree | ee64255b674c622c7ef3545263c2784f69c7f585 /lib/pleroma/web/admin_api/admin_api_controller.ex | |
parent | 89e93fb33f6295428dd84a50c9ca44e26bd169c3 (diff) | |
download | pleroma-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.ex | 12 |
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 |