summaryrefslogtreecommitdiff
path: root/src/file
diff options
context:
space:
mode:
Diffstat (limited to 'src/file')
-rw-r--r--src/file/mail.cpp31
-rw-r--r--src/file/mail.hpp6
-rw-r--r--src/file/settings.cpp15
-rw-r--r--src/file/settings.hpp10
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;
};
}