Filip Bucek fdfe31e064 fix: wrong finish time in request handling
* fixed signal warning
* suppressing SSL messages in tests
2020-02-18 13:49:36 +01:00

84 lines
1.9 KiB
C++

#pragma once
#include <QString>
#include <QNetworkRequest>
#include <QDateTime>
#include <QNetworkReply>
#include <memory>
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;
private:
// Additional attributes
void logStartTime() { mStartTime = QDateTime::currentDateTime(); }
void logFinishTime() { mFinishTime = QDateTime::currentDateTime(); }
// Data handling
void appendResponseData(const QByteArray &array);
signals:
void finished(std::shared_ptr<Request> request);
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
QDebug operator<<(QDebug dbg, serversdk::Request *request);