forked from ondra/colnod-connector
Merge branch 'refs/heads/master' into suggest/next-steps-prepare-data
This commit is contained in:
commit
ac8eff481d
@ -176,6 +176,7 @@ It is possible to chain requests: [see doc](https://support.insomnia.rest/articl
|
|||||||
### Bugs
|
### Bugs
|
||||||
- It is possible to add token with token ID (tokenData) which already exists
|
- It is possible to add token with token ID (tokenData) which already exists
|
||||||
- No error message, when request data are invalid in login
|
- No error message, when request data are invalid in login
|
||||||
|
- getUpdated returns valid data for invalid time (negative)
|
||||||
### Improvements
|
### Improvements
|
||||||
- it would be nice to get response messages on calling enpoints
|
- it would be nice to get response messages on calling enpoints
|
||||||
- setToken -> successful edit/insert
|
- setToken -> successful edit/insert
|
||||||
|
|||||||
@ -3,12 +3,9 @@
|
|||||||
Q_LOGGING_CATEGORY(colnod, "colnod.api");
|
Q_LOGGING_CATEGORY(colnod, "colnod.api");
|
||||||
|
|
||||||
|
|
||||||
ColnodAPI::ColnodAPI(serversdk::RequestManager* reqMan, const qint64 &lastSync, const bool &dryMode, const QString &userName, const QString &password)
|
ColnodAPI::ColnodAPI(serversdk::RequestManager* reqMan, const bool &dryMode, const QString &userName, const QString &password)
|
||||||
:mReqMan(reqMan), mUserName(userName), mPassword(password), mDryMode(dryMode)
|
:mReqMan(reqMan), mUserName(userName), mPassword(password), mDryMode(dryMode)
|
||||||
{
|
{
|
||||||
mLastSync.set_timestamp(lastSync);
|
|
||||||
mData = std::make_shared<Data>();
|
|
||||||
|
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
mReqMan->setIgnoreSsl(true);
|
mReqMan->setIgnoreSsl(true);
|
||||||
// -----------------------------------
|
// -----------------------------------
|
||||||
@ -28,7 +25,8 @@ void ColnodAPI::downloadData(const Timestamp &time)
|
|||||||
connect(login.get(), &serversdk::Request::finished, this, [=](){
|
connect(login.get(), &serversdk::Request::finished, this, [=](){
|
||||||
// Get login token
|
// Get login token
|
||||||
if (!checkRequest(login)) {
|
if (!checkRequest(login)) {
|
||||||
emit error();
|
emit downloadDataFinished(nullptr);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
AuthToken token;
|
AuthToken token;
|
||||||
@ -41,6 +39,7 @@ void ColnodAPI::downloadData(const Timestamp &time)
|
|||||||
if (!checkRequest(request)) {
|
if (!checkRequest(request)) {
|
||||||
qWarning(colnod) << "ERROR during calling" << request->url() << ", request unsuccessful";
|
qWarning(colnod) << "ERROR during calling" << request->url() << ", request unsuccessful";
|
||||||
mValid = false;
|
mValid = false;
|
||||||
|
emit downloadDataFinished(nullptr);
|
||||||
}
|
}
|
||||||
else if (!checkResponse(request->responseData())) {
|
else if (!checkResponse(request->responseData())) {
|
||||||
qWarning(colnod) << "Data from" << request->url() << "are invalid";
|
qWarning(colnod) << "Data from" << request->url() << "are invalid";
|
||||||
@ -269,6 +268,7 @@ void ColnodAPI::areDataReady(std::shared_ptr<Data> data)
|
|||||||
qInfo(colnod) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
|
qInfo(colnod) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
|
||||||
qInfo(colnod) << dash;
|
qInfo(colnod) << dash;
|
||||||
|
|
||||||
|
amountData = 0;
|
||||||
emit downloadDataFinished(data);
|
emit downloadDataFinished(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,7 +48,7 @@ class ColnodAPI: public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
ColnodAPI() = default;
|
ColnodAPI() = default;
|
||||||
ColnodAPI(serversdk::RequestManager* reqMan, const qint64 &lastSync = 0, const bool &dryMode = false, const QString &userName = "spaceti", const QString &password = "spaceti1");
|
ColnodAPI(serversdk::RequestManager* reqManconst, const bool &dryMode = false, const QString &userName = "spaceti", const QString &password = "spaceti1");
|
||||||
|
|
||||||
void downloadData(const Timestamp &time);
|
void downloadData(const Timestamp &time);
|
||||||
void processData(const std::shared_ptr<Data> &data);
|
void processData(const std::shared_ptr<Data> &data);
|
||||||
|
|||||||
@ -32,7 +32,7 @@ bool SyncManager::databaseInitialization()
|
|||||||
|
|
||||||
// here -> nothing can fail
|
// here -> nothing can fail
|
||||||
mlastSync.set_timestamp(database->getLastSync());
|
mlastSync.set_timestamp(database->getLastSync());
|
||||||
colnod = std::make_shared<ColnodAPI>(&reqMan, mlastSync.timestamp(), mDryMode);
|
colnod = std::make_shared<ColnodAPI>(&reqMan, mDryMode);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,15 +1,27 @@
|
|||||||
#include <QtTest>
|
#include <QtTest>
|
||||||
|
|
||||||
#include "colnodapi.h"
|
#include "colnodapi.h"
|
||||||
|
#include "serversdk/request.h"
|
||||||
// add necessary includes here
|
// add necessary includes here
|
||||||
|
|
||||||
|
Q_DECLARE_METATYPE(std::shared_ptr<Data>)
|
||||||
|
Q_DECLARE_METATYPE(std::shared_ptr<serversdk::Request>);
|
||||||
|
|
||||||
class ColnodTest : public QObject
|
class ColnodTest : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ColnodTest()
|
||||||
|
{
|
||||||
|
qRegisterMetaType<std::shared_ptr<Data>>();
|
||||||
|
qRegisterMetaType<std::shared_ptr<serversdk::Request>>();
|
||||||
|
}
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void login();
|
void login();
|
||||||
void getTokens();
|
void getTokens();
|
||||||
void download_data_test();
|
void download_data_test();
|
||||||
|
void download_data_fail_test();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString getLoginToken(ColnodAPI &colnod);
|
QString getLoginToken(ColnodAPI &colnod);
|
||||||
@ -48,13 +60,45 @@ void ColnodTest::download_data_test()
|
|||||||
{
|
{
|
||||||
serversdk::RequestManager reqMan;
|
serversdk::RequestManager reqMan;
|
||||||
ColnodAPI colnod(&reqMan);
|
ColnodAPI colnod(&reqMan);
|
||||||
|
{
|
||||||
|
QSignalSpy spy(&colnod, &ColnodAPI::downloadDataFinished);
|
||||||
|
colnod.downloadData(Timestamp(1570190399259));
|
||||||
|
QVERIFY(spy.wait());
|
||||||
|
|
||||||
|
auto data = qvariant_cast<std::shared_ptr<Data>>(spy.at(0).at(0));
|
||||||
|
QVERIFY(data);
|
||||||
|
|
||||||
|
QVERIFY(data->updatedTokens.size() > 0);
|
||||||
|
QVERIFY(data->updatedTokens.contains("5e2f1260-da1c-441f-9644-24dfe3b97b2a"));
|
||||||
|
}
|
||||||
|
{
|
||||||
Timestamp time(QDateTime::currentMSecsSinceEpoch());
|
Timestamp time(QDateTime::currentMSecsSinceEpoch());
|
||||||
colnod.downloadData(time);
|
colnod.downloadData(time);
|
||||||
QSignalSpy spy(&colnod, &ColnodAPI::downloadDataFinished);
|
QSignalSpy spy(&colnod, &ColnodAPI::downloadDataFinished);
|
||||||
QVERIFY(spy.wait());
|
QVERIFY(spy.wait());
|
||||||
auto arguments = spy.takeFirst();
|
auto data = qvariant_cast<std::shared_ptr<Data>>(spy.at(0).at(0));
|
||||||
QVERIFY(arguments.first().data());
|
QVERIFY(data);
|
||||||
|
|
||||||
|
QVERIFY(data->updatedTokens.size() == 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ColnodTest::download_data_fail_test()
|
||||||
|
{
|
||||||
|
serversdk::RequestManager reqMan;
|
||||||
|
ColnodAPI colnod(&reqMan, false, "spaceti", "wrong password");
|
||||||
|
|
||||||
|
Timestamp time(0);
|
||||||
|
QSignalSpy spy(&colnod, &ColnodAPI::downloadDataFinished);
|
||||||
|
colnod.downloadData(time);
|
||||||
|
|
||||||
|
QVERIFY(spy.wait());
|
||||||
|
|
||||||
|
auto data = qvariant_cast<std::shared_ptr<Data>>(spy.at(0).at(0));
|
||||||
|
|
||||||
|
QVERIFY(!data);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ColnodTest::getLoginToken(ColnodAPI &colnod)
|
QString ColnodTest::getLoginToken(ColnodAPI &colnod)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user