#include "App.hpp" namespace molo::example::app { std::shared_ptr build_application(Services& services) { seed_services(services); load_templates(services); load_embedded(services); auto app = std::make_shared(); app->use(fw::MiddlewareSlot::Errors, fw::errors_middleware()); app->use(fw::MiddlewareSlot::Observability, fw::request_id_middleware()); app->use(fw::MiddlewareSlot::SessionAuth, [](fw::Request req, fw::Next next) -> fw::Response { fw::Response res = next(std::move(req)); res.headers.set("X-Frame-Options", "DENY"); res.headers.set("X-Content-Type-Options", "nosniff"); return res; }); fw::Router index; register_index(index, services); app->include_router("", index); fw::Router routing; register_routing_demo(routing, services); app->include_router("/routing", routing, "routing."); fw::Router data; register_data_demo(data, services); app->include_router("", data); fw::Router security; register_security_demo(security, services); app->include_router("", security); fw::Router formats; register_formats_demo(formats, services); app->include_router("", formats); fw::Router realtime; register_realtime_demo(realtime, services); app->include_router("", realtime); fw::Router ops; register_ops_demo(ops, services); app->include_router("", ops); register_chain_demo(app, services); return app; } } // namespace molo::example::app