blob: 7857b8f295c4e4e4a39588a31bd22832201c445b [file] [log] [blame]
#include "tlbmc/redfish/routes/service_root.h"
#include "nlohmann/json.hpp"
#include "tlbmc/redfish/app.h"
#include "tlbmc/redfish/request.h"
#include "tlbmc/redfish/response.h"
namespace milotic_tlbmc::service_root {
namespace {
void HandleRedfish(const RedfishRequest& req, RedfishResponse& resp) {
resp.SetKeyInJsonBody("/v1"_json_pointer, "/redfish/v1");
}
void HandleRedfishV1(const RedfishRequest& req, RedfishResponse& resp) {
resp.SetKeyInJsonBody("/@odata.id", "/redfish/v1");
resp.SetKeyInJsonBody("/@odata.type", "#ServiceRoot.v1_14_0.ServiceRoot");
resp.SetKeyInJsonBody("/@odata.version", "4.0");
resp.SetKeyInJsonBody("/RedfishVersion", "1.14.0");
resp.SetKeyInJsonBody("/Name", "Root Service");
resp.SetKeyInJsonBody("/Chassis/@odata.id", "/redfish/v1/Chassis");
resp.SetKeyInJsonBody("/Id", "RootService");
resp.SetKeyInJsonBody("/Oem/tlbmc/TlBMCService", "/redfish/tlbmc");
}
} // namespace
void RegisterRoutes(RedfishApp& app) {
TLBMC_ROUTE(app, "/redfish/")
.methods(boost::beast::http::verb::get)(HandleRedfish);
TLBMC_ROUTE(app, "/redfish/v1/")
.methods(boost::beast::http::verb::get)(HandleRedfishV1);
}
} // namespace milotic_tlbmc::service_root