From e41b247e61ce4d4cc96badab3a14bf413e4f46f2 Mon Sep 17 00:00:00 2001 From: eportnov Date: Mon, 3 Oct 2022 11:37:47 +0300 Subject: refactoring --- src/file/mail.cpp | 60 ++++++++++++++++++++++++++++++++++++++------------- src/file/mail.hpp | 3 +++ src/file/settings.cpp | 15 +++++++++---- src/file/settings.hpp | 11 ++-------- 4 files changed, 61 insertions(+), 28 deletions(-) (limited to 'src/file') diff --git a/src/file/mail.cpp b/src/file/mail.cpp index 403ed84..a7e30ea 100644 --- a/src/file/mail.cpp +++ b/src/file/mail.cpp @@ -5,12 +5,21 @@ namespace smtp::file { + + // + //Constructors + // + Mail::Mail( std::string const& path_file, checker::RegistratorMails const& registrator_errors ) : mPathFile( path_file ) , mRegistratorErrors( registrator_errors ) { } + // + //Public methods + // + manage::MailsSet Mail::Read() const { static const std::string METHOD_NAME = "Read mails"; @@ -21,16 +30,9 @@ namespace smtp::file logger::LoggerSet::GetInstance()->LogError( METHOD_NAME, "Unable to open file to read " + mPathFile ); return {}; } - std::string line{}; - manage::MailsSet result; - while ( std::getline( mail_file, line ) ) - { - if( mRegistratorErrors.Check( line ) ) - { - result.push_back( line ); - } - } + auto result = ReadFile( mail_file ); + mail_file.close(); return result; } @@ -40,25 +42,53 @@ namespace smtp::file static const std::string METHOD_NAME = "Write mails"; std::ofstream mail_file{ mPathFile, std::fstream::out | std::fstream::trunc }; - bool result = true; + if ( !mail_file.is_open() ) { logger::LoggerSet::GetInstance()->LogError( METHOD_NAME, "Unable to open file to write " + mPathFile ); return false; } + + auto result = WriteFile( mail_file, data ); + + mail_file.close(); + return result; + } + + // + //Private methods + // + + manage::MailsSet Mail::ReadFile( std::ifstream& mail_file ) const + { + std::string line{}; + manage::MailsSet result; + + while ( std::getline( mail_file, line ) ) + { + if( mRegistratorErrors.Check( line ) ) + { + result.push_back( line ); + } + } + return result; + } + + bool Mail::WriteFile( std::ofstream& mail_file, manage::MailsSet const& data ) const + { + bool result = true; for( const auto& mail : data ) { - if( mRegistratorErrors.Check( mail ) ) - { - mail_file << mail << "\n"; - } + if( mRegistratorErrors.Check( mail ) ) + { + mail_file << mail << "\n"; + } else { result = false; } } - mail_file.close(); return result; } } diff --git a/src/file/mail.hpp b/src/file/mail.hpp index 148aa11..b68049b 100644 --- a/src/file/mail.hpp +++ b/src/file/mail.hpp @@ -17,6 +17,9 @@ namespace smtp::file manage::MailsSet Read() const; bool Write( manage::MailsSet const& data ) const; private: + manage::MailsSet ReadFile( std::ifstream& mail_file ) const; + bool WriteFile( std::ofstream& mail_file, manage::MailsSet const& data ) const; + std::string mPathFile; checker::RegistratorMails mRegistratorErrors; }; diff --git a/src/file/settings.cpp b/src/file/settings.cpp index 70f3cf7..eb8ed5d 100644 --- a/src/file/settings.cpp +++ b/src/file/settings.cpp @@ -2,12 +2,17 @@ #include "settings.hpp" #include "logger/logger_set.hpp" +#include "converter/file_to_struct.hpp" +#include "converter/struct_to_file.hpp" +#include "parser/settings.hpp" namespace smtp::file { + // //Constructors // + Settings::Settings( std::string const& path_file, checker::RegistratorSettings const& registrator_errors ) : mPathFile( path_file ) , mRegistratorErrors( registrator_errors ) @@ -18,27 +23,29 @@ namespace smtp::file // //Public methods // + manage::SettingsFields Settings::Read() const { auto parsed_store = GetParsedStore(); - return converter::Full{}.Convert( parsed_store ); + return converter::FileToStruct{}.Convert( parsed_store ); } bool Settings::Write( manage::SettingsFields const& settings_fields ) const { - auto parsed_data = converter::Full{}.Convert( settings_fields ); + auto parsed_data = converter::StructToFile{}.Convert( settings_fields ); return mRegistratorErrors.Check( parsed_data ) && SetParsedData( parsed_data ); } // //Private methods // + manage::SettingsFileDataType Settings::GetParsedStore() const { static const std::string METHOD_NAME = "Read settings"; std::ifstream settings_file{mPathFile, std::fstream::in}; - if( !settings_file.is_open()) + if( !settings_file.is_open() ) { logger::LoggerSet::GetInstance()->LogError( METHOD_NAME, "Unable to open file to read " + mPathFile ); return {}; @@ -72,7 +79,7 @@ namespace smtp::file logger::LoggerSet::GetInstance()->LogError( METHOD_NAME, "Unable to open file to write " + mPathFile ); return false; } - for( const auto& data: parsed_data ) + for( const auto& data : parsed_data ) { auto line = BuildParam( data ); settings_file << line << "\n"; diff --git a/src/file/settings.hpp b/src/file/settings.hpp index 0882ac3..32ce2f2 100644 --- a/src/file/settings.hpp +++ b/src/file/settings.hpp @@ -1,17 +1,10 @@ #pragma once -#include -#include - -#include "converter/full.hpp" -#include "parser/settings.hpp" #include "management/general.hpp" #include "checker/registrator_settings.hpp" namespace smtp::file { - - class Settings { public: @@ -22,12 +15,12 @@ namespace smtp::file bool Write( manage::SettingsFields const& settings_fields ) const; private: manage::SettingsFileDataType GetParsedStore() const; + manage::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) 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; - manage::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const; - }; + }; } -- cgit v1.2.3