// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "admin.h" #include #include namespace zen { HttpAdminService::HttpAdminService() { using namespace std::literals; m_Router.RegisterRoute( "health", [this](HttpRouterRequest& Req) { CbObjectWriter Obj; Obj.AddBool("ok", true); 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() { } const char* HttpAdminService::BaseUri() const { return "/admin/"; } void HttpAdminService::HandleRequest(zen::HttpServerRequest& Request) { m_Router.HandleRequest(Request); } } // namespace zen