diff options
Diffstat (limited to 'src/management')
-rw-r--r-- | src/management/builder/mail.cpp | 16 | ||||
-rw-r--r-- | src/management/builder/mail.hpp | 4 | ||||
-rw-r--r-- | src/management/builder/settings.cpp | 15 | ||||
-rw-r--r-- | src/management/builder/settings.hpp | 4 | ||||
-rw-r--r-- | src/management/general.hpp | 21 | ||||
-rw-r--r-- | src/management/mail.cpp | 16 | ||||
-rw-r--r-- | src/management/mail.hpp | 16 | ||||
-rw-r--r-- | src/management/settings.cpp | 3 | ||||
-rw-r--r-- | src/management/settings.hpp | 6 |
9 files changed, 52 insertions, 49 deletions
diff --git a/src/management/builder/mail.cpp b/src/management/builder/mail.cpp index a96fd33..7a8aa42 100644 --- a/src/management/builder/mail.cpp +++ b/src/management/builder/mail.cpp @@ -7,6 +7,8 @@ #include "file/mail/checker_decorator.hpp" #include "file/mail/sort_decorator.hpp" +#include "file/errors/not_create.hpp" + namespace smtp::manage::builder { smtp::manage::Mail Mail::Build() const @@ -18,12 +20,20 @@ namespace smtp::manage::builder { static const std::string PATH = {"/var/lib/smtp/mails.txt"}; auto result = std::make_shared<file::mail::SortDecorator>() ; - result->Apply(std::make_shared<file::mail::CheckerDecorator>( BuildErrorRegistrator() )) - .Apply(std::make_shared<file::mail::FileDecorator>( PATH )); + result->Apply(std::make_shared<file::mail::CheckerDecorator>( BuildSettingsErrorRegistrator() )) + .Apply(std::make_shared<file::mail::FileDecorator>( PATH, BuildFileErrorRegistrator(PATH) )); + return result; + } + + file::errors::Registrator Mail::BuildFileErrorRegistrator( std::string const& path ) const + { + file::errors::Registrator result; + auto not_created_file_error = std::make_shared<file::errors::NotCreatedFile>(path); + result.Add(not_created_file_error, ENOENT); return result; } - checker::RegistratorMails Mail::BuildErrorRegistrator() const + checker::RegistratorMails Mail::BuildSettingsErrorRegistrator() const { checker::RegistratorMails result; result.Add( std::make_shared < checker::errors::mail::Empty >()); diff --git a/src/management/builder/mail.hpp b/src/management/builder/mail.hpp index 7cbb29d..ecd6de4 100644 --- a/src/management/builder/mail.hpp +++ b/src/management/builder/mail.hpp @@ -3,6 +3,7 @@ #include "management/mail.hpp" #include "checker/registrator_mails.hpp" #include "file/mail/types/ifile_manipulator.hpp" +#include "file/errors/registrator.hpp" namespace smtp::manage::builder { @@ -15,7 +16,8 @@ namespace smtp::manage::builder smtp::manage::Mail Build() const; private: file::mail::types::IFileManipulatorPtr BuildFileManipulator() const; - checker::RegistratorMails BuildErrorRegistrator() const; + file::errors::Registrator BuildFileErrorRegistrator( std::string const& path ) const; + checker::RegistratorMails BuildSettingsErrorRegistrator() const; }; } diff --git a/src/management/builder/settings.cpp b/src/management/builder/settings.cpp index b682c49..bf345e7 100644 --- a/src/management/builder/settings.cpp +++ b/src/management/builder/settings.cpp @@ -4,6 +4,7 @@ #include "file/settings/settings.hpp" #include "file/settings/checker_decorator.hpp" #include "file/settings/file_decorator.hpp" +#include "file/errors/not_create.hpp" namespace smtp::manage::builder { @@ -17,12 +18,20 @@ namespace smtp::manage::builder { static const std::string PATH = "/var/lib/smtp/settings.txt"; - auto result = std::make_shared<file::settings::CheckerDecorator>(BuildErrorRegistrator()); - result->Apply(std::make_shared<file::settings::FileDecorator>(PATH)); + auto result = std::make_shared<file::settings::CheckerDecorator>(BuildSettingsErrorRegistrator()); + result->Apply(std::make_shared<file::settings::FileDecorator>(PATH, BuildFileErrorRegistrator(PATH))); return result; } - checker::RegistratorSettings Settings::BuildErrorRegistrator() const + file::errors::Registrator Settings::BuildFileErrorRegistrator( std::string const& path ) const + { + file::errors::Registrator result; + auto not_created_file_error = std::make_shared<file::errors::NotCreatedFile>(path); + result.Add(not_created_file_error, ENOENT); + return result; + } + + checker::RegistratorSettings Settings::BuildSettingsErrorRegistrator() const { checker::RegistratorSettings result; diff --git a/src/management/builder/settings.hpp b/src/management/builder/settings.hpp index b7215e2..2cfbd5d 100644 --- a/src/management/builder/settings.hpp +++ b/src/management/builder/settings.hpp @@ -3,6 +3,7 @@ #include "management/settings.hpp" #include "checker/registrator_settings.hpp" #include "file/settings/types/ifile_manipulator.hpp" +#include "file/errors/registrator.hpp" namespace smtp::manage::builder { @@ -15,7 +16,8 @@ namespace smtp::manage::builder smtp::manage::Settings Build() const; private: file::settings::types::IFileManipulatorPtr BuildFileManipulator()const; - checker::RegistratorSettings BuildErrorRegistrator() const; + file::errors::Registrator BuildFileErrorRegistrator( std::string const& path ) const; + checker::RegistratorSettings BuildSettingsErrorRegistrator() const; }; } diff --git a/src/management/general.hpp b/src/management/general.hpp deleted file mode 100644 index ed1a789..0000000 --- a/src/management/general.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once - -#include <unordered_map> -#include <string> -#include <list> - -namespace smtp::manage -{ - using SettingsFileDataType = std::unordered_map<std::string, std::string>; - using MailsSet = std::list<std::string>; - - struct SettingsFields - { - bool is_need_auth; - bool is_need_ssl; - std::string username; - std::string password; - std::string host; - std::string port; - }; -} diff --git a/src/management/mail.cpp b/src/management/mail.cpp index d569826..eefb666 100644 --- a/src/management/mail.cpp +++ b/src/management/mail.cpp @@ -19,19 +19,19 @@ namespace smtp::manage //Public methods // - MailsSet Mail::GetMailToSend() const + general::MailsSet Mail::GetMailToSend() const { return mMails; } - bool Mail::AddMailsToSend( MailsSet const& mails_to_add ) + bool Mail::AddMailsToSend( general::MailsSet const& mails_to_add ) { auto merged_mails = GetMergedMails( mails_to_add ); return RefreshMails( merged_mails ); } - bool Mail::DeleteMailToSend( MailsSet const& mail_to_delete ) + bool Mail::DeleteMailToSend( general::MailsSet const& mail_to_delete ) { auto mails_to_delete = GetItersectionMails( mail_to_delete ); @@ -44,7 +44,7 @@ namespace smtp::manage //Private methods // - MailsSet Mail::GetMergedMails( MailsSet const& mails_to_add ) + general::MailsSet Mail::GetMergedMails( general::MailsSet const& mails_to_add ) { auto result = mails_to_add; result.merge( mMails ); @@ -55,9 +55,9 @@ namespace smtp::manage return result; } - MailsSet Mail::GetItersectionMails( MailsSet const& mail_to_delete ) const + general::MailsSet Mail::GetItersectionMails( general::MailsSet const& mail_to_delete ) const { - MailsSet result; + general::MailsSet result; auto sorted_mail_to_send = mail_to_delete; sorted_mail_to_send.sort(); @@ -67,7 +67,7 @@ namespace smtp::manage return result; } - MailsSet Mail::GetMailsAfterDelete( MailsSet const& mails_to_delete ) + general::MailsSet Mail::GetMailsAfterDelete( general::MailsSet const& mails_to_delete ) { auto result = mMails; for( const auto& mail : mails_to_delete ) @@ -77,7 +77,7 @@ namespace smtp::manage return result; } - bool Mail::RefreshMails( MailsSet const& new_mails ) + bool Mail::RefreshMails( general::MailsSet const& new_mails ) { auto result = mFileReader->Write( new_mails ); mMails = mFileReader->Read(); diff --git a/src/management/mail.hpp b/src/management/mail.hpp index 813a5b4..94919e6 100644 --- a/src/management/mail.hpp +++ b/src/management/mail.hpp @@ -14,17 +14,17 @@ namespace smtp::manage explicit Mail( file::mail::types::IFileManipulatorPtr const& file_reader ); ~Mail() = default; - MailsSet GetMailToSend() const; - bool AddMailsToSend( MailsSet const& mails ); - bool DeleteMailToSend( MailsSet const& mail_to_delete ); + general::MailsSet GetMailToSend() const; + bool AddMailsToSend( general::MailsSet const& mails ); + bool DeleteMailToSend( general::MailsSet const& mail_to_delete ); private: - MailsSet GetMergedMails( MailsSet const& mails_to_add ); - MailsSet GetItersectionMails( MailsSet const& mail_to_delete ) const; - MailsSet GetMailsAfterDelete( MailsSet const& mails_to_delete ); - bool RefreshMails( MailsSet const& new_mails ); + general::MailsSet GetMergedMails( general::MailsSet const& mails_to_add ); + general::MailsSet GetItersectionMails( general::MailsSet const& mail_to_delete ) const; + general::MailsSet GetMailsAfterDelete( general::MailsSet const& mails_to_delete ); + bool RefreshMails( general::MailsSet const& new_mails ); file::mail::types::IFileManipulatorPtr mFileReader; - MailsSet mMails; + general::MailsSet mMails; }; } diff --git a/src/management/settings.cpp b/src/management/settings.cpp index 20c38cb..02392e0 100644 --- a/src/management/settings.cpp +++ b/src/management/settings.cpp @@ -9,10 +9,11 @@ namespace smtp::manage { } - bool Settings::SetSettings( manage::SettingsFields const& settings_fields ) + bool Settings::SetSettings( general::SettingsFields const& settings_fields ) { auto result = mFileReader.Write( settings_fields ); mSettingsFields = mFileReader.Read(); + return result; } diff --git a/src/management/settings.hpp b/src/management/settings.hpp index eb2aafb..2dbe1b6 100644 --- a/src/management/settings.hpp +++ b/src/management/settings.hpp @@ -3,7 +3,7 @@ #include <string> #include "file/settings/settings.hpp" -#include "management/general.hpp" +#include "general/struct.hpp" namespace smtp::manage { @@ -13,7 +13,7 @@ namespace smtp::manage explicit Settings( file::settings::Settings const& file_reader ); ~Settings() = default; - bool SetSettings( manage::SettingsFields const& settings_fields ); + bool SetSettings( general::SettingsFields const& settings_fields ); std::string GetSettings(); bool IsNeedAuth() const noexcept; @@ -25,6 +25,6 @@ namespace smtp::manage std::string GetPort() const; private: file::settings::Settings mFileReader; - manage::SettingsFields mSettingsFields; + general::SettingsFields mSettingsFields; }; } |