This commit is contained in:
Ondřej Fischer 2019-11-20 09:03:11 +01:00
parent 900fda34e9
commit 9d398777db
5 changed files with 16 additions and 26 deletions

View File

@ -25,31 +25,15 @@ int main(int argc, char *argv[])
SyncManager api; 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(); return QCoreApplication::exec();
} }

View File

@ -36,6 +36,7 @@ void ColnodAPI::downloadData()
void ColnodAPI::processData(std::shared_ptr<Data> data) void ColnodAPI::processData(std::shared_ptr<Data> data)
{ {
connect(this, &ColnodAPI::partOfDataProcessFinished, this, &ColnodAPI::isDataProcessFinished);
if ( !data->updatedTokens.isEmpty()) { if ( !data->updatedTokens.isEmpty()) {
setTokens(data->updatedTokens); setTokens(data->updatedTokens);
} else { } else {

View File

@ -13,6 +13,7 @@ public:
void loadTokensFromJson(const QByteArray &data); void loadTokensFromJson(const QByteArray &data);
void loadSubjectsFormJson(const QByteArray &data); void loadSubjectsFormJson(const QByteArray &data);
QHash<QString, std::shared_ptr<Token>> updatedTokens; QHash<QString, std::shared_ptr<Token>> updatedTokens;
QList<QString> deletedTokens; QList<QString> deletedTokens;
QHash<QString, std::shared_ptr<Subject>> updatedSubjects; QHash<QString, std::shared_ptr<Subject>> updatedSubjects;

View File

@ -148,6 +148,7 @@ void DatabaseAPI::deleteItems(QList<QString> ids, const QString &tableName)
} }
} }
//TODO: return whole token
QDateTime DatabaseAPI::getLastUpdate(const QString &id) QDateTime DatabaseAPI::getLastUpdate(const QString &id)
{ {
auto query = mDbMan->createQuery(); auto query = mDbMan->createQuery();

View File

@ -24,7 +24,7 @@ void SyncManager::run()
downloadData(); downloadData();
connect(this, &SyncManager::dataReady, [=](){ connect(this, &SyncManager::dataReady, [=](){
prepareData(); prepareData();
processData();
connect(this, &SyncManager::dataProcessFinished, [=](){ connect(this, &SyncManager::dataProcessFinished, [=](){
updateLastUpdate(syncBegin); updateLastUpdate(syncBegin);
connect(this, &SyncManager::syncFinished, [=](){ connect(this, &SyncManager::syncFinished, [=](){
@ -32,6 +32,8 @@ void SyncManager::run()
QCoreApplication::exit(); QCoreApplication::exit();
}); });
}); });
processData();
}); });
} }
@ -62,6 +64,7 @@ void SyncManager::prepareData()
} }
auto dbLastUpdate = database->getLastUpdate(colnodToken->id()); auto dbLastUpdate = database->getLastUpdate(colnodToken->id());
if ( !dbLastUpdate.isNull() ) if ( !dbLastUpdate.isNull() )
// TODO: compare whole structure of token
if (dbLastUpdate == colnodToken->lastUpdate()) if (dbLastUpdate == colnodToken->lastUpdate())
idsToDelete.append(colnodToken->id()); idsToDelete.append(colnodToken->id());
} }
@ -82,9 +85,9 @@ void SyncManager::prepareData()
void SyncManager::processData() void SyncManager::processData()
{ {
colnod->processData(databaseDataToProcess);
database->processData(colnodDataToProcess); database->processData(colnodDataToProcess);
connect(colnod.get(), &ColnodAPI::dataProcessFinished, this, &SyncManager::dataProcessFinished); connect(colnod.get(), &ColnodAPI::dataProcessFinished, this, &SyncManager::dataProcessFinished);
colnod->processData(databaseDataToProcess);
} }
void SyncManager::updateLastUpdate(qint64 syncBegin) void SyncManager::updateLastUpdate(qint64 syncBegin)