From 3c65d89b54f90910c88b791a3791b0a49536553e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Fri, 11 Oct 2019 14:25:27 +0200 Subject: [PATCH] edited in order to comments --- src/colnod/colnodapi.cpp | 15 +- src/colnod/colnodapi.h | 1 - src/colnod/datamanager.cpp | 7 + src/colnod/datamanager.h | 1 + src/colnod/requestmanager.cpp | 257 +++++++--------------------------- src/colnod/requestmanager.h | 2 + test/unitTests/UnitTest.cpp | 47 +++---- 7 files changed, 78 insertions(+), 252 deletions(-) diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index 9d719f1..fffac7e 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -3,10 +3,7 @@ ColnodAPI::ColnodAPI() { reqMan = new RequestManager(); - //data = new Data(); dataMan = new DataManager(); - connect(this, &ColnodAPI::partReady, this, &ColnodAPI::checkPartOfData); - connect(this, &ColnodAPI::partReady, this, &ColnodAPI::areDataReady); } @@ -16,14 +13,14 @@ void ColnodAPI::downloadData() Response* resp0 = reqMan->getSubjects(); connect(resp0, &Response::ready, [=](){ dataMan->localSaveSubjects(resp0->reply->readAll()); - emit partReady(); + areDataReady(); resp0->deleteLater(); }); Response* resp1 = reqMan->getTokens(); connect(resp1, &Response::ready, [=](){ dataMan->localSaveTokens(resp1->reply->readAll()); - emit partReady(); + areDataReady(); resp1->deleteLater(); }); @@ -43,14 +40,8 @@ void ColnodAPI::syncData() // PRIVATE FUNCTIONS void ColnodAPI::areDataReady() { - if (index >= numOfMembers) - { + if (dataMan->haveData()) emit dataDownloaded(); - } } -void ColnodAPI::checkPartOfData() -{ - index++; -} diff --git a/src/colnod/colnodapi.h b/src/colnod/colnodapi.h index 5c971d8..22ad551 100644 --- a/src/colnod/colnodapi.h +++ b/src/colnod/colnodapi.h @@ -23,7 +23,6 @@ signals: private slots: void areDataReady(); - void checkPartOfData(); private: diff --git a/src/colnod/datamanager.cpp b/src/colnod/datamanager.cpp index 05bcaa0..3d06661 100644 --- a/src/colnod/datamanager.cpp +++ b/src/colnod/datamanager.cpp @@ -52,4 +52,11 @@ void DataManager::pushDataToDB() qDebug() << counter << " tokens has been updated"; } +bool DataManager::haveData() { + if ( !subjects.isEmpty() && !tokens.isEmpty() ) + return true; + + return false; +} + diff --git a/src/colnod/datamanager.h b/src/colnod/datamanager.h index 425f769..b8bc0d9 100644 --- a/src/colnod/datamanager.h +++ b/src/colnod/datamanager.h @@ -20,6 +20,7 @@ public: void localSaveSubjects(QString jsonResponse); void localSaveTokens(QString jsonResponse); void pushDataToDB(); + bool haveData(); diff --git a/src/colnod/requestmanager.cpp b/src/colnod/requestmanager.cpp index dffdeac..b4fa9a5 100644 --- a/src/colnod/requestmanager.cpp +++ b/src/colnod/requestmanager.cpp @@ -97,7 +97,43 @@ QNetworkReply* RequestManager::postRequest(QString endpoint, QByteArray json) return reply; } +Response* RequestManager::getRequestReturnLogic(QString endpoint) +{ + Response* response = new Response; + if (!loginStatus){ + login(host, user, password); + connect(this, &RequestManager::successLogin, [=](){ + response->reply = getRequest(endpoint); + connect(response->reply, &QNetworkReply::finished, response, &Response::ready); + }); + } + else + { + response->reply = getRequest(endpoint); + connect(response->reply, &QNetworkReply::finished, response, &Response::ready); + } + return response; +} + +Response* RequestManager::postRequestReturnLogic(QString endpoint, QByteArray data) +{ + Response* response = new Response; + if (!loginStatus){ + login(host, user, password); + connect(this, &RequestManager::successLogin, [=](){ + response->reply = postRequest(endpoint, data); + connect(response->reply, &QNetworkReply::finished, response, &Response::ready); + }); + } + else + { + response->reply = postRequest(endpoint, data); + connect(response->reply, &QNetworkReply::finished, response, &Response::ready); + } + + return response; +} QString RequestManager::getFromJson(QString json, const QString &member) { @@ -150,262 +186,67 @@ QByteArray RequestManager::makeTimeStampJson(uint64_t time) Response* RequestManager::getSubjects() { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = getRequest("/SubjectManager/getSubjects"); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = getRequest("/SubjectManager/getSubjects"); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return getRequestReturnLogic("/SubjectManager/getSubjects"); } Response* RequestManager::getTokens() { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = getRequest("/TokenManager/getTokens"); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = getRequest("/TokenManager/getTokens"); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return getRequestReturnLogic("/TokenManager/getTokens"); } Response* RequestManager::getTokenSubject() { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = getRequest("/OpenManager/getTokenSubject"); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = getRequest("/OpenManager/getTokenSubject"); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return getRequestReturnLogic("/OpenManager/getTokenSubject"); } Response* RequestManager::getSubjectsUpdated(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/SubjectManager/getSubjectsUpdated", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/SubjectManager/getSubjectsUpdated", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/SubjectManager/getSubjectsUpdated", makeTimeStampJson(time)); } Response* RequestManager::getSubjectsDeleted(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/SubjectManager/getSubjectsDeleted", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/SubjectManager/getSubjectsDeleted", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/SubjectManager/getSubjectsDeleted", makeTimeStampJson(time)); } Response* RequestManager::getTokensUpdated(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/TokenManager/getTokensUpdated", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/TokenManager/getTokensUpdated", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/TokenManager/getTokensUpdated", makeTimeStampJson(time)); } Response* RequestManager::getTokensDeleted(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/TokenManager/getTokensDeleted", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/TokenManager/getTokensDeleted", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/TokenManager/getTokensDeleted", makeTimeStampJson(time)); } Response* RequestManager::getAccessGroups() { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = getRequest("/AccessManager/getAccessGroups"); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = getRequest("/AccessManager/getAccessGroups"); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return getRequestReturnLogic("/AccessManager/getAccessGroups"); } Response* RequestManager::getAccessGroupsUpdated(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/AccessManager/getAccessGroupsUpdated", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupsUpdated", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/AccessManager/getAccessGroupsUpdated", makeTimeStampJson(time)); } Response* RequestManager::getAccessGroupsDeleted(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/AccessManager/getAccessGroupsDeleted", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupsDeleted", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/AccessManager/getAccessGroupsDeleted", makeTimeStampJson(time)); } Response* RequestManager::getAccessGroupMembership() { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = getRequest("/AccessManager/getAccessGroupMembership"); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = getRequest("/AccessManager/getAccessGroupMembership"); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return getRequestReturnLogic("/AccessManager/getAccessGroupMembership"); } Response* RequestManager::getAccessGroupMembershipUpdated(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/AccessManager/getAccessGroupMembershipUpdated", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupMembershipUpdated", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/AccessManager/getAccessGroupMembershipUpdated", makeTimeStampJson(time)); } Response* RequestManager::getAccessGroupMembershipDeleted(uint64_t time) { - auto response = new Response; - if (!loginStatus){ - login(host, user, password); - connect(this, &RequestManager::successLogin, [=](){ - auto subjectReply = postRequest("/AccessManager/getAccessGroupMembershipDeleted", makeTimeStampJson(time)); - response->reply = subjectReply; - connect(subjectReply, &QNetworkReply::finished, response, &Response::ready); - }); - } - else - { - QNetworkReply* reply = postRequest("/AccessManager/getAccessGroupMembershipDeleted", makeTimeStampJson(time)); - connect(reply, &QNetworkReply::finished, response, &Response::ready); - } - - return response; + return postRequestReturnLogic("/AccessManager/getAccessGroupMembershipDeleted", makeTimeStampJson(time)); } diff --git a/src/colnod/requestmanager.h b/src/colnod/requestmanager.h index 4c495d1..8b5cdb8 100644 --- a/src/colnod/requestmanager.h +++ b/src/colnod/requestmanager.h @@ -55,6 +55,8 @@ public: private: QNetworkReply* getRequest(QString endpoint); QNetworkReply* postRequest(QString endpoints, QByteArray json); + Response* getRequestReturnLogic(QString endpoint); + Response* postRequestReturnLogic(QString endpoint, QByteArray data); QString getFromJson(QString json, const QString &member); QString encryptedPassword(QString password); QString getLoginHeader(QString username, QString hash); diff --git a/test/unitTests/UnitTest.cpp b/test/unitTests/UnitTest.cpp index 8a68b00..19d645f 100644 --- a/test/unitTests/UnitTest.cpp +++ b/test/unitTests/UnitTest.cpp @@ -18,10 +18,9 @@ void UnitTest::loginSuccessfully() //POST request w/o datas void UnitTest::getSubjects() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getSubjects(); + Response* response = testAccess->getSubjects(); spy.wait(10000); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 1); @@ -36,10 +35,9 @@ void UnitTest::getSubjects() void UnitTest::getTokens() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getTokens(); + Response* response = testAccess->getTokens(); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -54,10 +52,9 @@ void UnitTest::getTokens() void UnitTest::getTokenSubject() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getTokenSubject(); + Response* response = testAccess->getTokenSubject(); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -68,10 +65,9 @@ void UnitTest::getTokenSubject() void UnitTest::getSubjectsUpdated() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getSubjectsUpdated(1568646217767); + Response* response = testAccess->getSubjectsUpdated(1568646217767); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -82,10 +78,9 @@ void UnitTest::getSubjectsUpdated() void UnitTest::getSubjectsDeleted() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getSubjectsDeleted(1568646217767); + Response* response = testAccess->getSubjectsDeleted(1568646217767); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -96,10 +91,9 @@ void UnitTest::getSubjectsDeleted() void UnitTest::getTokensUpdated() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getTokensUpdated(1570109859681); + Response* response = testAccess->getTokensUpdated(1570109859681); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -110,10 +104,9 @@ void UnitTest::getTokensUpdated() void UnitTest::getTokensDeleted() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getTokensDeleted(1570109859681); + Response* response = testAccess->getTokensDeleted(1570109859681); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -124,10 +117,9 @@ void UnitTest::getTokensDeleted() void UnitTest::getAccessGroups() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getAccessGroups(); + Response* response = testAccess->getAccessGroups(); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -138,10 +130,9 @@ void UnitTest::getAccessGroups() void UnitTest::getAccessGroupsUpdated() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getAccessGroupsUpdated(1568646217767); + Response* response = testAccess->getAccessGroupsUpdated(1568646217767); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -152,10 +143,9 @@ void UnitTest::getAccessGroupsUpdated() void UnitTest::getAccessGroupsDeleted() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getAccessGroupsDeleted(1568646217767); + Response* response = testAccess->getAccessGroupsDeleted(1568646217767); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -166,10 +156,9 @@ void UnitTest::getAccessGroupsDeleted() void UnitTest::getAccessGroupMembership() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getAccessGroupMembership(); + Response* response = testAccess->getAccessGroupMembership(); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -180,10 +169,9 @@ void UnitTest::getAccessGroupMembership() void UnitTest::getAccessGroupMembershipUpdated() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getAccessGroupMembershipUpdated(1568646217767); + Response* response = testAccess->getAccessGroupMembershipUpdated(1568646217767); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -194,10 +182,9 @@ void UnitTest::getAccessGroupMembershipUpdated() void UnitTest::getAccessGroupMembershipDeleted() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getAccessGroupMembershipDeleted(1568646217767); + Response* response = testAccess->getAccessGroupMembershipDeleted(1568646217767); QCOMPARE(spy.count(), 0); spy.wait(10000); QVERIFY(spy.isValid()); @@ -221,10 +208,9 @@ void UnitTest::subjectJSONParser() QJsonObject obj = doc.object(); QJsonArray arr = obj["items"].toArray(); */ - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getSubjects(); + Response* response = testAccess->getSubjects(); spy.wait(10000); QString json = response->reply->readAll(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); @@ -237,10 +223,9 @@ void UnitTest::subjectJSONParser() void UnitTest::tokenJSONParser() { - Response* response = new Response; RequestManager* testAccess = new RequestManager(); QSignalSpy spy(testAccess, SIGNAL(responseReady())); - response = testAccess->getTokens(); + Response* response = testAccess->getTokens(); spy.wait(10000); QString json = response->reply->readAll(); QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8()); @@ -258,7 +243,7 @@ void UnitTest::connectToDB() qDebug() << db->getTestMessage(1); QVERIFY(true); QCOMPARE(db->getTestMessage(1), QStringLiteral("Hello world")); - QCOMPARE(db->getTestMessage(db->createTestRecord("Now it's diffrent")), QStringLiteral("Does it work?")); + QCOMPARE(db->getTestMessage(db->createTestRecord("Now it's diffrent")), QStringLiteral("Now it's diffrent")); } /*