diff --git a/3rdparty/o2/src/o1requestor.h b/3rdparty/o2/src/o1requestor.h new file mode 100644 index 0000000000000000000000000000000000000000..7a4c283d81b9c9a2e7fa7a0529fe93676d8d02f7 --- /dev/null +++ b/3rdparty/o2/src/o1requestor.h @@ -0,0 +1,61 @@ +#ifndef O1REQUESTOR_H +#define O1REQUESTOR_H + +#include +#include +#include + +#include "o1.h" + +class QNetworkAccessManager; +class QNetworkReply; +class O1; + +/// Makes authenticated requests using OAuth 1.0. +class O1Requestor: public QObject { + Q_OBJECT + +public: + explicit O1Requestor(QNetworkAccessManager *manager, O1 *authenticator, QObject *parent = 0); + +public slots: + /// Make a GET request. + /// @param req Network request. + /// @param signingParameters Extra (non-OAuth) parameters participating in signing. + /// @return Reply. + QNetworkReply *get(const QNetworkRequest &req, const QList &signingParameters); + + /// Make a POST request. + /// @param req Network request. + /// @param signingParameters Extra (non-OAuth) parameters participating in signing. + /// @param data Request payload. + /// @return Reply. + QNetworkReply *post(const QNetworkRequest &req, const QList &signingParameters, const QByteArray &data); + + /// Make a POST request. + /// @param req Network request. + /// @param signingParameters Extra (non-OAuth) parameters participating in signing. + /// @param multiPart HTTPMultiPart. + /// @return Reply. + QNetworkReply *post(const QNetworkRequest &req, const QList &signingParameters, QHttpMultiPart *multiPart); + + /// Make a PUT request. + /// @param req Network request. + /// @param signingParameters Extra (non-OAuth) parameters participating in signing. + /// @param data Request payload. + /// @return Reply. + QNetworkReply *put(const QNetworkRequest &req, const QList &signingParameters, const QByteArray &data); + +protected: + /// Return new request based on the original, with the "Authentication:" header added. + QNetworkRequest setup(const QNetworkRequest &request, const QList &signingParameters, QNetworkAccessManager::Operation operation); + + /// Augment reply with a timer. + QNetworkReply *addTimer(QNetworkReply *reply); + + QNetworkAccessManager *manager_; + O1 *authenticator_; +}; + + +#endif // O1REQUESTOR_H