Redo commands structure, simplify it and clean it up

This commit is contained in:
Lorow
2024-12-03 23:57:35 +01:00
parent f453db9476
commit e033f663ff
14 changed files with 212 additions and 194 deletions

View File

@@ -0,0 +1,32 @@
#include "mdns_commands.hpp"
std::optional<MDNSPayload> setMDNSCommand::parsePayload(std::string_view jsonPayload)
{
MDNSPayload payload;
cJSON *parsedJson = cJSON_Parse(jsonPayload.data());
if (parsedJson == nullptr)
return std::nullopt;
cJSON *hostnameObject = cJSON_GetObjectItem(parsedJson, "hostname");
if (hostnameObject == nullptr)
{
cJSON_Delete(parsedJson);
return std::nullopt;
}
payload.hostname = std::string(hostnameObject->valuestring);
cJSON_Delete(parsedJson);
return payload;
}
CommandResult setMDNSCommand::execute(std::string_view jsonPayload)
{
auto payload = parsePayload(jsonPayload);
if (!payload.has_value())
return CommandResult::getErrorResult("Invalid payload");
projectConfig->setMDNSConfig(payload.value().hostname, true);
return CommandResult::getSuccessResult("Config updated");
}