Small config fix

This commit is contained in:
fed 2023-02-24 00:20:39 +01:00
parent 6d76c8c467
commit 7fd6db31ca
2 changed files with 16 additions and 4 deletions

View File

@ -66,7 +66,7 @@ namespace config
return value;
}
nlohmann::json get_default_value(const std::string& key)
std::optional<nlohmann::json> 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]);

View File

@ -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<nlohmann::json> get_default_value(const std::string& key);
template <typename T>
std::optional<T> 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 {};
}