diff options
Diffstat (limited to 'src/file')
-rw-r--r-- | src/file/mail.cpp | 31 | ||||
-rw-r--r-- | src/file/mail.hpp | 6 | ||||
-rw-r--r-- | src/file/settings.cpp | 15 | ||||
-rw-r--r-- | src/file/settings.hpp | 10 |
4 files changed, 28 insertions, 34 deletions
diff --git a/src/file/mail.cpp b/src/file/mail.cpp index 5452136..c728edc 100644 --- a/src/file/mail.cpp +++ b/src/file/mail.cpp @@ -5,8 +5,9 @@ namespace smtp::file { - Mail::Mail( std::string const& path_file ) + Mail::Mail( std::string const& path_file, checker::RegistratorMails const& registrator_errors ) : mPathFile( path_file ) + , mRegistratorErrors( registrator_errors ) { } @@ -23,11 +24,10 @@ namespace smtp::file while ( std::getline( mail_file, line ) ) { - auto parsed_data = GetMailFromLine( line ); - if( parsed_data ) - { - result.push_back( *parsed_data ); - } + if( mRegistratorErrors.Check( line ) ) + { + result.push_back( line ); + } } mail_file.close(); return result; @@ -41,23 +41,14 @@ namespace smtp::file manage::Logger::LogError( "Unable to open file to write " + mPathFile ); return false; } - for( const auto& pair : data ) + for( const auto& mail : data ) { - mail_file << pair << "\n"; + if( mRegistratorErrors.Check( mail ) ) + { + mail_file << mail << "\n"; + } } mail_file.close(); return true; } - - std::optional<std::string> Mail::GetMailFromLine( std::string const& line ) const - { - //TODO registrator if checking parsing - auto pos = line.find('@'); - if(pos == std::string::npos) - { - return {}; - } - return line; - } - } diff --git a/src/file/mail.hpp b/src/file/mail.hpp index 34050bf..2860c79 100644 --- a/src/file/mail.hpp +++ b/src/file/mail.hpp @@ -4,21 +4,21 @@ #include <optional> #include "managment/general.hpp" +#include "checker/registrator_mails.hpp" namespace smtp::file { class Mail { public: - explicit Mail( std::string const& path_file ); + explicit Mail( std::string const& path_file, checker::RegistratorMails const& registrator_errors ); ~Mail() = default; manage::MailsSet Read() const; bool Write( manage::MailsSet const& data ) const; private: - std::optional<std::string> GetMailFromLine( std::string const& line ) const; - std::string mPathFile; + checker::RegistratorMails mRegistratorErrors; }; } diff --git a/src/file/settings.cpp b/src/file/settings.cpp index 83c1037..a856f6e 100644 --- a/src/file/settings.cpp +++ b/src/file/settings.cpp @@ -5,8 +5,9 @@ namespace smtp::file { - Settings::Settings( std::string const& path_file) + Settings::Settings( std::string const& path_file, checker::RegistratorSettings const& registrator_errors ) : mPathFile( path_file ) + , mRegistratorErrors( registrator_errors ) { } @@ -23,7 +24,7 @@ namespace smtp::file return SetParsedData( parsed_data ); } - ParsedStoreType Settings::GetParsedStore() const + manage::SettingsFileDataType Settings::GetParsedStore() const { std::ifstream settings_file{ mPathFile, std::fstream::in }; if ( !settings_file.is_open() ) @@ -32,18 +33,18 @@ namespace smtp::file return {}; } std::string line{}; - ParsedStoreType result; + manage::SettingsFileDataType result; while ( std::getline( settings_file, line ) ) { - auto parsed_data = parser::Settings{}.Parse(line); - result.insert( parsed_data ); + auto parsed_data = parser::Settings{}.Parse( line ); + result.insert( parsed_data ); } settings_file.close(); - return result; + return mRegistratorErrors.Check(result) ? result : manage::SettingsFileDataType{}; } - bool Settings::SetParsedData( ParsedStoreType const& parsed_data ) const + 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 fb77b1e..7e5ce63 100644 --- a/src/file/settings.hpp +++ b/src/file/settings.hpp @@ -6,25 +6,27 @@ #include "converter/full.hpp" #include "parser/settings.hpp" #include "managment/general.hpp" +#include "checker/registrator_settings.hpp" namespace smtp::file { - using ParsedStoreType = std::unordered_map<std::string, std::string>; + class Settings { public: - explicit Settings( std::string const& path_file ); + 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: - ParsedStoreType GetParsedStore() const; - bool SetParsedData( ParsedStoreType const& parsed_data ) const; + manage::SettingsFileDataType GetParsedStore() const; + bool SetParsedData( manage::SettingsFileDataType const& parsed_data ) const; std::string BuildParam( std::pair<std::string, std::string> const& data ) const; std::string mPathFile; + checker::RegistratorSettings mRegistratorErrors; }; } |