From 9d398777dbd40d99a356254e6912600b18f8b61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Wed, 20 Nov 2019 09:03:11 +0100 Subject: [PATCH] app runs --- src/app/main.cpp | 32 ++++++++------------------------ src/colnod/colnodapi.cpp | 1 + src/colnod/data.h | 1 + src/colnod/databaseapi.cpp | 1 + src/colnod/syncmanager.cpp | 7 +++++-- 5 files changed, 16 insertions(+), 26 deletions(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index fcad6fd..1dacdb7 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -25,31 +25,15 @@ int main(int argc, char *argv[]) SyncManager api; - api.init(); - api.run(); + + // TODO: handle error in init + if (api.init()) { + api.run(); + } else { + //error + return -1; + } -// QObject::connect(&api, &SyncManager::error, &app, [](){ -// qDebug() << "error"; -// QCoreApplication::exit(1); -// }, Qt::QueuedConnection); -// if (parser.isSet(dropTablesOption)){ -// api.dropTables(); -// return 0; -// } -// if (parser.isSet(createTablesOption)){ -// api.createTables(); -// return 0; -// } -// api.loadDataFromDB(); -// api.loadDataFromColnod(); -// QObject::connect(&api, &SyncManager::dataDownloaded, [&](){ -// QObject::connect(&api, &SyncManager::syncFinished, [](){ -// qDebug() << "Quit"; -// QCoreApplication::exit(); -// }); -// api.syncDataFromColnodToDB(); -// api.syncDataFromDBToColnod(); -// }); return QCoreApplication::exec(); } diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index 531c639..dc11ae3 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -36,6 +36,7 @@ void ColnodAPI::downloadData() void ColnodAPI::processData(std::shared_ptr data) { + connect(this, &ColnodAPI::partOfDataProcessFinished, this, &ColnodAPI::isDataProcessFinished); if ( !data->updatedTokens.isEmpty()) { setTokens(data->updatedTokens); } else { diff --git a/src/colnod/data.h b/src/colnod/data.h index f6bfbbe..891cd3a 100644 --- a/src/colnod/data.h +++ b/src/colnod/data.h @@ -13,6 +13,7 @@ public: void loadTokensFromJson(const QByteArray &data); void loadSubjectsFormJson(const QByteArray &data); + QHash> updatedTokens; QList deletedTokens; QHash> updatedSubjects; diff --git a/src/colnod/databaseapi.cpp b/src/colnod/databaseapi.cpp index 512afa4..0b1fd2a 100644 --- a/src/colnod/databaseapi.cpp +++ b/src/colnod/databaseapi.cpp @@ -148,6 +148,7 @@ void DatabaseAPI::deleteItems(QList ids, const QString &tableName) } } +//TODO: return whole token QDateTime DatabaseAPI::getLastUpdate(const QString &id) { auto query = mDbMan->createQuery(); diff --git a/src/colnod/syncmanager.cpp b/src/colnod/syncmanager.cpp index ad2591d..ce9253e 100644 --- a/src/colnod/syncmanager.cpp +++ b/src/colnod/syncmanager.cpp @@ -24,7 +24,7 @@ void SyncManager::run() downloadData(); connect(this, &SyncManager::dataReady, [=](){ prepareData(); - processData(); + connect(this, &SyncManager::dataProcessFinished, [=](){ updateLastUpdate(syncBegin); connect(this, &SyncManager::syncFinished, [=](){ @@ -32,6 +32,8 @@ void SyncManager::run() QCoreApplication::exit(); }); }); + + processData(); }); } @@ -62,6 +64,7 @@ void SyncManager::prepareData() } auto dbLastUpdate = database->getLastUpdate(colnodToken->id()); if ( !dbLastUpdate.isNull() ) + // TODO: compare whole structure of token if (dbLastUpdate == colnodToken->lastUpdate()) idsToDelete.append(colnodToken->id()); } @@ -82,9 +85,9 @@ void SyncManager::prepareData() void SyncManager::processData() { - colnod->processData(databaseDataToProcess); database->processData(colnodDataToProcess); connect(colnod.get(), &ColnodAPI::dataProcessFinished, this, &SyncManager::dataProcessFinished); + colnod->processData(databaseDataToProcess); } void SyncManager::updateLastUpdate(qint64 syncBegin)