update service: extract addRelatedItem
Deduplicate the logic to add a related item to a fw inventory item.
Tested: next patch in chain
Change-Id: I94455e165900011955de9196db49c7c89807ea3d
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 28dd77c..8a778f7 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -1195,29 +1195,32 @@
"/xyz/openbmc_project/software");
}
+inline void addRelatedItem(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
+ const boost::urls::url& url)
+{
+ nlohmann::json& relatedItem = asyncResp->res.jsonValue["RelatedItem"];
+ nlohmann::json::object_t item;
+ item["@odata.id"] = url;
+ relatedItem.emplace_back(std::move(item));
+ asyncResp->res.jsonValue["RelatedItem@odata.count"] = relatedItem.size();
+}
+
/* Fill related item links (i.e. bmc, bios) in for inventory */
inline void getRelatedItems(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string& purpose)
{
if (purpose == sw_util::bmcPurpose)
{
- nlohmann::json& relatedItem = asyncResp->res.jsonValue["RelatedItem"];
- nlohmann::json::object_t item;
- item["@odata.id"] = boost::urls::format(
- "/redfish/v1/Managers/{}", BMCWEB_REDFISH_MANAGER_URI_NAME);
- relatedItem.emplace_back(std::move(item));
- asyncResp->res.jsonValue["RelatedItem@odata.count"] =
- relatedItem.size();
+ auto url = boost::urls::format("/redfish/v1/Managers/{}",
+ BMCWEB_REDFISH_MANAGER_URI_NAME);
+ addRelatedItem(asyncResp, url);
}
else if (purpose == sw_util::biosPurpose)
{
- nlohmann::json& relatedItem = asyncResp->res.jsonValue["RelatedItem"];
- nlohmann::json::object_t item;
- item["@odata.id"] = std::format("/redfish/v1/Systems/{}/Bios",
- BMCWEB_REDFISH_SYSTEM_URI_NAME);
- relatedItem.emplace_back(std::move(item));
- asyncResp->res.jsonValue["RelatedItem@odata.count"] =
- relatedItem.size();
+ auto url = boost::urls::format("/redfish/v1/Systems/{}/Bios",
+ BMCWEB_REDFISH_SYSTEM_URI_NAME);
+
+ addRelatedItem(asyncResp, url);
}
else
{