63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
#ifndef REQUEST_H
|
|
#define REQUEST_H
|
|
|
|
#include <QObject>
|
|
#include <QUrl>
|
|
#include <QMap>
|
|
#include <QByteArray>
|
|
#include <QNetworkRequest>
|
|
|
|
enum class RequestType {
|
|
GmailApi,
|
|
GraphApi,
|
|
Imap,
|
|
Custom
|
|
};
|
|
|
|
class Request : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
enum class Method {
|
|
GET,
|
|
POST,
|
|
PUT,
|
|
DELETE,
|
|
PATCH
|
|
};
|
|
|
|
explicit Request(QObject *parent = nullptr);
|
|
Request(Method method, const QUrl &url, const QByteArray &body = QByteArray());
|
|
~Request() override = default;
|
|
|
|
void setMethod(Method method);
|
|
Method method() const;
|
|
|
|
void setUrl(const QUrl &url);
|
|
QUrl url() const;
|
|
|
|
void setHeader(const QString &key, const QString &value);
|
|
QMap<QString, QString> headers() const;
|
|
|
|
void setBody(const QByteArray &body);
|
|
QByteArray body() const;
|
|
|
|
void setType(RequestType type);
|
|
RequestType type() const;
|
|
|
|
void setAccountId(const QString &accountId);
|
|
QString accountId() const;
|
|
|
|
QNetworkRequest toNetworkRequest() const;
|
|
|
|
private:
|
|
Method m_method = Method::GET;
|
|
QUrl m_url;
|
|
QMap<QString, QString> m_headers;
|
|
QByteArray m_body;
|
|
RequestType m_requestType = RequestType::Custom;
|
|
QString m_accountId;
|
|
};
|
|
|
|
#endif // REQUEST_H
|