| 334 | |
| 335 | |
| 336 | void addCommonDefaultHandlersFactory(HTTPRequestHandlerFactoryMain & factory, IServer & server, const Poco::Util::AbstractConfiguration & config) |
| 337 | { |
| 338 | if (config.has("http_server_default_response")) |
| 339 | { |
| 340 | auto root_creator = [&server]() -> std::unique_ptr<StaticRequestHandler> |
| 341 | { |
| 342 | constexpr auto root_response_expression = "config://http_server_default_response"; |
| 343 | return std::make_unique<StaticRequestHandler>( |
| 344 | server, root_response_expression, parseHTTPResponseHeaders("text/html; charset=UTF-8")); |
| 345 | }; |
| 346 | auto root_handler = std::make_shared<HandlingRuleHTTPHandlerFactory<StaticRequestHandler>>(std::move(root_creator)); |
| 347 | root_handler->attachStrictPath("/"); |
| 348 | root_handler->allowGetAndHeadRequest(); |
| 349 | factory.addHandler(root_handler); |
| 350 | } |
| 351 | else |
| 352 | { |
| 353 | /// Use the default landing page / ping handler. |
| 354 | auto root_handler = std::make_shared<HandlingRuleHTTPHandlerFactory<IndexRequestHandler>>(server); |
| 355 | root_handler->attachStrictPath("/"); |
| 356 | root_handler->allowGetAndHeadRequest(); |
| 357 | factory.addHandler(root_handler); |
| 358 | } |
| 359 | |
| 360 | auto ping_handler = createPingHandlerFactory(server); |
| 361 | ping_handler->attachStrictPath("/ping"); |
| 362 | ping_handler->allowGetAndHeadRequest(); |
| 363 | factory.addPathToHints("/ping"); |
| 364 | factory.addHandler(ping_handler); |
| 365 | |
| 366 | auto replicas_status_handler = std::make_shared<HandlingRuleHTTPHandlerFactory<ReplicasStatusHandler>>(server); |
| 367 | replicas_status_handler->attachNonStrictPath("/replicas_status"); |
| 368 | replicas_status_handler->allowGetAndHeadRequest(); |
| 369 | factory.addPathToHints("/replicas_status"); |
| 370 | factory.addHandler(replicas_status_handler); |
| 371 | |
| 372 | auto play_handler = std::make_shared<HandlingRuleHTTPHandlerFactory<PlayWebUIRequestHandler>>(server); |
| 373 | play_handler->attachNonStrictPath("/play"); |
| 374 | play_handler->allowGetAndHeadRequest(); |
| 375 | factory.addPathToHints("/play"); |
| 376 | factory.addHandler(play_handler); |
| 377 | |
| 378 | auto dashboard_handler = std::make_shared<HandlingRuleHTTPHandlerFactory<DashboardWebUIRequestHandler>>(server); |
| 379 | dashboard_handler->attachNonStrictPath("/dashboard"); |
| 380 | dashboard_handler->allowGetAndHeadRequest(); |
| 381 | factory.addPathToHints("/dashboard"); |
| 382 | factory.addHandler(dashboard_handler); |
| 383 | |
| 384 | auto binary_handler = std::make_shared<HandlingRuleHTTPHandlerFactory<BinaryWebUIRequestHandler>>(server); |
| 385 | binary_handler->attachNonStrictPath("/binary"); |
| 386 | binary_handler->allowGetAndHeadRequest(); |
| 387 | factory.addPathToHints("/binary"); |
| 388 | factory.addHandler(binary_handler); |
| 389 | |
| 390 | auto merges_handler = std::make_shared<HandlingRuleHTTPHandlerFactory<MergesWebUIRequestHandler>>(server); |
| 391 | merges_handler->attachNonStrictPath("/merges"); |
| 392 | merges_handler->allowGetAndHeadRequest(); |
| 393 | factory.addPathToHints("/merges"); |
no test coverage detected