#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 { 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(BuildErrorRegistrator()); result->Apply(std::make_shared(PATH)); return result; } checker::RegistratorSettings Settings::BuildErrorRegistrator() const { checker::RegistratorSettings result; result.Add( std::make_shared < checker::errors::settings::PortNumber >()); result.Add( std::make_shared < checker::errors::settings::Server >()); return result; } }