summaryrefslogtreecommitdiff
path: root/src/management
diff options
context:
space:
mode:
Diffstat (limited to 'src/management')
-rw-r--r--src/management/builder/mail.cpp16
-rw-r--r--src/management/builder/mail.hpp4
-rw-r--r--src/management/builder/settings.cpp15
-rw-r--r--src/management/builder/settings.hpp4
-rw-r--r--src/management/general.hpp21
-rw-r--r--src/management/mail.cpp16
-rw-r--r--src/management/mail.hpp16
-rw-r--r--src/management/settings.cpp3
-rw-r--r--src/management/settings.hpp6
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;
};
}