WebAPI: send names of missing required params

Small quality of life improvement.

PR #23192.
This commit is contained in:
Thomas (Tom) Piccirello
2025-09-05 05:46:47 -07:00
committed by GitHub
parent 56277d5e2b
commit 93a72673d4

View File

@@ -35,6 +35,7 @@
#include <QList>
#include <QMetaObject>
#include "base/global.h"
#include "apierror.h"
void APIResult::clear()
@@ -75,14 +76,17 @@ const DataMap &APIController::data() const
void APIController::requireParams(const QList<QString> &requiredParams) const
{
const bool hasAllRequiredParams = std::all_of(requiredParams.cbegin(), requiredParams.cend()
, [this](const QString &requiredParam)
{
return params().contains(requiredParam);
});
QStringList missingParams;
missingParams.reserve(requiredParams.size());
if (!hasAllRequiredParams)
throw APIError(APIErrorType::BadParams);
for (const QString &requiredParam : requiredParams)
{
if (!params().contains(requiredParam))
missingParams.append(requiredParam);
}
if (!missingParams.isEmpty())
throw APIError(APIErrorType::BadParams, tr("Missing required parameters: %1").arg(missingParams.join(u", "_s)));
}
void APIController::setResult(const QString &result)