From 7fd6db31cac0c977fe8bf4a192bfd4dd694fc7a7 Mon Sep 17 00:00:00 2001 From: fed <58637860+fedddddd@users.noreply.github.com> Date: Fri, 24 Feb 2023 00:20:39 +0100 Subject: [PATCH] Small config fix --- src/client/component/config.cpp | 12 +++++++++--- src/client/component/config.hpp | 8 +++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/client/component/config.cpp b/src/client/component/config.cpp index ef2b08dd..4c544c98 100644 --- a/src/client/component/config.cpp +++ b/src/client/component/config.cpp @@ -66,7 +66,7 @@ namespace config return value; } - nlohmann::json get_default_value(const std::string& key) + std::optional get_default_value(const std::string& key) { const auto iter = field_definitions.find(key); if (iter == field_definitions.end()) @@ -74,7 +74,7 @@ namespace config return {}; } - return iter->second.default_value; + return {iter->second.default_value}; } nlohmann::json get_raw(const std::string& key) @@ -82,7 +82,13 @@ namespace config const auto cfg = read_config(); if (!cfg.is_object() || !cfg.contains(key)) { - return get_default_value(key); + const auto default_value = get_default_value(key); + if (default_value.has_value()) + { + return default_value.value(); + } + + return {}; } return validate_config_field(key, cfg[key]); diff --git a/src/client/component/config.hpp b/src/client/component/config.hpp index efcee303..57cbb339 100644 --- a/src/client/component/config.hpp +++ b/src/client/component/config.hpp @@ -9,7 +9,7 @@ namespace config void write_config(const nlohmann::json& json); nlohmann::json validate_config_field(const std::string& key, const field_value& value); - nlohmann::json get_default_value(const std::string& key); + std::optional get_default_value(const std::string& key); template std::optional get(const std::string& key) @@ -17,6 +17,12 @@ namespace config const auto cfg = read_config(); if (!cfg.is_object() || !cfg.contains(key)) { + const auto default_value = get_default_value(key); + if (default_value.has_value()) + { + return {default_value.value()}; + } + return {}; }