RestLink 2.2.0
Powerfull Rest Client for Qt
Loading...
Searching...
No Matches
api.h
1#ifndef RESTLINK_API_H
2#define RESTLINK_API_H
3
4#include <RestLink/global.h>
5#include <RestLink/apibase.h>
6
7#include <QtCore/qversionnumber.h>
8#include <QtCore/qurl.h>
9#include <QtCore/qlocale.h>
10
11namespace RestLink {
12
13class ApiPrivate;
14class RESTLINK_EXPORT Api : public ApiBase
15{
16 Q_OBJECT
17 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
18 Q_PROPERTY(QString version READ versionString WRITE setVersionString NOTIFY versionChanged)
19 Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
20 Q_PROPERTY(QLocale locale READ locale WRITE setLocale NOTIFY localeChanged)
21 Q_PROPERTY(QString bearerToken READ bearerToken WRITE setBearerToken NOTIFY bearerTokenChanged FINAL)
22 Q_PROPERTY(QString userAgent READ userAgent WRITE setUserAgent NOTIFY userAgentChanged)
23
24public:
25 explicit Api(QObject *parent = nullptr);
26 ~Api();
27
28 QString name() const;
29 Q_SLOT void setName(const QString &name);
30 Q_SIGNAL void nameChanged(const QString &name);
31
32 QVersionNumber version() const;
33 Q_SLOT void setVersion(const QVersionNumber &version);
34 Q_SIGNAL void versionChanged();
35
36 QUrl url() const override;
37 Q_SLOT void setUrl(const QUrl &url);
38 Q_SIGNAL void urlChanged(const QUrl &url);
39
40 QLocale locale() const override;
41 Q_SLOT void setLocale(const QLocale &locale);
42 Q_SIGNAL void localeChanged(const QLocale &locale);
43
44 QString bearerToken() const;
45 Q_SLOT void setBearerToken(const QString &token);
46 Q_SIGNAL void bearerTokenChanged(const QString &token);
47
48 QString userAgent() const override;
49 Q_SLOT void setUserAgent(const QString &agent);
50 Q_SIGNAL void userAgentChanged(const QString &agent);
51
52 Q_SLOT void configure(const QUrl &url);
53 bool configure(const QJsonObject &config);
54 Q_SIGNAL void configurationCompleted();
55 Q_SIGNAL void configurationFailed();
56
57 Response *send(AbstractRequestHandler::Method method, const Request &request, const Body &body) override;
58
59private:
60 inline QString versionString() const
61 { return version().toString(); }
62
63 inline void setVersionString(const QString &version)
64 { setVersion(QVersionNumber::fromString(version)); }
65
66 friend class ApiPrivate;
67};
68
69}
70
71#endif // RESTLINK_API_H