#include "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 { return smtp::manage::Mail{BuildFileManipulator()}; } file::mail::types::IFileManipulatorPtr Mail::BuildFileManipulator() const { static const std::string PATH = {"/var/lib/smtp/mails.txt"}; auto result = std::make_shared() ; result->Apply(std::make_shared( BuildErrorRegistrator() )) .Apply(std::make_shared( PATH )); return result; } checker::RegistratorMails Mail::BuildErrorRegistrator() const { checker::RegistratorMails result; result.Add( std::make_shared < checker::errors::mail::Empty >()); result.Add( std::make_shared < checker::errors::mail::AtSign >()); return result; } }