mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 14:00:40 +02:00
82 lines
1.8 KiB
C++
82 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include <QString>
|
|
#include <QNetworkRequest>
|
|
#include <QDateTime>
|
|
#include <QNetworkReply>
|
|
|
|
namespace serversdk {
|
|
|
|
class Request : public QObject {
|
|
Q_OBJECT
|
|
friend class RequestManager;
|
|
friend class RequestTest;
|
|
public:
|
|
Request() = default;
|
|
~Request() override;
|
|
Request(QString type, QString url, QByteArray requestData = QByteArray());
|
|
virtual QNetworkRequest networkRequest() const;
|
|
|
|
// Data handling data
|
|
int status() const;
|
|
QNetworkReply *networkReply() const;
|
|
void setNetworkReply(QNetworkReply *networkReply);
|
|
QByteArray requestData() const;
|
|
void setRequestData(const QByteArray &requestData);
|
|
QByteArray responseData() const;
|
|
|
|
// Attributes
|
|
QString url() const;
|
|
void setUrl(const QString &url);
|
|
QString type() const;
|
|
void setType(const QString &type);
|
|
|
|
// Authorization
|
|
QString userName() const;
|
|
void setUserName(const QString &userName);
|
|
QString password() const;
|
|
void setPassword(const QString &password);
|
|
QString token() const;
|
|
void setToken(const QString &token);
|
|
|
|
// Authorization headers
|
|
QString basicAuthorization() const;
|
|
QString bearerAuthorization() const;
|
|
|
|
// Additional attributes
|
|
void logStartTime() { mStartTime = QDateTime::currentDateTime(); }
|
|
void logFinishTime() { mStartTime = QDateTime::currentDateTime(); }
|
|
|
|
private:
|
|
// Data handling
|
|
void appendResponseData(const QByteArray &array);
|
|
|
|
|
|
signals:
|
|
void finished();
|
|
|
|
private:
|
|
QString mType = "GET"; // POST, GET
|
|
QString mUrl;
|
|
|
|
// Authorization
|
|
QString mUserName;
|
|
QString mPassword;
|
|
QString mToken;
|
|
|
|
// Data
|
|
QNetworkReply *mNetworkReply = nullptr;
|
|
QByteArray mRequestData;
|
|
QByteArray mResponseData;
|
|
|
|
// Additional attributes
|
|
QDateTime mStartTime;
|
|
QDateTime mFinishTime;
|
|
|
|
|
|
};
|
|
|
|
|
|
} // core
|
|
|