Files
moloapp/example/app/App.cpp
T

54 lines
1.5 KiB
C++
Raw Normal View History

#include "App.hpp"
namespace molo::example::app {
std::shared_ptr<fw::Application> build_application(Services& services) {
seed_services(services);
load_templates(services);
load_embedded(services);
auto app = std::make_shared<fw::Application>();
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