This commit is contained in:
Scott E. Graves 2024-12-20 14:49:47 -06:00
parent 62489245cb
commit 031e8e3495
2 changed files with 29 additions and 36 deletions

View File

@ -108,12 +108,39 @@ private:
private: private:
template <typename dest> template <typename dest>
auto get_value(const json &data, const std::string &name, dest &dst, auto get_value(const json &data, const std::string &name, dest &dst,
bool &found) -> bool; bool &found) -> bool {
REPERTORY_USES_FUNCTION_NAME();
try {
if (data.find(name) == data.end()) {
found = false;
return false;
}
data.at(name).get_to(dst);
return true;
} catch (const std::exception &ex) {
utils::error::raise_error(
function_name, ex, fmt::format("failed to get value|name|{}", name));
}
found = false;
return false;
}
[[nodiscard]] auto load() -> bool; [[nodiscard]] auto load() -> bool;
template <typename dest, typename source> template <typename dest, typename source>
auto set_value(dest &dst, const source &src) -> bool; auto set_value(dest &dst, const source &src) -> bool {
if (dst.load() == src) {
return false;
}
dst = src;
config_changed_ = true;
save();
return true;
}
public: public:
[[nodiscard]] auto get_api_auth() const -> std::string { return api_auth_; } [[nodiscard]] auto get_api_auth() const -> std::string { return api_auth_; }

View File

@ -866,28 +866,6 @@ auto app_config::get_provider_name(const provider_type &prov) -> std::string {
return PROVIDER_NAMES.at(static_cast<std::size_t>(prov)); return PROVIDER_NAMES.at(static_cast<std::size_t>(prov));
} }
template <typename dest>
auto app_config::get_value(const json &data, const std::string &name, dest &dst,
bool &found) -> bool {
REPERTORY_USES_FUNCTION_NAME();
try {
if (data.find(name) == data.end()) {
found = false;
return false;
}
data.at(name).get_to(dst);
return true;
} catch (const std::exception &ex) {
utils::error::raise_error(function_name, ex,
fmt::format("failed to get value|name|{}", name));
}
found = false;
return false;
}
auto app_config::get_value_by_name(const std::string &name) const auto app_config::get_value_by_name(const std::string &name) const
-> std::string { -> std::string {
REPERTORY_USES_FUNCTION_NAME(); REPERTORY_USES_FUNCTION_NAME();
@ -1046,18 +1024,6 @@ void app_config::set_s3_config(s3_config cfg) { set_value(s3_config_, cfg); }
void app_config::set_sia_config(sia_config cfg) { set_value(sia_config_, cfg); } void app_config::set_sia_config(sia_config cfg) { set_value(sia_config_, cfg); }
template <typename dest, typename source>
auto app_config::set_value(dest &dst, const source &src) -> bool {
if (dst.load() == src) {
return false;
}
dst = src;
config_changed_ = true;
save();
return true;
}
auto app_config::set_value_by_name(const std::string &name, auto app_config::set_value_by_name(const std::string &name,
const std::string &value) -> std::string { const std::string &value) -> std::string {
REPERTORY_USES_FUNCTION_NAME(); REPERTORY_USES_FUNCTION_NAME();