#pragma once #include namespace uad { template class IExecutor { public: [[nodiscard]] virtual boost::beast::http::response operator ()( boost::beast::http::request>&& req ) = 0; virtual ~IExecutor() = default; }; // class IAuthorizable : public IExecutor // { // IExecutor& next_executor_; // public: // IAuthorizable(IExecutor& next_executor): next_executor_(next_executor) // { // // } // // boost::beast::http::response operator ()( // boost::beast::http::request>&& req // ) override // { // // Логика проверки авторизации // // передать управление следующему executorу - возврат req // // посмотреть chain of responsibility, composite // // выбрасывать исключение здесь // return next_executor_(req); // } // }; }