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 <QList>
#include <QMetaObject> #include <QMetaObject>
#include "base/global.h"
#include "apierror.h" #include "apierror.h"
void APIResult::clear() void APIResult::clear()
@@ -75,14 +76,17 @@ const DataMap &APIController::data() const
void APIController::requireParams(const QList<QString> &requiredParams) const void APIController::requireParams(const QList<QString> &requiredParams) const
{ {
const bool hasAllRequiredParams = std::all_of(requiredParams.cbegin(), requiredParams.cend() QStringList missingParams;
, [this](const QString &requiredParam) missingParams.reserve(requiredParams.size());
{
return params().contains(requiredParam);
});
if (!hasAllRequiredParams) for (const QString &requiredParam : requiredParams)
throw APIError(APIErrorType::BadParams); {
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) void APIController::setResult(const QString &result)