diff options
Diffstat (limited to 'zenserver/admin/admin.cpp')
| -rw-r--r-- | zenserver/admin/admin.cpp | 56 |
1 files changed, 52 insertions, 4 deletions
diff --git a/zenserver/admin/admin.cpp b/zenserver/admin/admin.cpp index 07211cbeb..0d7a57e36 100644 --- a/zenserver/admin/admin.cpp +++ b/zenserver/admin/admin.cpp @@ -5,15 +5,13 @@ #include "admin.h" #include <zencore/compactbinarybuilder.h> +#include <zencore/string.h> namespace zen { HttpAdminService::HttpAdminService() { - m_Router.RegisterRoute( - "hello", - [this](HttpRouterRequest& Req) { Req.ServerRequest().WriteResponse(HttpResponseCode::OK); }, - HttpVerb::kGet); + using namespace std::literals; m_Router.RegisterRoute( "health", @@ -23,6 +21,56 @@ HttpAdminService::HttpAdminService() Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Obj.Save()); }, 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()); + }, + HttpVerb::kPost); } HttpAdminService::~HttpAdminService() |