XX CMake Package
Loading...
Searching...
No Matches
XXRestApiBlocking.h
Go to the documentation of this file.
1#ifndef XXRestApiBlockingH
2#define XXRestApiBlockingH
3
5#include "XXNetworkSettings.h"
6#include <QObject>
7
8#include <QJsonObject>
9#include <QNetworkAccessManager>
10#include <QNetworkReply>
11#include <QUrlQuery>
12
13#include "XXRestApiResult.h"
14
15namespace XX
16{
17 namespace AuthProvider
18 {
19 class Token;
20 };
21
22 namespace RestApi
23 {
26
27 class XXNETWORK_DECLSPEC Blocking : public QObject, public Network::Settings
28 {
29 Q_OBJECT
30
31 public:
32 Blocking(QObject* parent, const QString& baseUrl);
33
34 public:
35 virtual Result get(const QString& endpoint, const QUrlQuery& params = QUrlQuery()) const;
36 virtual ResultRaw getRaw(const QString& endpoint, const QUrlQuery& params = QUrlQuery()) const;
37 virtual Result post(const QString& endpoint, const QJsonObject& payload = QJsonObject(), const QUrlQuery& params = QUrlQuery()) const;
38 virtual Result put(const QString& endpoint, const QJsonObject& payload = QJsonObject(), const QUrlQuery& params = QUrlQuery()) const;
39
41 void setBaseUrl(const QString& url);
42 const QString& getBaseUrl() const;
43
44 protected:
45 using ReplyGeneratorFunction = std::function<QNetworkReply*(QNetworkRequest request)>;
46
47 protected:
49 QNetworkRequest createRequest(const QString& endpoint, const QUrlQuery& params) const;
50
51 protected:
52 QNetworkAccessManager* manager;
56 QString baseUrl;
57
58 private:
59 friend class Async;
60
61 private:
62 Result handleReply(QNetworkRequest request, ReplyGeneratorFunction replyGenerator) const;
63 ResultRaw handleReplyRaw(QNetworkRequest request, ReplyGeneratorFunction replyGenerator) const;
64 };
65 } // namespace RestApi
66} // namespace XX
67
68#endif // NOT XXRestApiBlockingH
#define XXNETWORK_DECLSPEC
Definition XXNetworkExportDef.h:11
Token-based authentication provider.
Definition XXAuthProviderToken.h:17
Network settings class.
Definition XXNetworkSettings.h:14
const QString & getBaseUrl() const
void setBaseUrl(const QString &url)
void addUnauthorizedStatusCode(int code)
void setAuthProvider(AuthProvider::Token *newProvider)
friend class Async
Definition XXRestApiBlocking.h:59
QNetworkRequest createRequest(const QString &endpoint, const QUrlQuery &params) const
QList< int > unauthorizedStatusCodes
Definition XXRestApiBlocking.h:54
virtual Result put(const QString &endpoint, const QJsonObject &payload=QJsonObject(), const QUrlQuery &params=QUrlQuery()) const
virtual ResultRaw getRaw(const QString &endpoint, const QUrlQuery &params=QUrlQuery()) const
Blocking(QObject *parent, const QString &baseUrl)
virtual Result get(const QString &endpoint, const QUrlQuery &params=QUrlQuery()) const
QList< int > successStatusCodes
Definition XXRestApiBlocking.h:53
AuthProvider::Token * provider
Definition XXRestApiBlocking.h:55
QNetworkAccessManager * manager
Definition XXRestApiBlocking.h:52
QString baseUrl
Definition XXRestApiBlocking.h:56
std::function< QNetworkReply *(QNetworkRequest request)> ReplyGeneratorFunction
Definition XXRestApiBlocking.h:45
virtual Result post(const QString &endpoint, const QJsonObject &payload=QJsonObject(), const QUrlQuery &params=QUrlQuery()) const
Definition XXAuthProviderToken.h:12
Definition XXRestApiAsync.h:10
Definition XXPopulatedAbstract.h:11
REST API with json content.
Definition XXRestApiResult.h:27
REST API results.
Definition XXRestApiResult.h:17