Separate handleInstanceCommand out

This commit is contained in:
LordGrey 2024-04-29 20:42:35 +02:00
parent 12ace5e418
commit c4b88a2e0e
2 changed files with 66 additions and 65 deletions

View File

@ -97,6 +97,7 @@ signals:
private:
void handleCommand(const JsonApiCommand& cmd, const QJsonObject &message);
void handleInstanceCommand(const JsonApiCommand& cmd, const QJsonObject &message);
///
/// @brief Handle the switches of Hyperion instances

View File

@ -236,15 +236,14 @@ void JsonAPI::handleMessage(const QString &messageString, const QString &httpAut
}
else
{
handleInstanceCommand(cmd, message);
}
}
void JsonAPI::handleInstanceCommand(const JsonApiCommand& cmd, const QJsonObject &message)
{
const QJsonValue instanceElement = message.value("instance");
QList<quint8> runningInstanceIdxs = _instanceManager->getRunningInstanceIdx();
QList<quint8> intanceIdxList;
QStringList errorDetails;
QJsonArray instances;
if (instanceElement.isDouble())
{
instances.append(instanceElement);
@ -253,11 +252,15 @@ void JsonAPI::handleMessage(const QString &messageString, const QString &httpAut
instances = instanceElement.toArray();
}
QList<quint8> runningInstanceIdxs = _instanceManager->getRunningInstanceIdx();
QList<quint8> instanceIdxList;
QStringList errorDetails;
if (instances.contains("all"))
{
for (const auto& instanceIdx : runningInstanceIdxs)
{
intanceIdxList.append(instanceIdx);
instanceIdxList.append(instanceIdx);
}
}
else
@ -267,7 +270,7 @@ void JsonAPI::handleMessage(const QString &messageString, const QString &httpAut
quint8 instanceIdx = static_cast<quint8>(instance.toInt());
if (instance.isDouble() && runningInstanceIdxs.contains(instanceIdx))
{
intanceIdxList.append(instanceIdx);
instanceIdxList.append(instanceIdx);
}
else
{
@ -276,15 +279,14 @@ void JsonAPI::handleMessage(const QString &messageString, const QString &httpAut
}
}
if (intanceIdxList.isEmpty() || !errorDetails.isEmpty() )
if (instanceIdxList.isEmpty() || !errorDetails.isEmpty() )
{
cmd.isInstanceCmd = InstanceCmd::No;
sendErrorReply("Invalid instance(s) given", errorDetails, cmd);
return;
}
quint8 currentInstanceIdx = getCurrentInstanceIndex();
if (intanceIdxList.size() > 1)
if (instanceIdxList.size() > 1)
{
if (cmd.isInstanceCmd != InstanceCmd::Multi)
{
@ -293,7 +295,7 @@ void JsonAPI::handleMessage(const QString &messageString, const QString &httpAut
}
}
for (const auto &instanceIdx : intanceIdxList)
for (const auto &instanceIdx : instanceIdxList)
{
if (setHyperionInstance(instanceIdx))
{
@ -302,8 +304,6 @@ void JsonAPI::handleMessage(const QString &messageString, const QString &httpAut
}
setHyperionInstance(currentInstanceIdx);
}
}
void JsonAPI::handleCommand(const JsonApiCommand& cmd, const QJsonObject &message)