| 41 | } |
| 42 | |
| 43 | std::unique_ptr<HTTPRequestHandler> KeeperHTTPRequestHandlerFactory::createRequestHandler(const HTTPServerRequest & request) |
| 44 | { |
| 45 | LOG_TRACE(log, "HTTP Request for {}. {}", name, request.toStringForLogging()); |
| 46 | |
| 47 | for (auto & handler_factory : child_factories) |
| 48 | { |
| 49 | if (auto handler = handler_factory->createRequestHandler(request)) |
| 50 | return handler; |
| 51 | } |
| 52 | |
| 53 | if (request.getMethod() == Poco::Net::HTTPRequest::HTTP_GET || request.getMethod() == Poco::Net::HTTPRequest::HTTP_HEAD |
| 54 | || request.getMethod() == Poco::Net::HTTPRequest::HTTP_POST) |
| 55 | { |
| 56 | return std::make_unique<KeeperNotFoundHandler>(hints.getHints(request.getURI())); |
| 57 | } |
| 58 | |
| 59 | return nullptr; |
| 60 | } |
| 61 | |
| 62 | static void addDashboardHandlersToFactory( |
| 63 | KeeperHTTPRequestHandlerFactory & factory, std::shared_ptr<KeeperDispatcher> keeper_dispatcher) |
no test coverage detected