diff options
Diffstat (limited to 'src/file')
-rw-r--r-- | src/file/mail.cpp | 2 | ||||
-rw-r--r-- | src/file/mail.hpp | 2 | ||||
-rw-r--r-- | src/file/settings.cpp | 38 | ||||
-rw-r--r-- | src/file/settings.hpp | 27 |
4 files changed, 43 insertions, 26 deletions
diff --git a/src/file/mail.cpp b/src/file/mail.cpp index c728edc..2b1ff14 100644 --- a/src/file/mail.cpp +++ b/src/file/mail.cpp @@ -1,7 +1,7 @@ #include <fstream> #include "mail.hpp" -#include "managment/logger.hpp" +#include "management/logger.hpp" namespace smtp::file { diff --git a/src/file/mail.hpp b/src/file/mail.hpp index 2860c79..148aa11 100644 --- a/src/file/mail.hpp +++ b/src/file/mail.hpp @@ -3,7 +3,7 @@ #include <string> #include <optional> -#include "managment/general.hpp" +#include "management/general.hpp" #include "checker/registrator_mails.hpp" namespace smtp::file diff --git a/src/file/settings.cpp b/src/file/settings.cpp index a856f6e..710b67f 100644 --- a/src/file/settings.cpp +++ b/src/file/settings.cpp @@ -1,10 +1,13 @@ #include <fstream> #include "settings.hpp" -#include "managment/logger.hpp" +#include "management/logger.hpp" namespace smtp::file { + // + //Constructors + // Settings::Settings( std::string const& path_file, checker::RegistratorSettings const& registrator_errors ) : mPathFile( path_file ) , mRegistratorErrors( registrator_errors ) @@ -12,6 +15,9 @@ namespace smtp::file } + // + //Public methods + // manage::SettingsFields Settings::Read() const { auto parsed_store = GetParsedStore(); @@ -21,9 +27,12 @@ namespace smtp::file bool Settings::Write( manage::SettingsFields const& settings_fields ) const { auto parsed_data = converter::Full{}.Convert( settings_fields ); - return SetParsedData( parsed_data ); + return mRegistratorErrors.Check( parsed_data ) && SetParsedData( parsed_data ); } + // + //Private methods + // manage::SettingsFileDataType Settings::GetParsedStore() const { std::ifstream settings_file{ mPathFile, std::fstream::in }; @@ -32,19 +41,26 @@ namespace smtp::file manage::Logger::LogError( "Unable to open file to read " + mPathFile ); return {}; } - std::string line{}; - manage::SettingsFileDataType result; + auto result = GetDataFromFile( settings_file ); - while ( std::getline( settings_file, line ) ) - { - auto parsed_data = parser::Settings{}.Parse( line ); - result.insert( parsed_data ); - } - settings_file.close(); + settings_file.close(); return mRegistratorErrors.Check(result) ? result : manage::SettingsFileDataType{}; } - bool Settings::SetParsedData( manage::SettingsFileDataType const& parsed_data ) const + manage::SettingsFileDataType Settings::GetDataFromFile( std::ifstream& settings_file ) const + { + std::string line{}; + manage::SettingsFileDataType result; + + while ( std::getline( settings_file, line ) ) + { + auto parsed_data = parser::Settings{}.Parse( line ); + result.insert( parsed_data ); + } + return result; + } + + bool Settings::SetParsedData( manage::SettingsFileDataType const& parsed_data ) const { std::ofstream settings_file{ mPathFile, std::fstream::out | std::fstream::trunc }; if ( !settings_file.is_open() ) diff --git a/src/file/settings.hpp b/src/file/settings.hpp index 7e5ce63..0882ac3 100644 --- a/src/file/settings.hpp +++ b/src/file/settings.hpp @@ -5,28 +5,29 @@ #include "converter/full.hpp" #include "parser/settings.hpp" -#include "managment/general.hpp" +#include "management/general.hpp" #include "checker/registrator_settings.hpp" namespace smtp::file { - class Settings - { - public: - explicit Settings( std::string const& path_file, checker::RegistratorSettings const& registrator_errors ); - ~Settings() = default; + class Settings + { + public: + explicit Settings( std::string const& path_file, checker::RegistratorSettings const& registrator_errors ); + ~Settings() = default; - manage::SettingsFields Read() const; - bool Write( manage::SettingsFields const& settings_fields ) const; - private: + manage::SettingsFields Read() const; + bool Write( manage::SettingsFields const& settings_fields ) const; + private: manage::SettingsFileDataType GetParsedStore() const; - bool SetParsedData( manage::SettingsFileDataType const& parsed_data ) const; - std::string BuildParam( std::pair<std::string, std::string> const& data ) const; + bool SetParsedData( manage::SettingsFileDataType const& parsed_data ) const; + std::string BuildParam( std::pair < std::string, std::string > const& data ) const; - std::string mPathFile; + std::string mPathFile; checker::RegistratorSettings mRegistratorErrors; - }; + manage::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const; + }; } |