diff options
Diffstat (limited to 'src/management/settings.cpp')
-rw-r--r-- | src/management/settings.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/management/settings.cpp b/src/management/settings.cpp new file mode 100644 index 0000000..65888aa --- /dev/null +++ b/src/management/settings.cpp @@ -0,0 +1,57 @@ +#include "settings.hpp" +#include "converter/string.hpp" + +namespace smtp::manage +{ + Settings::Settings( file::Settings const& file_reader ) + : mFileReader( file_reader ) + { + ReloadSettings(); + } + + bool Settings::SetSettings( manage::SettingsFields const& settings_fields )const + { + return mFileReader.Write( settings_fields ); + } + + std::string Settings::GetSettings() + { + ReloadSettings(); + return converter::String{}.Convert(mSettingsFields); + } + + void Settings::ReloadSettings() + { + mSettingsFields = mFileReader.Read(); + } + + bool Settings::IsNeedAuth() const noexcept + { + return mSettingsFields.is_need_auth; + } + + bool Settings::IsNeedSsl() const noexcept + { + return mSettingsFields.is_need_ssl; + } + + std::string Settings::GetUserName() const + { + return mSettingsFields.username; + } + + std::string Settings::GetPassword() const + { + return mSettingsFields.password; + } + + std::string Settings::GetHost() const + { + return mSettingsFields.host; + } + + std::string Settings::GetPort() const + { + return mSettingsFields.port; + } +} |