qBittorrent
APIController Class Reference

#include <apicontroller.h>

Inheritance diagram for APIController:
Collaboration diagram for APIController:

Public Member Functions

 APIController (ISessionManager *sessionManager, QObject *parent=nullptr)
 
QVariant run (const QString &action, const StringMap &params, const DataMap &data={})
 
ISessionManagersessionManager () const
 

Protected Member Functions

const StringMapparams () const
 
const DataMapdata () const
 
void requireParams (const QVector< QString > &requiredParams) const
 
void setResult (const QString &result)
 
void setResult (const QJsonArray &result)
 
void setResult (const QJsonObject &result)
 

Private Attributes

ISessionManagerm_sessionManager
 
StringMap m_params
 
DataMap m_data
 
QVariant m_result
 

Detailed Description

Definition at line 42 of file apicontroller.h.

Constructor & Destructor Documentation

◆ APIController()

APIController::APIController ( ISessionManager sessionManager,
QObject *  parent = nullptr 
)
explicit

Definition at line 40 of file apicontroller.cpp.

41  : QObject {parent}
43 {
44 }
ISessionManager * m_sessionManager
Definition: apicontroller.h:69
ISessionManager * sessionManager() const

Member Function Documentation

◆ data()

const DataMap & APIController::data ( ) const
protected

Definition at line 69 of file apicontroller.cpp.

70 {
71  return m_data;
72 }
DataMap m_data
Definition: apicontroller.h:71

References m_data.

Referenced by TorrentsController::addAction(), SyncController::maindataAction(), AppController::preferencesAction(), run(), and SyncController::torrentPeersAction().

Here is the caller graph for this function:

◆ params()

const StringMap & APIController::params ( ) const
protected

Definition at line 64 of file apicontroller.cpp.

65 {
66  return m_params;
67 }
StringMap m_params
Definition: apicontroller.h:70

References m_params.

Referenced by TorrentsController::addAction(), RSSController::addFeedAction(), RSSController::addFolderAction(), TorrentsController::addPeersAction(), TorrentsController::addTagsAction(), TorrentsController::addTrackersAction(), TransferController::banPeersAction(), TorrentsController::bottomPrioAction(), TorrentsController::createCategoryAction(), TorrentsController::createTagsAction(), TorrentsController::decreasePrioAction(), SearchController::deleteAction(), TorrentsController::deleteAction(), TorrentsController::deleteTagsAction(), TorrentsController::downloadLimitAction(), TorrentsController::editCategoryAction(), TorrentsController::editTrackerAction(), SearchController::enablePluginAction(), TorrentsController::filePrioAction(), TorrentsController::filesAction(), TorrentsController::increasePrioAction(), TorrentsController::infoAction(), SearchController::installPluginAction(), RSSController::itemsAction(), AuthController::loginAction(), LogController::mainAction(), SyncController::maindataAction(), RSSController::markAsReadAction(), RSSController::matchingArticlesAction(), RSSController::moveItemAction(), AppController::networkInterfaceAddressListAction(), TorrentsController::pauseAction(), LogController::peersAction(), TorrentsController::pieceHashesAction(), TorrentsController::pieceStatesAction(), AppController::preferencesAction(), TorrentsController::propertiesAction(), TorrentsController::reannounceAction(), TorrentsController::recheckAction(), RSSController::refreshItemAction(), TorrentsController::removeCategoriesAction(), RSSController::removeItemAction(), RSSController::removeRuleAction(), TorrentsController::removeTagsAction(), TorrentsController::removeTrackersAction(), TorrentsController::renameAction(), TorrentsController::renameFileAction(), TorrentsController::renameFolderAction(), RSSController::renameRuleAction(), SearchController::resultsAction(), TorrentsController::resumeAction(), run(), TorrentsController::setAutoManagementAction(), TorrentsController::setCategoryAction(), TorrentsController::setDownloadLimitAction(), TransferController::setDownloadLimitAction(), TorrentsController::setDownloadPathAction(), TorrentsController::setForceStartAction(), TorrentsController::setLocationAction(), AppController::setPreferencesAction(), RSSController::setRuleAction(), TorrentsController::setSavePathAction(), TorrentsController::setShareLimitsAction(), TorrentsController::setSuperSeedingAction(), TorrentsController::setUploadLimitAction(), TransferController::setUploadLimitAction(), SearchController::startAction(), SearchController::statusAction(), SearchController::stopAction(), TorrentsController::toggleFirstLastPiecePrioAction(), TorrentsController::toggleSequentialDownloadAction(), TorrentsController::topPrioAction(), SyncController::torrentPeersAction(), TorrentsController::trackersAction(), SearchController::uninstallPluginAction(), TorrentsController::uploadLimitAction(), and TorrentsController::webseedsAction().

◆ requireParams()

void APIController::requireParams ( const QVector< QString > &  requiredParams) const
protected

Definition at line 74 of file apicontroller.cpp.

75 {
76  const bool hasAllRequiredParams = std::all_of(requiredParams.cbegin(), requiredParams.cend()
77  , [this](const QString &requiredParam)
78  {
79  return params().contains(requiredParam);
80  });
81 
82  if (!hasAllRequiredParams)
84 }

References BadParams.

Referenced by RSSController::addFeedAction(), RSSController::addFolderAction(), TorrentsController::addPeersAction(), TorrentsController::addTagsAction(), TorrentsController::addTrackersAction(), TransferController::banPeersAction(), TorrentsController::bottomPrioAction(), TorrentsController::createCategoryAction(), TorrentsController::createTagsAction(), TorrentsController::decreasePrioAction(), SearchController::deleteAction(), TorrentsController::deleteAction(), TorrentsController::deleteTagsAction(), TorrentsController::downloadLimitAction(), TorrentsController::editCategoryAction(), TorrentsController::editTrackerAction(), SearchController::enablePluginAction(), TorrentsController::filePrioAction(), TorrentsController::filesAction(), TorrentsController::increasePrioAction(), SearchController::installPluginAction(), RSSController::markAsReadAction(), RSSController::matchingArticlesAction(), RSSController::moveItemAction(), AppController::networkInterfaceAddressListAction(), TorrentsController::pauseAction(), TorrentsController::pieceHashesAction(), TorrentsController::pieceStatesAction(), TorrentsController::propertiesAction(), TorrentsController::reannounceAction(), TorrentsController::recheckAction(), RSSController::refreshItemAction(), TorrentsController::removeCategoriesAction(), RSSController::removeItemAction(), RSSController::removeRuleAction(), TorrentsController::removeTagsAction(), TorrentsController::removeTrackersAction(), TorrentsController::renameAction(), TorrentsController::renameFileAction(), TorrentsController::renameFolderAction(), RSSController::renameRuleAction(), SearchController::resultsAction(), TorrentsController::resumeAction(), TorrentsController::setAutoManagementAction(), TorrentsController::setCategoryAction(), TorrentsController::setDownloadLimitAction(), TransferController::setDownloadLimitAction(), TorrentsController::setDownloadPathAction(), TorrentsController::setForceStartAction(), TorrentsController::setLocationAction(), AppController::setPreferencesAction(), RSSController::setRuleAction(), TorrentsController::setSavePathAction(), TorrentsController::setShareLimitsAction(), TorrentsController::setSuperSeedingAction(), TorrentsController::setUploadLimitAction(), TransferController::setUploadLimitAction(), SearchController::startAction(), SearchController::stopAction(), TorrentsController::toggleFirstLastPiecePrioAction(), TorrentsController::toggleSequentialDownloadAction(), TorrentsController::topPrioAction(), TorrentsController::trackersAction(), SearchController::uninstallPluginAction(), TorrentsController::uploadLimitAction(), and TorrentsController::webseedsAction().

◆ run()

QVariant APIController::run ( const QString &  action,
const StringMap params,
const DataMap data = {} 
)

Definition at line 46 of file apicontroller.cpp.

47 {
48  m_result.clear(); // clear result
49  m_params = params;
50  m_data = data;
51 
52  const QByteArray methodName = action.toLatin1() + "Action";
53  if (!QMetaObject::invokeMethod(this, methodName.constData()))
55 
56  return m_result;
57 }
const StringMap & params() const
QVariant m_result
Definition: apicontroller.h:72
const DataMap & data() const
action
Definition: tstool.py:143

References tstool::action, data(), m_data, m_params, m_result, and params().

Referenced by WebApplication::doProcessRequest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sessionManager()

◆ setResult() [1/3]

void APIController::setResult ( const QJsonArray &  result)
protected

Definition at line 91 of file apicontroller.cpp.

92 {
93  m_result = QJsonDocument(result);
94 }

References m_result.

◆ setResult() [2/3]

void APIController::setResult ( const QJsonObject &  result)
protected

Definition at line 96 of file apicontroller.cpp.

97 {
98  m_result = QJsonDocument(result);
99 }

References m_result.

◆ setResult() [3/3]

void APIController::setResult ( const QString &  result)
protected

Definition at line 86 of file apicontroller.cpp.

87 {
88  m_result = result;
89 }

References m_result.

Referenced by TorrentsController::addAction(), TorrentsController::addPeersAction(), AppController::buildInfoAction(), TorrentsController::categoriesAction(), AppController::defaultSavePathAction(), TorrentsController::downloadLimitAction(), TransferController::downloadLimitAction(), TorrentsController::filesAction(), TorrentsController::infoAction(), TransferController::infoAction(), RSSController::itemsAction(), AuthController::loginAction(), LogController::mainAction(), SyncController::maindataAction(), RSSController::matchingArticlesAction(), AppController::networkInterfaceAddressListAction(), AppController::networkInterfaceListAction(), LogController::peersAction(), TorrentsController::pieceHashesAction(), TorrentsController::pieceStatesAction(), SearchController::pluginsAction(), AppController::preferencesAction(), TorrentsController::propertiesAction(), SearchController::resultsAction(), RSSController::rulesAction(), TransferController::speedLimitsModeAction(), SearchController::startAction(), SearchController::statusAction(), TorrentsController::tagsAction(), SyncController::torrentPeersAction(), TorrentsController::trackersAction(), TorrentsController::uploadLimitAction(), TransferController::uploadLimitAction(), AppController::versionAction(), AppController::webapiVersionAction(), and TorrentsController::webseedsAction().

Here is the caller graph for this function:

Member Data Documentation

◆ m_data

DataMap APIController::m_data
private

Definition at line 71 of file apicontroller.h.

Referenced by data(), and run().

◆ m_params

StringMap APIController::m_params
private

Definition at line 70 of file apicontroller.h.

Referenced by params(), and run().

◆ m_result

QVariant APIController::m_result
private

Definition at line 72 of file apicontroller.h.

Referenced by run(), and setResult().

◆ m_sessionManager

ISessionManager* APIController::m_sessionManager
private

Definition at line 69 of file apicontroller.h.

Referenced by sessionManager().


The documentation for this class was generated from the following files: