diff options
author | claiff <claiff@mail.ru> | 2022-09-21 15:50:34 +0300 |
---|---|---|
committer | claiff <claiff@mail.ru> | 2022-09-21 15:50:34 +0300 |
commit | 641c95dcf8c6585caaa6e79d4bec9b53fd666369 (patch) | |
tree | 3c7e38f17738c181437f482d05c66dde94f7c28a /src | |
parent | 629929ebbe386277c25740bc0f4971aac38444d0 (diff) | |
parent | 6cfc7076808138be2ad5a2b05edd635b5948bf31 (diff) | |
download | obmc-sila-smtp-641c95dcf8c6585caaa6e79d4bec9b53fd666369.tar.xz |
Merge branch 'feature/checking'
Diffstat (limited to 'src')
38 files changed, 451 insertions, 207 deletions
diff --git a/src/checker/errors/mail/empty.cpp b/src/checker/errors/mail/empty.cpp new file mode 100644 index 0000000..06f6f4c --- /dev/null +++ b/src/checker/errors/mail/empty.cpp @@ -0,0 +1,9 @@ +#include "empty.hpp" + +namespace smtp::checker::errors::settings +{ + bool Empty::Check( std::string const& line ) const + { + return !line.empty(); + } +} diff --git a/src/checker/errors/mail/empty.hpp b/src/checker/errors/mail/empty.hpp new file mode 100644 index 0000000..9e8c0da --- /dev/null +++ b/src/checker/errors/mail/empty.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "checker/errors/types/imails_error.hpp" + +namespace smtp::checker::errors::settings +{ + class Empty : public types::IError + { + public: + Empty() = default; + ~Empty() override = default; + + bool Check( std::string const& line ) const override; + }; +} + + diff --git a/src/checker/errors/settings/port_number.cpp b/src/checker/errors/settings/port_number.cpp new file mode 100644 index 0000000..b02eec4 --- /dev/null +++ b/src/checker/errors/settings/port_number.cpp @@ -0,0 +1,48 @@ +#include <stdexcept> + +#include "port_number.hpp" +#include "management/logger.hpp" + +namespace smtp::checker::errors::settings +{ + bool PortNumber::Check( const manage::SettingsFileDataType& line ) const + { + static const std::string PORT_FIELD = "port"; + static constexpr int MIN_PORT_NUMBER = 0; + static constexpr int MAX_PORT_NUMBER = 65535; + + //TODO общее использование полей + auto find = line.find( PORT_FIELD ); + if( find == line.end() ) + { + manage::Logger::LogError( "Port doesn't found" ); + return false; + } + auto host_as_string = find->second; + if( host_as_string.empty()) + { + return true; + } + int host_as_int{}; + try + { + host_as_int = std::stoi( host_as_string ); + } + catch( std::invalid_argument const& ex ) + { + manage::Logger::LogError( "Port doesn't entered by numbers" ); + return false; + } + catch( std::out_of_range const& ex ) + { + manage::Logger::LogError( "Port out of range" ); + return false; + } + catch( ... ) + { + manage::Logger::LogError( "Port doesn't entered by numbers" ); + return false; + } + return host_as_int >= MIN_PORT_NUMBER && host_as_int <= MAX_PORT_NUMBER; + } +} diff --git a/src/checker/errors/settings/port_number.hpp b/src/checker/errors/settings/port_number.hpp new file mode 100644 index 0000000..42ab808 --- /dev/null +++ b/src/checker/errors/settings/port_number.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "checker/errors/types/isettings_error.hpp" + +namespace smtp::checker::errors::settings +{ + class PortNumber : public types::IErrorSettings + { + public: + PortNumber() = default; + ~PortNumber() override = default; + + bool Check( const manage::SettingsFileDataType& line ) const override; + }; +} + + diff --git a/src/checker/errors/types/imails_error.hpp b/src/checker/errors/types/imails_error.hpp new file mode 100644 index 0000000..d696bbd --- /dev/null +++ b/src/checker/errors/types/imails_error.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include <memory> +#include <string> + +namespace smtp::checker::errors::types +{ + class IError + { + public: + IError() = default; + virtual ~IError() = default; + + virtual bool Check( std::string const& line ) const = 0; + }; + using IErrorPtr = std::shared_ptr<IError>; +} + + diff --git a/src/checker/errors/types/isettings_error.hpp b/src/checker/errors/types/isettings_error.hpp new file mode 100644 index 0000000..05f68e3 --- /dev/null +++ b/src/checker/errors/types/isettings_error.hpp @@ -0,0 +1,22 @@ +// +// Created by claiff on 18.09.22. +// + +#pragma once + +#include <memory> + +#include "management/general.hpp" + +namespace smtp::checker::errors::types +{ + class IErrorSettings + { + public: + IErrorSettings() = default; + virtual ~IErrorSettings() = default; + + virtual bool Check( manage::SettingsFileDataType const& line ) const = 0; + }; + using IErrorSettingsPtr = std::shared_ptr<IErrorSettings>; +}
\ No newline at end of file diff --git a/src/checker/registrator_mails.cpp b/src/checker/registrator_mails.cpp new file mode 100644 index 0000000..7e844c0 --- /dev/null +++ b/src/checker/registrator_mails.cpp @@ -0,0 +1,22 @@ +#include "registrator_mails.hpp" + +namespace smtp::checker +{ + void RegistratorMails::Add(errors::types::IErrorPtr const& error ) + { + mErrors.push_back( error ); + } + + bool RegistratorMails::Check( std::string const& line ) const + { + for( const auto& error : mErrors ) + { + if( !error->Check( line ) ) + { + return false; + } + } + return true; + } + +} // namespace smtp::checker diff --git a/src/checker/registrator_mails.hpp b/src/checker/registrator_mails.hpp new file mode 100644 index 0000000..86eb41a --- /dev/null +++ b/src/checker/registrator_mails.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "errors/types/imails_error.hpp" +#include <list> + +namespace smtp::checker +{ + class RegistratorMails + { + public: + RegistratorMails() = default; + ~RegistratorMails() = default; + + void Add( errors::types::IErrorPtr const &error ); + bool Check( std::string const& line ) const; + private: + std::list<errors::types::IErrorPtr> mErrors; + }; +} // namespace smtp::checker diff --git a/src/checker/registrator_settings.hpp b/src/checker/registrator_settings.hpp new file mode 100644 index 0000000..fbd12f5 --- /dev/null +++ b/src/checker/registrator_settings.hpp @@ -0,0 +1,35 @@ +#pragma once + +#include "errors/types/isettings_error.hpp" +#include <list> + +namespace smtp::checker +{ + class RegistratorSettings + { + public: + RegistratorSettings() = default; + ~RegistratorSettings() = default; + + void Add( errors::types::IErrorSettingsPtr const& error ) + { + mErrors.push_back( error ); + } + + template<typename T> + bool Check( T const& line ) const + { + for( const auto& error: mErrors ) + { + if( !error->Check( line )) + { + return false; + } + } + return true; + } + + private: + std::list < errors::types::IErrorSettingsPtr > mErrors; + }; +} diff --git a/src/converter/file.hpp b/src/converter/file.hpp index 64ef152..daa35fd 100644 --- a/src/converter/file.hpp +++ b/src/converter/file.hpp @@ -3,7 +3,7 @@ #include <unordered_map> #include <string> -#include "managment/general.hpp" +#include "management/general.hpp" namespace smtp::converter { diff --git a/src/converter/full.hpp b/src/converter/full.hpp index 7025324..dac7499 100644 --- a/src/converter/full.hpp +++ b/src/converter/full.hpp @@ -3,7 +3,7 @@ #include <unordered_map> #include <string> -#include "managment/general.hpp" +#include "management/general.hpp" namespace smtp::converter { @@ -13,7 +13,7 @@ namespace smtp::converter Full() = default; ~Full() = default; - manage::SettingsFields Convert( std::unordered_map<std::string, std::string> const& from ) const; + manage::SettingsFields Convert( manage::SettingsFileDataType const& from ) const; std::unordered_map<std::string, std::string> Convert( manage::SettingsFields const& from ) const; private: diff --git a/src/converter/settings.hpp b/src/converter/settings.hpp index d25a550..5278b16 100644 --- a/src/converter/settings.hpp +++ b/src/converter/settings.hpp @@ -3,7 +3,7 @@ #include <unordered_map> #include <string> -#include "managment/general.hpp" +#include "management/general.hpp" namespace smtp::converter { diff --git a/src/converter/string.hpp b/src/converter/string.hpp index f1752ad..555e04b 100644 --- a/src/converter/string.hpp +++ b/src/converter/string.hpp @@ -3,7 +3,7 @@ #include <unordered_map> #include <string> -#include "managment/general.hpp" +#include "management/general.hpp" namespace smtp::converter { diff --git a/src/file/mail.cpp b/src/file/mail.cpp index 5452136..2b1ff14 100644 --- a/src/file/mail.cpp +++ b/src/file/mail.cpp @@ -1,12 +1,13 @@ #include <fstream> #include "mail.hpp" -#include "managment/logger.hpp" +#include "management/logger.hpp" 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..148aa11 100644 --- a/src/file/mail.hpp +++ b/src/file/mail.hpp @@ -3,22 +3,22 @@ #include <string> #include <optional> -#include "managment/general.hpp" +#include "management/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..710b67f 100644 --- a/src/file/settings.cpp +++ b/src/file/settings.cpp @@ -1,16 +1,23 @@ #include <fstream> #include "settings.hpp" -#include "managment/logger.hpp" +#include "management/logger.hpp" namespace smtp::file { - Settings::Settings( std::string const& path_file) + // + //Constructors + // + Settings::Settings( std::string const& path_file, checker::RegistratorSettings const& registrator_errors ) : mPathFile( path_file ) + , mRegistratorErrors( registrator_errors ) { } + // + //Public methods + // manage::SettingsFields Settings::Read() const { auto parsed_store = GetParsedStore(); @@ -20,10 +27,13 @@ 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 ); } - ParsedStoreType Settings::GetParsedStore() const + // + //Private methods + // + manage::SettingsFileDataType Settings::GetParsedStore() const { std::ifstream settings_file{ mPathFile, std::fstream::in }; if ( !settings_file.is_open() ) @@ -31,19 +41,26 @@ namespace smtp::file manage::Logger::LogError( "Unable to open file to read " + mPathFile ); return {}; } - std::string line{}; - ParsedStoreType 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(); - return result; + settings_file.close(); + return mRegistratorErrors.Check(result) ? result : manage::SettingsFileDataType{}; } - bool Settings::SetParsedData( ParsedStoreType 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 fb77b1e..0882ac3 100644 --- a/src/file/settings.hpp +++ b/src/file/settings.hpp @@ -5,26 +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 { - using ParsedStoreType = std::unordered_map<std::string, std::string>; - - class Settings - { - public: - explicit Settings( std::string const& path_file ); - ~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; - std::string BuildParam( std::pair<std::string, std::string> const& data ) const; - - std::string mPathFile; - }; + + + 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::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; + manage::SettingsFileDataType GetDataFromFile( std::ifstream& settings_file ) const; + }; } diff --git a/src/main.cpp b/src/main.cpp index b58bb69..cc92f3f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,8 @@ #include <sdbusplus/asio/connection.hpp> #include "service/smtp.hpp" -#include "managment/builder/mail.hpp" -#include "managment/builder/settings.hpp" +#include "management/builder/mail.hpp" +#include "management/builder/settings.hpp" int main() { diff --git a/src/management/builder/mail.cpp b/src/management/builder/mail.cpp new file mode 100644 index 0000000..f72803f --- /dev/null +++ b/src/management/builder/mail.cpp @@ -0,0 +1,23 @@ +#include "mail.hpp" +#include "file/mail.hpp" + +namespace smtp::manage::builder +{ + smtp::manage::Mail Mail::Build() const + { + static const std::string PATH = {"/var/lib/smtp/mails.txt"}; + + auto registrator = BuildErrorRegistrator(); + file::Mail file_manipulator{PATH, registrator}; + return smtp::manage::Mail{file_manipulator}; + } + + checker::RegistratorMails Mail::BuildErrorRegistrator() const + { + checker::RegistratorMails result; + + + return result; + } + +} diff --git a/src/managment/builder/mail.hpp b/src/management/builder/mail.hpp index ae53202..e735fd6 100644 --- a/src/managment/builder/mail.hpp +++ b/src/management/builder/mail.hpp @@ -1,6 +1,7 @@ #pragma once -#include "managment/mail.hpp" +#include "management/mail.hpp" +#include "checker/registrator_mails.hpp" namespace smtp::manage::builder { @@ -11,6 +12,7 @@ namespace smtp::manage::builder ~Mail() = default; smtp::manage::Mail Build() const; + checker::RegistratorMails BuildErrorRegistrator() const; }; } diff --git a/src/management/builder/settings.cpp b/src/management/builder/settings.cpp new file mode 100644 index 0000000..baa45da --- /dev/null +++ b/src/management/builder/settings.cpp @@ -0,0 +1,29 @@ +#include "settings.hpp" +#include "checker/errors/settings/port_number.hpp" + +namespace smtp::manage::builder +{ + + smtp::manage::Settings Settings::Build() const + { + auto file_manipulator = GetFileSettings(); + return smtp::manage::Settings{file_manipulator}; + } + + file::Settings Settings::GetFileSettings() const + { + static const std::string PATH = "/var/lib/smtp/settings.txt"; + + auto registrator = BuildErrorRegistrator(); + return file::Settings{PATH, registrator}; + } + + checker::RegistratorSettings Settings::BuildErrorRegistrator() const + { + checker::RegistratorSettings result; + + result.Add( std::make_shared < checker::errors::settings::PortNumber >()); + return result; + } + +} diff --git a/src/managment/builder/settings.hpp b/src/management/builder/settings.hpp index 1089b06..64f9384 100644 --- a/src/managment/builder/settings.hpp +++ b/src/management/builder/settings.hpp @@ -1,7 +1,8 @@ #pragma once -#include "managment/settings.hpp" +#include "management/settings.hpp" #include "file/settings.hpp" +#include "checker/registrator_settings.hpp" namespace smtp::manage::builder { @@ -14,6 +15,7 @@ namespace smtp::manage::builder smtp::manage::Settings Build() const; private: file::Settings GetFileSettings() const; + checker::RegistratorSettings BuildErrorRegistrator() const; }; } diff --git a/src/managment/general.hpp b/src/management/general.hpp index ed1a789..ed1a789 100644 --- a/src/managment/general.hpp +++ b/src/management/general.hpp diff --git a/src/managment/logger.cpp b/src/management/logger.cpp index 0c55394..0c55394 100644 --- a/src/managment/logger.cpp +++ b/src/management/logger.cpp diff --git a/src/managment/logger.hpp b/src/management/logger.hpp index 315e17e..315e17e 100644 --- a/src/managment/logger.hpp +++ b/src/management/logger.hpp diff --git a/src/management/mail.cpp b/src/management/mail.cpp new file mode 100644 index 0000000..5c3c276 --- /dev/null +++ b/src/management/mail.cpp @@ -0,0 +1,71 @@ +#include <algorithm> + +#include "mail.hpp" + +namespace smtp::manage +{ + Mail::Mail( file::Mail const& file_reader ) + : mFileReader( file_reader ) + { + mMails = mFileReader.Read(); + } + + MailsSet Mail::GetMailToSend() const + { + return mMails; + } + + bool Mail::AddMailsToSend( MailsSet const& mails_to_add ) + { + auto merged_mails = GetMergedMails( mails_to_add ); + + auto result = mFileReader.Write( merged_mails ); + if( result ) + { + mMails = merged_mails; + } + return result; + } + + bool Mail::DeleteMailToSend( MailsSet const& mail_to_send ) + { + auto mails_to_delete = GetItersectionMails( mail_to_send ); + auto result_set_after_delete = GetMailsAfterDelete( mails_to_delete ); + auto result_of_delete = mFileReader.Write( result_set_after_delete ); + if( result_of_delete ) + { + mMails = result_set_after_delete; + } + return result_of_delete; + } + + MailsSet Mail::GetMergedMails( MailsSet const& mails_to_add ) + { + auto result = mails_to_add; + result.merge( mMails ); + return result; + } + + MailsSet Mail::GetItersectionMails( MailsSet const& mail_to_send ) + { + MailsSet result; + + auto sorted_mail_to_send = mail_to_send; + sorted_mail_to_send.sort(); + mMails.sort(); + std::set_intersection( mMails.cbegin(), mMails.cend(), + sorted_mail_to_send.cbegin(), sorted_mail_to_send.cend(), + std::back_inserter( result )); + return result; + } + + MailsSet Mail::GetMailsAfterDelete( MailsSet const& result_set_after_delete ) + { + auto result = mMails; + for( const auto& element_to_delete: result_set_after_delete ) + { + result.remove( element_to_delete ); + } + return result; + } +} diff --git a/src/management/mail.hpp b/src/management/mail.hpp new file mode 100644 index 0000000..12b79ab --- /dev/null +++ b/src/management/mail.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include <set> +#include <string> + +#include "file/mail.hpp" +#include "checker/registrator_mails.hpp" + +namespace smtp::manage +{ + class Mail + { + public: + explicit Mail( file::Mail const& file_reader ); + ~Mail() = default; + + MailsSet GetMailToSend() const; + bool AddMailsToSend( MailsSet const& mails ); + bool DeleteMailToSend( MailsSet const& mail_to_send ); + private: + MailsSet GetMergedMails( MailsSet const& mails_to_add ); + MailsSet GetItersectionMails( MailsSet const& mail_to_send ); + MailsSet GetMailsAfterDelete( MailsSet const& result_set_after_delete ); + + MailsSet mMails; + file::Mail mFileReader; + + }; + +} diff --git a/src/managment/settings.cpp b/src/management/settings.cpp index 65888aa..65888aa 100644 --- a/src/managment/settings.cpp +++ b/src/management/settings.cpp diff --git a/src/managment/settings.hpp b/src/management/settings.hpp index 3c0a15d..650f966 100644 --- a/src/managment/settings.hpp +++ b/src/management/settings.hpp @@ -3,7 +3,8 @@ #include <string> #include "file/settings.hpp" -#include "managment/general.hpp" +#include "management/general.hpp" + namespace smtp::manage { class Settings diff --git a/src/managment/builder/mail.cpp b/src/managment/builder/mail.cpp deleted file mode 100644 index da8dff5..0000000 --- a/src/managment/builder/mail.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "mail.hpp" -#include "file/mail.hpp" - -namespace smtp::manage::builder -{ - smtp::manage::Mail Mail::Build() const - { - static const std::string PATH = {"/var/lib/smtp/mails.txt"}; - - file::Mail file_manipulator{PATH}; - return smtp::manage::Mail{ file_manipulator }; - } - -} diff --git a/src/managment/builder/settings.cpp b/src/managment/builder/settings.cpp deleted file mode 100644 index cd08c57..0000000 --- a/src/managment/builder/settings.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "settings.hpp" - -namespace smtp::manage::builder -{ - - smtp::manage::Settings Settings::Build() const - { - auto file_manipulator = GetFileSettings(); - return smtp::manage::Settings{ file_manipulator }; - } - - file::Settings Settings::GetFileSettings() const - { - static const std::string PATH = {"/var/lib/smtp/settings.txt"}; - return file::Settings{PATH}; - } - -} diff --git a/src/managment/mail.cpp b/src/managment/mail.cpp deleted file mode 100644 index ccde362..0000000 --- a/src/managment/mail.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include <algorithm> - -#include "mail.hpp" - -namespace smtp::manage -{ - Mail::Mail( file::Mail const& file_reader ) - : mFileReader( file_reader ) - { - mMails = mFileReader.Read(); - } - - MailsSet Mail::GetMailToSend() const - { - return mMails; - } - - bool Mail::AddMailsToSend( MailsSet const& mails_to_add ) - { - auto merged_mails = GetMergedMails( mails_to_add ); - - auto result = mFileReader.Write( merged_mails ); - if( result ) - { - mMails = merged_mails; - } - return result; - } - - bool Mail::DeleteMailToSend( MailsSet const& mail_to_send ) - { - auto mails_to_delete = GetItersectionMails( mail_to_send ); - auto result_set_after_delete = GetMailsAfterDelete( mails_to_delete ); - auto result_of_delete = mFileReader.Write( result_set_after_delete ); - if(result_of_delete) - { - mMails = result_set_after_delete; - } - return result_of_delete; - } - - MailsSet Mail::GetMergedMails( MailsSet const& mails_to_add ) - { - auto result = mails_to_add; - result.merge( mMails ); - return result; - } - - MailsSet Mail::GetItersectionMails( MailsSet const& mail_to_send ) - { - MailsSet result; - - auto sorted_mail_to_send = mail_to_send; - sorted_mail_to_send.sort(); - mMails.sort(); - std::set_intersection( mMails.cbegin(), mMails.cend(), - sorted_mail_to_send.cbegin(), sorted_mail_to_send.cend(), - std::back_inserter( result )); - return result; - } - - MailsSet Mail::GetMailsAfterDelete( MailsSet const& result_set_after_delete) - { - auto result = mMails; - for(const auto& element_to_delete : result_set_after_delete) - { - result.remove( element_to_delete ); - } - return result; - } - -} diff --git a/src/managment/mail.hpp b/src/managment/mail.hpp deleted file mode 100644 index d6dfeef..0000000 --- a/src/managment/mail.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once - -#include <set> -#include <string> - -#include "file/mail.hpp" - -namespace smtp::manage -{ - - class Mail - { - public: - explicit Mail( file::Mail const& file_reader ); - ~Mail() = default; - - MailsSet GetMailToSend() const; - bool AddMailsToSend( MailsSet const& mails ); - bool DeleteMailToSend(MailsSet const&mail_to_send ); - private: - MailsSet GetMergedMails( MailsSet const& mails_to_add ); - MailsSet GetItersectionMails( MailsSet const& mail_to_send ); - MailsSet GetMailsAfterDelete( MailsSet const& result_set_after_delete); - MailsSet mMails; - file::Mail mFileReader; - }; - -} diff --git a/src/message/builder/cc.hpp b/src/message/builder/cc.hpp index dbca4b7..9eee0a7 100644 --- a/src/message/builder/cc.hpp +++ b/src/message/builder/cc.hpp @@ -2,7 +2,7 @@ #include "types/idecorator.hpp" #include "types/imessage_builder.hpp" -#include "managment/general.hpp" +#include "management/general.hpp" namespace smtp::message::builder { diff --git a/src/message/builder/mail_to.hpp b/src/message/builder/mail_to.hpp index 1c21684..626f210 100644 --- a/src/message/builder/mail_to.hpp +++ b/src/message/builder/mail_to.hpp @@ -2,7 +2,7 @@ #include "types/idecorator.hpp" #include "types/imessage_builder.hpp" -#include "managment/general.hpp" +#include "management/general.hpp" namespace smtp::message::builder { diff --git a/src/message/sender.cpp b/src/message/sender.cpp index 5b3a421..c617a16 100644 --- a/src/message/sender.cpp +++ b/src/message/sender.cpp @@ -7,7 +7,7 @@ #include "builder/subject.hpp" #include "builder/text.hpp" #include "builder/from.hpp" -#include "managment/logger.hpp" +#include "management/logger.hpp" namespace smtp::message { diff --git a/src/message/sender.hpp b/src/message/sender.hpp index ca2c3ff..ba5953e 100644 --- a/src/message/sender.hpp +++ b/src/message/sender.hpp @@ -5,8 +5,8 @@ #include <curl/curl.h> -#include "managment/settings.hpp" -#include "managment/mail.hpp" +#include "management/settings.hpp" +#include "management/mail.hpp" namespace smtp::message { struct WriteThis @@ -23,7 +23,6 @@ namespace smtp::message bool Send( std::string const& mail_from, std::string const& subject, std::string const& text ); private: void UpdateMailText( std::string const& mail_from, std::string const& subject, std::string const& textt ) const; - void InitSenders( std::string const& mail_from, std::list<std::string> const& mail_to ); void FillRecipients(CURL* curl, curl_slist* recipients ); std::string GetHostPortData() const; static size_t ReadCallBack( void *ptr, size_t size, size_t nmemb, void *userp ); diff --git a/src/service/smtp.hpp b/src/service/smtp.hpp index a52c9c0..1c71acc 100644 --- a/src/service/smtp.hpp +++ b/src/service/smtp.hpp @@ -5,8 +5,8 @@ #include <sdbusplus/asio/connection.hpp> #include <sdbusplus/asio/object_server.hpp> -#include "managment/mail.hpp" -#include "managment/settings.hpp" +#include "management/mail.hpp" +#include "management/settings.hpp" namespace smtp::service { |