From ec2de4978f40021eb89fe15fd7f6db00a3225d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Wed, 27 Nov 2019 14:41:05 +0100 Subject: [PATCH] fix download method in db --- server-sdk | 2 +- src/app/main.cpp | 4 ++-- src/colnod/databaseapi.cpp | 17 ++++++++++------- src/colnod/databaseapi.h | 2 +- src/colnod/syncmanager.cpp | 13 +++++++------ src/colnod/syncmanager.h | 4 ++-- 6 files changed, 23 insertions(+), 19 deletions(-) diff --git a/server-sdk b/server-sdk index 9623578..ee08677 160000 --- a/server-sdk +++ b/server-sdk @@ -1 +1 @@ -Subproject commit 9623578997c33de0700131a40592a83e6cef3289 +Subproject commit ee08677641fef053a8f6938f9b31e6792cbe7fff diff --git a/src/app/main.cpp b/src/app/main.cpp index 34b50bf..22bcf67 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -44,13 +44,13 @@ int main(int argc, char *argv[]) SyncManager syncManager(parser.isSet(dryModeOption)); // Initialize database and colnod API - if (!syncManager.databaseInitialization()) { + if (!syncManager.syncInit()) { qCritical("Not possible to initialize sync application"); return -1; } // Synchronizaiton - if (!syncManager.startSynchronization()) { + if (!syncManager.startSync()) { qCritical("Not possible to start synchronization"); return -1; } diff --git a/src/colnod/databaseapi.cpp b/src/colnod/databaseapi.cpp index 3e1e67e..248185d 100644 --- a/src/colnod/databaseapi.cpp +++ b/src/colnod/databaseapi.cpp @@ -36,23 +36,22 @@ bool DatabaseAPI::executeQuery(QSqlQuery &query, const QString &statement) return true; } +// returns data to be sychronized to colnod +// returns nullptr if there is any error std::shared_ptr DatabaseAPI::downloadData() { auto updatedQuery = mDbMan->createQuery(); auto deletedQuery = mDbMan->createQuery(); if (!executeQuery(updatedQuery, "SELECT * FROM colnod_token WHERE last_modified > last_update AND deleted = false")) { - qWarning(database) << "ERROR during geting new/updated tokens from db."; + qWarning(database) << "ERROR: Not possible to get new/updated tokens from DB"; return nullptr; } if (!executeQuery(deletedQuery, "SELECT id FROM colnod_token WHERE last_modified > last_update AND deleted = true")) { - qWarning(database) << "ERROR during geting marked tokens for deletion from db."; + qWarning(database) << "ERROR: not possible to get tokens marked for deletion from DB"; return nullptr; } return composeData(updatedQuery, deletedQuery); - // TODO: why emiting signal?? - // this can return Strucutre - //emit downloadDataFinished(composeData(updatedQuery, deletedQuery)); } bool DatabaseAPI::processData(const std::shared_ptr &data) @@ -165,11 +164,12 @@ qint64 DatabaseAPI::getNow() return query.value(0).toLongLong(); } -void DatabaseAPI::initNewTokens() +bool DatabaseAPI::initNewTokens() { auto query = mDbMan->createQuery(); if (!executeQuery(query, "SELECT * FROM colnod_token WHERE name IS NULL")) { - qWarning(database) << "ERROR during getting uninitialized tokens"; + qWarning(database) << "Not possible to get uninitialized (new) tokens"; + return false; } QHash> tokensToInit; auto list = utils->tableFromQuery(query); @@ -199,7 +199,10 @@ bool DatabaseAPI::uploadTokens(const QHash> &tok + int existCheck = exists(token->id(), "colnod_token"); + if (existCheck == -1) { + } if (exists(token->id(), "colnod_token")) { diff --git a/src/colnod/databaseapi.h b/src/colnod/databaseapi.h index ef71c1e..9cb3d12 100644 --- a/src/colnod/databaseapi.h +++ b/src/colnod/databaseapi.h @@ -32,7 +32,7 @@ public: void setLastUpdate(const QList ids); qint64 getNow(); - void initNewTokens(); + bool initNewTokens(); // process data bool uploadTokens(const QHash > &tokens); diff --git a/src/colnod/syncmanager.cpp b/src/colnod/syncmanager.cpp index 5f39e5c..b186f9b 100644 --- a/src/colnod/syncmanager.cpp +++ b/src/colnod/syncmanager.cpp @@ -10,12 +10,9 @@ SyncManager::SyncManager(bool dryMode) } -bool SyncManager::databaseInitialization() +bool SyncManager::syncInit() { database = std::make_shared(&dbMan, mDryMode); -// connect(database.get(), &DatabaseAPI::error, [=](){ -// QCoreApplication::exit(1); -// }); // Open database if (!database->open()) { @@ -30,6 +27,10 @@ bool SyncManager::databaseInitialization() return false; } + if (!database->initNewTokens()) { + + } + // here -> nothing can fail mlastSync.set_timestamp(database->getLastSync()); colnod = std::make_shared(&reqMan, mlastSync.timestamp(), mDryMode); @@ -37,7 +38,7 @@ bool SyncManager::databaseInitialization() } -bool SyncManager::startSynchronization() +bool SyncManager::startSync() { // I have to current time from database qint64 syncBegin = database->getNow(); @@ -50,7 +51,7 @@ bool SyncManager::startSynchronization() qInfo(syncmanager) << "SYNCHRONIZATION BEGIN"; // TODO: check error - database->initNewTokens(); + // GETTING DATA FROM DATABASE diff --git a/src/colnod/syncmanager.h b/src/colnod/syncmanager.h index 07c92e0..7d783ee 100644 --- a/src/colnod/syncmanager.h +++ b/src/colnod/syncmanager.h @@ -11,8 +11,8 @@ class SyncManager : public QObject public: explicit SyncManager(bool dryMode); - bool databaseInitialization(); - bool startSynchronization(); + bool syncInit(); + bool startSync(); private: bool downloadData();