#pragma once #include #include "./IController.h" namespace uad { template class Controller : public IController { public: using HTTPMethodsToExecutors = std::unordered_map>>; private: HTTPMethodsToExecutors executors_; public: Controller() = default; explicit Controller(HTTPMethodsToExecutors&& executors): executors_(std::move(executors)) {} std::optional>> FindExecutor( boost::beast::http::verb method ) override { if (!executors_.count(method)) return std::nullopt; return std::make_optional(executors_.at(method)); } }; }