#ifndef REQUEST_H #define REQUEST_H #include #include #include #include #include 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 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 m_headers; QByteArray m_body; RequestType m_requestType = RequestType::Custom; QString m_accountId; }; #endif // REQUEST_H