From 9b5df92078fbf6f7e7b8a78d432cac140d670751 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Wed, 6 Nov 2019 13:31:06 +0800 Subject: [PATCH] Give better name to parameter checking function This function will throw exceptions if the required parameters do not exsit hence a stronger word is more appropriate here. Also change the function parameter type to QVector. We don't need the duplicate entries checking as currently we only use 3 fields at max and can be easily checked by hand. So drop back to QVector which can be constructed more efficiently. --- src/webui/api/apicontroller.cpp | 2 +- src/webui/api/apicontroller.h | 4 +- src/webui/api/appcontroller.cpp | 4 +- src/webui/api/rsscontroller.cpp | 16 +++--- src/webui/api/searchcontroller.cpp | 14 ++--- src/webui/api/torrentscontroller.cpp | 80 ++++++++++++++-------------- src/webui/api/transfercontroller.cpp | 6 +-- 7 files changed, 63 insertions(+), 63 deletions(-) diff --git a/src/webui/api/apicontroller.cpp b/src/webui/api/apicontroller.cpp index 140ade32d..03d2a1ea0 100644 --- a/src/webui/api/apicontroller.cpp +++ b/src/webui/api/apicontroller.cpp @@ -69,7 +69,7 @@ const DataMap &APIController::data() const return m_data; } -void APIController::checkParams(const QSet &requiredParams) const +void APIController::requireParams(const QVector &requiredParams) const { const bool hasAllRequiredParams = std::all_of(requiredParams.cbegin(), requiredParams.cend() , [this](const QString &requiredParam) diff --git a/src/webui/api/apicontroller.h b/src/webui/api/apicontroller.h index 0d2044efb..ad4c192a9 100644 --- a/src/webui/api/apicontroller.h +++ b/src/webui/api/apicontroller.h @@ -30,8 +30,8 @@ #include #include -#include #include +#include class QString; @@ -60,7 +60,7 @@ public: protected: const StringMap ¶ms() const; const DataMap &data() const; - void checkParams(const QSet &requiredParams) const; + void requireParams(const QVector &requiredParams) const; void setResult(const QString &result); void setResult(const QJsonArray &result); diff --git a/src/webui/api/appcontroller.cpp b/src/webui/api/appcontroller.cpp index 3cfd724be..a12c8519e 100644 --- a/src/webui/api/appcontroller.cpp +++ b/src/webui/api/appcontroller.cpp @@ -316,7 +316,7 @@ void AppController::preferencesAction() void AppController::setPreferencesAction() { - checkParams({"json"}); + requireParams({"json"}); Preferences *const pref = Preferences::instance(); auto session = BitTorrent::Session::instance(); @@ -762,7 +762,7 @@ void AppController::networkInterfaceListAction() void AppController::networkInterfaceAddressListAction() { - checkParams({"iface"}); + requireParams({"iface"}); const QString ifaceName = params().value("iface"); QJsonArray addressList; diff --git a/src/webui/api/rsscontroller.cpp b/src/webui/api/rsscontroller.cpp index bbc88e729..c2f951622 100644 --- a/src/webui/api/rsscontroller.cpp +++ b/src/webui/api/rsscontroller.cpp @@ -43,7 +43,7 @@ using Utils::String::parseBool; void RSSController::addFolderAction() { - checkParams({"path"}); + requireParams({"path"}); const QString path = params()["path"].trimmed(); QString error; @@ -53,7 +53,7 @@ void RSSController::addFolderAction() void RSSController::addFeedAction() { - checkParams({"url", "path"}); + requireParams({"url", "path"}); const QString url = params()["url"].trimmed(); const QString path = params()["path"].trimmed(); @@ -64,7 +64,7 @@ void RSSController::addFeedAction() void RSSController::removeItemAction() { - checkParams({"path"}); + requireParams({"path"}); const QString path = params()["path"].trimmed(); QString error; @@ -74,7 +74,7 @@ void RSSController::removeItemAction() void RSSController::moveItemAction() { - checkParams({"itemPath", "destPath"}); + requireParams({"itemPath", "destPath"}); const QString itemPath = params()["itemPath"].trimmed(); const QString destPath = params()["destPath"].trimmed(); @@ -93,7 +93,7 @@ void RSSController::itemsAction() void RSSController::refreshItemAction() { - checkParams({"itemPath"}); + requireParams({"itemPath"}); const QString itemPath {params()["itemPath"]}; RSS::Item *item = RSS::Session::instance()->itemByPath(itemPath); @@ -103,7 +103,7 @@ void RSSController::refreshItemAction() void RSSController::setRuleAction() { - checkParams({"ruleName", "ruleDef"}); + requireParams({"ruleName", "ruleDef"}); const QString ruleName {params()["ruleName"].trimmed()}; const QByteArray ruleDef {params()["ruleDef"].trimmed().toUtf8()}; @@ -114,7 +114,7 @@ void RSSController::setRuleAction() void RSSController::renameRuleAction() { - checkParams({"ruleName", "newRuleName"}); + requireParams({"ruleName", "newRuleName"}); const QString ruleName {params()["ruleName"].trimmed()}; const QString newRuleName {params()["newRuleName"].trimmed()}; @@ -124,7 +124,7 @@ void RSSController::renameRuleAction() void RSSController::removeRuleAction() { - checkParams({"ruleName"}); + requireParams({"ruleName"}); const QString ruleName {params()["ruleName"].trimmed()}; RSS::AutoDownloader::instance()->removeRule(ruleName); diff --git a/src/webui/api/searchcontroller.cpp b/src/webui/api/searchcontroller.cpp index 1523cece5..8b9b125df 100644 --- a/src/webui/api/searchcontroller.cpp +++ b/src/webui/api/searchcontroller.cpp @@ -63,7 +63,7 @@ namespace void SearchController::startAction() { - checkParams({"pattern", "category", "plugins"}); + requireParams({"pattern", "category", "plugins"}); if (!Utils::ForeignApps::pythonInfo().isValid()) throw APIError(APIErrorType::Conflict, "Python must be installed to use the Search Engine."); @@ -109,7 +109,7 @@ void SearchController::startAction() void SearchController::stopAction() { - checkParams({"id"}); + requireParams({"id"}); const int id = params()["id"].toInt(); ISession *const session = sessionManager()->session(); @@ -151,7 +151,7 @@ void SearchController::statusAction() void SearchController::resultsAction() { - checkParams({"id"}); + requireParams({"id"}); const int id = params()["id"].toInt(); int limit = params()["limit"].toInt(); @@ -184,7 +184,7 @@ void SearchController::resultsAction() void SearchController::deleteAction() { - checkParams({"id"}); + requireParams({"id"}); const int id = params()["id"].toInt(); ISession *const session = sessionManager()->session(); @@ -222,7 +222,7 @@ void SearchController::pluginsAction() void SearchController::installPluginAction() { - checkParams({"sources"}); + requireParams({"sources"}); const QStringList sources = params()["sources"].split('|'); for (const QString &source : sources) @@ -231,7 +231,7 @@ void SearchController::installPluginAction() void SearchController::uninstallPluginAction() { - checkParams({"names"}); + requireParams({"names"}); const QStringList names = params()["names"].split('|'); for (const QString &name : names) @@ -240,7 +240,7 @@ void SearchController::uninstallPluginAction() void SearchController::enablePluginAction() { - checkParams({"names", "enable"}); + requireParams({"names", "enable"}); const QStringList names = params()["names"].split('|'); const bool enable = Utils::String::parseBool(params()["enable"].trimmed(), false); diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index 62c4196a2..cd7535344 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -317,7 +317,7 @@ void TorrentsController::infoAction() // - "comment": Torrent comment void TorrentsController::propertiesAction() { - checkParams({"hash"}); + requireParams({"hash"}); const QString hash {params()["hash"]}; QJsonObject dataDict; @@ -385,7 +385,7 @@ void TorrentsController::propertiesAction() // - "msg": Tracker message (last) void TorrentsController::trackersAction() { - checkParams({"hash"}); + requireParams({"hash"}); const QString hash {params()["hash"]}; const BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); @@ -419,7 +419,7 @@ void TorrentsController::trackersAction() // - "url": Web seed URL void TorrentsController::webseedsAction() { - checkParams({"hash"}); + requireParams({"hash"}); const QString hash {params()["hash"]}; QJsonArray webSeedList; @@ -448,7 +448,7 @@ void TorrentsController::webseedsAction() // and the second number is the ending piece index (inclusive) void TorrentsController::filesAction() { - checkParams({"hash"}); + requireParams({"hash"}); const QString hash {params()["hash"]}; QJsonArray fileList; @@ -491,7 +491,7 @@ void TorrentsController::filesAction() // The return value is a JSON-formatted array of strings (hex strings). void TorrentsController::pieceHashesAction() { - checkParams({"hash"}); + requireParams({"hash"}); const QString hash {params()["hash"]}; QJsonArray pieceHashes; @@ -513,7 +513,7 @@ void TorrentsController::pieceHashesAction() // 2: piece already downloaded void TorrentsController::pieceStatesAction() { - checkParams({"hash"}); + requireParams({"hash"}); const QString hash {params()["hash"]}; QJsonArray pieceStates; @@ -606,7 +606,7 @@ void TorrentsController::addAction() void TorrentsController::addTrackersAction() { - checkParams({"hash", "urls"}); + requireParams({"hash", "urls"}); const QString hash = params()["hash"]; @@ -625,7 +625,7 @@ void TorrentsController::addTrackersAction() void TorrentsController::editTrackerAction() { - checkParams({"hash", "origUrl", "newUrl"}); + requireParams({"hash", "origUrl", "newUrl"}); const QString hash = params()["hash"]; const QString origUrl = params()["origUrl"]; @@ -666,7 +666,7 @@ void TorrentsController::editTrackerAction() void TorrentsController::removeTrackersAction() { - checkParams({"hash", "urls"}); + requireParams({"hash", "urls"}); const QString hash = params()["hash"]; const QStringList urls = params()["urls"].split('|'); @@ -694,7 +694,7 @@ void TorrentsController::removeTrackersAction() void TorrentsController::addPeersAction() { - checkParams({"hashes", "peers"}); + requireParams({"hashes", "peers"}); const QStringList hashes = params()["hashes"].split('|'); const QStringList peers = params()["peers"].split('|'); @@ -730,7 +730,7 @@ void TorrentsController::addPeersAction() void TorrentsController::pauseAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes = params()["hashes"].split('|'); applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->pause(); }); @@ -738,7 +738,7 @@ void TorrentsController::pauseAction() void TorrentsController::resumeAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes = params()["hashes"].split('|'); applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->resume(); }); @@ -746,7 +746,7 @@ void TorrentsController::resumeAction() void TorrentsController::filePrioAction() { - checkParams({"hash", "id", "priority"}); + requireParams({"hash", "id", "priority"}); const QString hash = params()["hash"]; bool ok = false; @@ -785,7 +785,7 @@ void TorrentsController::filePrioAction() void TorrentsController::uploadLimitAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes {params()["hashes"].split('|')}; QJsonObject map; @@ -802,7 +802,7 @@ void TorrentsController::uploadLimitAction() void TorrentsController::downloadLimitAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes {params()["hashes"].split('|')}; QJsonObject map; @@ -819,7 +819,7 @@ void TorrentsController::downloadLimitAction() void TorrentsController::setUploadLimitAction() { - checkParams({"hashes", "limit"}); + requireParams({"hashes", "limit"}); qlonglong limit = params()["limit"].toLongLong(); if (limit == 0) @@ -831,7 +831,7 @@ void TorrentsController::setUploadLimitAction() void TorrentsController::setDownloadLimitAction() { - checkParams({"hashes", "limit"}); + requireParams({"hashes", "limit"}); qlonglong limit = params()["limit"].toLongLong(); if (limit == 0) @@ -843,7 +843,7 @@ void TorrentsController::setDownloadLimitAction() void TorrentsController::setShareLimitsAction() { - checkParams({"hashes", "ratioLimit", "seedingTimeLimit"}); + requireParams({"hashes", "ratioLimit", "seedingTimeLimit"}); const qreal ratioLimit = params()["ratioLimit"].toDouble(); const qlonglong seedingTimeLimit = params()["seedingTimeLimit"].toLongLong(); @@ -858,7 +858,7 @@ void TorrentsController::setShareLimitsAction() void TorrentsController::toggleSequentialDownloadAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes {params()["hashes"].split('|')}; applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->toggleSequentialDownload(); }); @@ -866,7 +866,7 @@ void TorrentsController::toggleSequentialDownloadAction() void TorrentsController::toggleFirstLastPiecePrioAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes {params()["hashes"].split('|')}; applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->toggleFirstLastPiecePriority(); }); @@ -874,7 +874,7 @@ void TorrentsController::toggleFirstLastPiecePrioAction() void TorrentsController::setSuperSeedingAction() { - checkParams({"hashes", "value"}); + requireParams({"hashes", "value"}); const bool value {parseBool(params()["value"], false)}; const QStringList hashes {params()["hashes"].split('|')}; @@ -883,7 +883,7 @@ void TorrentsController::setSuperSeedingAction() void TorrentsController::setForceStartAction() { - checkParams({"hashes", "value"}); + requireParams({"hashes", "value"}); const bool value {parseBool(params()["value"], false)}; const QStringList hashes {params()["hashes"].split('|')}; @@ -892,7 +892,7 @@ void TorrentsController::setForceStartAction() void TorrentsController::deleteAction() { - checkParams({"hashes", "deleteFiles"}); + requireParams({"hashes", "deleteFiles"}); const QStringList hashes {params()["hashes"].split('|')}; const DeleteOption deleteOption = parseBool(params()["deleteFiles"], false) @@ -905,7 +905,7 @@ void TorrentsController::deleteAction() void TorrentsController::increasePrioAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); if (!BitTorrent::Session::instance()->isQueueingSystemEnabled()) throw APIError(APIErrorType::Conflict, tr("Torrent queueing must be enabled")); @@ -916,7 +916,7 @@ void TorrentsController::increasePrioAction() void TorrentsController::decreasePrioAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); if (!BitTorrent::Session::instance()->isQueueingSystemEnabled()) throw APIError(APIErrorType::Conflict, tr("Torrent queueing must be enabled")); @@ -927,7 +927,7 @@ void TorrentsController::decreasePrioAction() void TorrentsController::topPrioAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); if (!BitTorrent::Session::instance()->isQueueingSystemEnabled()) throw APIError(APIErrorType::Conflict, tr("Torrent queueing must be enabled")); @@ -938,7 +938,7 @@ void TorrentsController::topPrioAction() void TorrentsController::bottomPrioAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); if (!BitTorrent::Session::instance()->isQueueingSystemEnabled()) throw APIError(APIErrorType::Conflict, tr("Torrent queueing must be enabled")); @@ -949,7 +949,7 @@ void TorrentsController::bottomPrioAction() void TorrentsController::setLocationAction() { - checkParams({"hashes", "location"}); + requireParams({"hashes", "location"}); const QStringList hashes {params()["hashes"].split('|')}; const QString newLocation {params()["location"].trimmed()}; @@ -975,7 +975,7 @@ void TorrentsController::setLocationAction() void TorrentsController::renameAction() { - checkParams({"hash", "name"}); + requireParams({"hash", "name"}); const QString hash = params()["hash"]; QString name = params()["name"].trimmed(); @@ -993,7 +993,7 @@ void TorrentsController::renameAction() void TorrentsController::setAutoManagementAction() { - checkParams({"hashes", "enable"}); + requireParams({"hashes", "enable"}); const QStringList hashes {params()["hashes"].split('|')}; const bool isEnabled {parseBool(params()["enable"], false)}; @@ -1006,7 +1006,7 @@ void TorrentsController::setAutoManagementAction() void TorrentsController::recheckAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes {params()["hashes"].split('|')}; applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->forceRecheck(); }); @@ -1014,7 +1014,7 @@ void TorrentsController::recheckAction() void TorrentsController::reannounceAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes {params()["hashes"].split('|')}; applyToTorrents(hashes, [](BitTorrent::TorrentHandle *const torrent) { torrent->forceReannounce(); }); @@ -1022,7 +1022,7 @@ void TorrentsController::reannounceAction() void TorrentsController::setCategoryAction() { - checkParams({"hashes", "category"}); + requireParams({"hashes", "category"}); const QStringList hashes {params()["hashes"].split('|')}; const QString category {params()["category"].trimmed()}; @@ -1036,7 +1036,7 @@ void TorrentsController::setCategoryAction() void TorrentsController::createCategoryAction() { - checkParams({"category"}); + requireParams({"category"}); const QString category {params()["category"].trimmed()}; const QString savePath {params()["savePath"]}; @@ -1053,7 +1053,7 @@ void TorrentsController::createCategoryAction() void TorrentsController::editCategoryAction() { - checkParams({"category", "savePath"}); + requireParams({"category", "savePath"}); const QString category {params()["category"].trimmed()}; const QString savePath {params()["savePath"]}; @@ -1067,7 +1067,7 @@ void TorrentsController::editCategoryAction() void TorrentsController::removeCategoriesAction() { - checkParams({"categories"}); + requireParams({"categories"}); const QStringList categories {params()["categories"].split('\n')}; for (const QString &category : categories) @@ -1091,7 +1091,7 @@ void TorrentsController::categoriesAction() void TorrentsController::addTagsAction() { - checkParams({"hashes", "tags"}); + requireParams({"hashes", "tags"}); const QStringList hashes {params()["hashes"].split('|')}; const QStringList tags {params()["tags"].split(',', QString::SkipEmptyParts)}; @@ -1107,7 +1107,7 @@ void TorrentsController::addTagsAction() void TorrentsController::removeTagsAction() { - checkParams({"hashes"}); + requireParams({"hashes"}); const QStringList hashes {params()["hashes"].split('|')}; const QStringList tags {params()["tags"].split(',', QString::SkipEmptyParts)}; @@ -1130,7 +1130,7 @@ void TorrentsController::removeTagsAction() void TorrentsController::createTagsAction() { - checkParams({"tags"}); + requireParams({"tags"}); const QStringList tags {params()["tags"].split(',', QString::SkipEmptyParts)}; @@ -1140,7 +1140,7 @@ void TorrentsController::createTagsAction() void TorrentsController::deleteTagsAction() { - checkParams({"tags"}); + requireParams({"tags"}); const QStringList tags {params()["tags"].split(',', QString::SkipEmptyParts)}; for (const QString &tag : tags) diff --git a/src/webui/api/transfercontroller.cpp b/src/webui/api/transfercontroller.cpp index ea95f144a..1e70e8eed 100644 --- a/src/webui/api/transfercontroller.cpp +++ b/src/webui/api/transfercontroller.cpp @@ -90,7 +90,7 @@ void TransferController::downloadLimitAction() void TransferController::setUploadLimitAction() { - checkParams({"limit"}); + requireParams({"limit"}); qlonglong limit = params()["limit"].toLongLong(); if (limit == 0) limit = -1; @@ -99,7 +99,7 @@ void TransferController::setUploadLimitAction() void TransferController::setDownloadLimitAction() { - checkParams({"limit"}); + requireParams({"limit"}); qlonglong limit = params()["limit"].toLongLong(); if (limit == 0) limit = -1; @@ -119,7 +119,7 @@ void TransferController::speedLimitsModeAction() void TransferController::banPeersAction() { - checkParams({"peers"}); + requireParams({"peers"}); const QStringList peers = params()["peers"].split('|'); for (const QString &peer : peers) {