summaryrefslogtreecommitdiff
path: root/src/management/settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/management/settings.cpp')
-rw-r--r--src/management/settings.cpp57
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;
+ }
+}