diff options
Diffstat (limited to 'zenserver/admin/admin.cpp')
| -rw-r--r-- | zenserver/admin/admin.cpp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/zenserver/admin/admin.cpp b/zenserver/admin/admin.cpp index 2dd9b110f..0d7a57e36 100644 --- a/zenserver/admin/admin.cpp +++ b/zenserver/admin/admin.cpp @@ -5,11 +5,14 @@ #include "admin.h" #include <zencore/compactbinarybuilder.h> +#include <zencore/string.h> namespace zen { HttpAdminService::HttpAdminService() { + using namespace std::literals; + m_Router.RegisterRoute( "health", [this](HttpRouterRequest& Req) { @@ -19,12 +22,50 @@ HttpAdminService::HttpAdminService() }, HttpVerb::kGet); + m_Router.RegisterRoute( + "gc", + [this](HttpRouterRequest& Req) { + CbObject Response; + if (m_GcHandler.Status) + { + Response = m_GcHandler.Status(); + } + else + { + CbObjectWriter Writer; + Writer << "Status"sv + << "Ok"sv; + Response = Writer.Save(); + } + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Response); + }, + HttpVerb::kGet); + + m_Router.RegisterRoute( + "gc", + [this](HttpRouterRequest& Req) { + CbObject Response; + if (m_GcHandler.Trigger) + { + Response = m_GcHandler.Trigger(); + } + else + { + CbObjectWriter Writer; + Writer << "Status"sv + << "Ok"sv; + Response = Writer.Save(); + } + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Response); + }, + HttpVerb::kPost); + // RPC endpoint m_Router.RegisterRoute( "", [this](HttpRouterRequest& Req) { CbObject Payload = Req.ServerRequest().ReadPayloadObject(); - + CbObjectWriter Obj; Obj.AddBool("ok", true); Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Obj.Save()); |