mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 16:20:41 +02:00
added status() and networkReply() to Request
This commit is contained in:
parent
a7831cae9c
commit
a80552654b
@ -64,7 +64,7 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief User specific consumer of logger messages
|
* @brief User specific consumer of logger messages
|
||||||
* @param consumer - sublass of serversdk::Loger
|
* @param consumer - sublass of serversdk::Logger
|
||||||
*
|
*
|
||||||
* @code
|
* @code
|
||||||
* #include "core.h"
|
* #include "core.h"
|
||||||
@ -90,7 +90,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
static void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg);
|
static void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg);
|
||||||
|
|
||||||
/** Pusing messges from installed message handler */
|
/** Pushing messges from installed message handler */
|
||||||
virtual void pushMessage(const LoggerMessage& logmsg);
|
virtual void pushMessage(const LoggerMessage& logmsg);
|
||||||
QList<serversdk::LoggerMessage> getNewMessages(int currentCount);
|
QList<serversdk::LoggerMessage> getNewMessages(int currentCount);
|
||||||
|
|
||||||
|
|||||||
@ -13,6 +13,8 @@ Request::Request(QString type, QString url, QByteArray requestData)
|
|||||||
|
|
||||||
Request::~Request()
|
Request::~Request()
|
||||||
{
|
{
|
||||||
|
if (mNetworkReply)
|
||||||
|
mNetworkReply->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkRequest Request::networkRequest() const
|
QNetworkRequest Request::networkRequest() const
|
||||||
@ -36,12 +38,29 @@ QNetworkRequest Request::networkRequest() const
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Request::status() const
|
||||||
|
{
|
||||||
|
Q_ASSERT(mNetworkReply);
|
||||||
|
return mNetworkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Request::appendData(const QByteArray &array)
|
void Request::appendData(const QByteArray &array)
|
||||||
{
|
{
|
||||||
mResponseData += array;
|
mResponseData += array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Request::setNetworkReply(QNetworkReply *networkReply)
|
||||||
|
{
|
||||||
|
Q_ASSERT(networkReply);
|
||||||
|
mNetworkReply = networkReply;
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkReply *Request::networkReply() const
|
||||||
|
{
|
||||||
|
return mNetworkReply;
|
||||||
|
}
|
||||||
|
|
||||||
QString Request::type() const
|
QString Request::type() const
|
||||||
{
|
{
|
||||||
return mType;
|
return mType;
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QNetworkRequest>
|
#include <QNetworkRequest>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
|
#include <QNetworkReply>
|
||||||
|
|
||||||
namespace serversdk {
|
namespace serversdk {
|
||||||
|
|
||||||
@ -17,6 +18,9 @@ public:
|
|||||||
virtual QNetworkRequest networkRequest() const;
|
virtual QNetworkRequest networkRequest() const;
|
||||||
|
|
||||||
// Data handling data
|
// Data handling data
|
||||||
|
int status() const;
|
||||||
|
QNetworkReply *networkReply() const;
|
||||||
|
void setNetworkReply(QNetworkReply *networkReply);
|
||||||
QByteArray requestData() const;
|
QByteArray requestData() const;
|
||||||
void setRequestData(const QByteArray &requestData);
|
void setRequestData(const QByteArray &requestData);
|
||||||
QByteArray responseData() const;
|
QByteArray responseData() const;
|
||||||
@ -43,7 +47,6 @@ public:
|
|||||||
void logStartTime() { mStartTime = QDateTime::currentDateTime(); }
|
void logStartTime() { mStartTime = QDateTime::currentDateTime(); }
|
||||||
void logFinishTime() { mStartTime = QDateTime::currentDateTime(); }
|
void logFinishTime() { mStartTime = QDateTime::currentDateTime(); }
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Data handling
|
// Data handling
|
||||||
void appendData(const QByteArray &array);
|
void appendData(const QByteArray &array);
|
||||||
@ -62,12 +65,15 @@ private:
|
|||||||
QString mToken;
|
QString mToken;
|
||||||
|
|
||||||
// Data
|
// Data
|
||||||
|
QNetworkReply *mNetworkReply = nullptr;
|
||||||
QByteArray mRequestData;
|
QByteArray mRequestData;
|
||||||
QByteArray mResponseData;
|
QByteArray mResponseData;
|
||||||
|
|
||||||
// Additional attributes
|
// Additional attributes
|
||||||
QDateTime mStartTime;
|
QDateTime mStartTime;
|
||||||
QDateTime mFinishTime;
|
QDateTime mFinishTime;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -45,6 +45,11 @@ void RequestManager::processRequest(const std::shared_ptr<Request>& request)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Adding reply to final request
|
||||||
|
reply->setParent(nullptr); // ensure QNetworkreply wont be deleted by QNetworkAccessManager ( it is parent of reply )
|
||||||
|
request->setNetworkReply(reply);
|
||||||
|
|
||||||
|
// Add to map to get correct request when reply is used in signal
|
||||||
mRequestMap.insert(reply, request);
|
mRequestMap.insert(reply, request);
|
||||||
|
|
||||||
connect(reply, &QNetworkReply::sslErrors, this, &RequestManager::sslErrors);
|
connect(reply, &QNetworkReply::sslErrors, this, &RequestManager::sslErrors);
|
||||||
@ -54,7 +59,6 @@ void RequestManager::processRequest(const std::shared_ptr<Request>& request)
|
|||||||
std::shared_ptr<Request> request = mRequestMap.value(reply);
|
std::shared_ptr<Request> request = mRequestMap.value(reply);
|
||||||
request->logFinishTime();
|
request->logFinishTime();
|
||||||
mRequestMap.remove(reply);
|
mRequestMap.remove(reply);
|
||||||
reply->deleteLater();
|
|
||||||
emit request->finished();
|
emit request->finished();
|
||||||
emit downloadFinished(request);
|
emit downloadFinished(request);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -109,12 +109,15 @@ void SoapTest::public_soap_test()
|
|||||||
// RequestManagerdownload
|
// RequestManagerdownload
|
||||||
RequestManager soap;
|
RequestManager soap;
|
||||||
soap.processRequest(req);
|
soap.processRequest(req);
|
||||||
|
QCOMPARE(req->status(), 0); // when not processed yet, status is 0
|
||||||
|
|
||||||
QSignalSpy progressSpy(&soap, &RequestManager::progresss);
|
QSignalSpy progressSpy(&soap, &RequestManager::progresss);
|
||||||
QSignalSpy finishedSpy(&soap, &RequestManager::downloadFinished);
|
QSignalSpy finishedSpy(&soap, &RequestManager::downloadFinished);
|
||||||
QVERIFY(finishedSpy.wait(20000));
|
QVERIFY(finishedSpy.wait(20000));
|
||||||
QVERIFY(progressSpy.count());
|
QVERIFY(progressSpy.count());
|
||||||
|
|
||||||
|
QCOMPARE(req->status(), 200);
|
||||||
|
|
||||||
//Uncoment to write .xml response to cmd folder
|
//Uncoment to write .xml response to cmd folder
|
||||||
// QFile fileWrite(Utils::sourcePath("test/cmd/tst_soap-response.xml"));
|
// QFile fileWrite(Utils::sourcePath("test/cmd/tst_soap-response.xml"));
|
||||||
// QVERIFY(fileWrite.open(QIODevice::WriteOnly));
|
// QVERIFY(fileWrite.open(QIODevice::WriteOnly));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user