fix download method in db

This commit is contained in:
Ondřej Fischer 2019-11-27 14:41:05 +01:00
parent d334007f6c
commit ec2de4978f
6 changed files with 23 additions and 19 deletions

@ -1 +1 @@
Subproject commit 9623578997c33de0700131a40592a83e6cef3289
Subproject commit ee08677641fef053a8f6938f9b31e6792cbe7fff

View File

@ -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;
}

View File

@ -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<Data> 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> &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<QString, std::shared_ptr<Token>> tokensToInit;
auto list = utils->tableFromQuery<Token>(query);
@ -199,7 +199,10 @@ bool DatabaseAPI::uploadTokens(const QHash<QString, std::shared_ptr<Token>> &tok
int existCheck = exists(token->id(), "colnod_token");
if (existCheck == -1) {
}
if (exists(token->id(), "colnod_token")) {

View File

@ -32,7 +32,7 @@ public:
void setLastUpdate(const QList<QString> ids);
qint64 getNow();
void initNewTokens();
bool initNewTokens();
// process data
bool uploadTokens(const QHash<QString, std::shared_ptr<Token> > &tokens);

View File

@ -10,12 +10,9 @@ SyncManager::SyncManager(bool dryMode)
}
bool SyncManager::databaseInitialization()
bool SyncManager::syncInit()
{
database = std::make_shared<DatabaseAPI>(&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<ColnodAPI>(&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

View File

@ -11,8 +11,8 @@ class SyncManager : public QObject
public:
explicit SyncManager(bool dryMode);
bool databaseInitialization();
bool startSynchronization();
bool syncInit();
bool startSync();
private:
bool downloadData();