| #include "tlbmc/redfish/routes/tlbmc_root.h" |
| |
| #include <array> |
| #include <string> |
| |
| #include "absl/strings/str_cat.h" |
| #include "absl/strings/string_view.h" |
| #include "nlohmann/json.hpp" |
| #include "tlbmc/redfish/app.h" |
| #include "tlbmc/redfish/request.h" |
| #include "tlbmc/redfish/response.h" |
| |
| namespace milotic_tlbmc::tlbmc_root { |
| |
| namespace { |
| |
| constexpr std::array<const char*, 4> kResources = {"AllSensors", "AllChassis", |
| "Debug", "Metrics"}; |
| |
| void HandleRedfishV1(const RedfishRequest& req, RedfishResponse& resp) { |
| resp.SetKeyInJsonBody("/@odata.id", "/redfish/tlbmc"); |
| resp.SetKeyInJsonBody("/Name", "tlBMC Root Service"); |
| |
| for (const auto& resource : kResources) { |
| nlohmann::json::object_t resource_json; |
| resource_json["@odata.id"] = absl::StrCat("/redfish/tlbmc/", resource); |
| resp.SetKeyInJsonBody(absl::StrCat("/", resource), resource_json); |
| } |
| } |
| |
| } // namespace |
| |
| void RegisterRoutes(RedfishApp& app) { |
| TLBMC_ROUTE(app, "/redfish/tlbmc/") |
| .methods(boost::beast::http::verb::get)(HandleRedfishV1); |
| } |
| |
| } // namespace milotic_tlbmc::tlbmc_root |