diff options
author | claiff <claiff@mail.ru> | 2022-10-05 16:02:06 +0300 |
---|---|---|
committer | claiff <claiff@mail.ru> | 2022-10-05 16:02:06 +0300 |
commit | 3f1f70a3b945605c6abb7d23f46042b963db243a (patch) | |
tree | c7ae9c113d29aa3350eca04f27a933bd3b5f769c /src/management/builder | |
parent | 9ed43c1057eeec6a01b8fdfd4d2ee54f9df39670 (diff) | |
parent | 43e721305c866ad4b2c4c35d1133f169e41dd49b (diff) | |
download | obmc-sila-smtp-3f1f70a3b945605c6abb7d23f46042b963db243a.tar.xz |
Merge branch 'devtool' into refactor/3009refactor/3009
Diffstat (limited to 'src/management/builder')
-rw-r--r-- | src/management/builder/mail.cpp | 20 | ||||
-rw-r--r-- | src/management/builder/mail.hpp | 3 | ||||
-rw-r--r-- | src/management/builder/settings.cpp | 27 | ||||
-rw-r--r-- | src/management/builder/settings.hpp | 4 |
4 files changed, 34 insertions, 20 deletions
diff --git a/src/management/builder/mail.cpp b/src/management/builder/mail.cpp index a301f5b..a96fd33 100644 --- a/src/management/builder/mail.cpp +++ b/src/management/builder/mail.cpp @@ -1,19 +1,27 @@ #include "mail.hpp" -#include "file/mail.hpp" #include "checker/errors/mail/empty.hpp" #include "checker/errors/mail/at_sign.hpp" +#include "file/mail/file_decorator.hpp" +#include "file/mail/checker_decorator.hpp" +#include "file/mail/sort_decorator.hpp" + namespace smtp::manage::builder { smtp::manage::Mail Mail::Build() const { - static const std::string PATH = {"/var/lib/smtp/mails.txt"}; + return smtp::manage::Mail{BuildFileManipulator()}; + } - auto registrator = BuildErrorRegistrator(); - file::Mail file_manipulator{PATH, registrator}; - return smtp::manage::Mail{file_manipulator}; - } + file::mail::types::IFileManipulatorPtr Mail::BuildFileManipulator() const + { + 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 )); + return result; + } checker::RegistratorMails Mail::BuildErrorRegistrator() const { diff --git a/src/management/builder/mail.hpp b/src/management/builder/mail.hpp index e735fd6..7cbb29d 100644 --- a/src/management/builder/mail.hpp +++ b/src/management/builder/mail.hpp @@ -2,6 +2,7 @@ #include "management/mail.hpp" #include "checker/registrator_mails.hpp" +#include "file/mail/types/ifile_manipulator.hpp" namespace smtp::manage::builder { @@ -12,6 +13,8 @@ namespace smtp::manage::builder ~Mail() = default; smtp::manage::Mail Build() const; + private: + file::mail::types::IFileManipulatorPtr BuildFileManipulator() const; checker::RegistratorMails BuildErrorRegistrator() const; }; diff --git a/src/management/builder/settings.cpp b/src/management/builder/settings.cpp index 0b27bef..b682c49 100644 --- a/src/management/builder/settings.cpp +++ b/src/management/builder/settings.cpp @@ -1,23 +1,26 @@ #include "settings.hpp" #include "checker/errors/settings/port_number.hpp" #include "checker/errors/settings/server.hpp" +#include "file/settings/settings.hpp" +#include "file/settings/checker_decorator.hpp" +#include "file/settings/file_decorator.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}; - } + file::settings::Settings settings{ BuildFileManipulator() }; + return smtp::manage::Settings{settings}; + } + + file::settings::types::IFileManipulatorPtr Settings::BuildFileManipulator() const + { + 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)); + return result; + } checker::RegistratorSettings Settings::BuildErrorRegistrator() const { diff --git a/src/management/builder/settings.hpp b/src/management/builder/settings.hpp index 64f9384..b7215e2 100644 --- a/src/management/builder/settings.hpp +++ b/src/management/builder/settings.hpp @@ -1,8 +1,8 @@ #pragma once #include "management/settings.hpp" -#include "file/settings.hpp" #include "checker/registrator_settings.hpp" +#include "file/settings/types/ifile_manipulator.hpp" namespace smtp::manage::builder { @@ -14,7 +14,7 @@ namespace smtp::manage::builder smtp::manage::Settings Build() const; private: - file::Settings GetFileSettings() const; + file::settings::types::IFileManipulatorPtr BuildFileManipulator()const; checker::RegistratorSettings BuildErrorRegistrator() const; }; |