aboutsummaryrefslogtreecommitdiff
path: root/zenserver/admin/admin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/admin/admin.cpp')
-rw-r--r--zenserver/admin/admin.cpp43
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());