Small config fix
This commit is contained in:
parent
6d76c8c467
commit
7fd6db31ca
@ -66,7 +66,7 @@ namespace config
|
|||||||
return value;
|
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);
|
const auto iter = field_definitions.find(key);
|
||||||
if (iter == field_definitions.end())
|
if (iter == field_definitions.end())
|
||||||
@ -74,7 +74,7 @@ namespace config
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
return iter->second.default_value;
|
return {iter->second.default_value};
|
||||||
}
|
}
|
||||||
|
|
||||||
nlohmann::json get_raw(const std::string& key)
|
nlohmann::json get_raw(const std::string& key)
|
||||||
@ -82,7 +82,13 @@ namespace config
|
|||||||
const auto cfg = read_config();
|
const auto cfg = read_config();
|
||||||
if (!cfg.is_object() || !cfg.contains(key))
|
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]);
|
return validate_config_field(key, cfg[key]);
|
||||||
|
@ -9,7 +9,7 @@ namespace config
|
|||||||
void write_config(const nlohmann::json& json);
|
void write_config(const nlohmann::json& json);
|
||||||
|
|
||||||
nlohmann::json validate_config_field(const std::string& key, const field_value& value);
|
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>
|
template <typename T>
|
||||||
std::optional<T> get(const std::string& key)
|
std::optional<T> get(const std::string& key)
|
||||||
@ -17,6 +17,12 @@ namespace config
|
|||||||
const auto cfg = read_config();
|
const auto cfg = read_config();
|
||||||
if (!cfg.is_object() || !cfg.contains(key))
|
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 {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user