edit output, fix prepare tokens

This commit is contained in:
Ondřej Fischer 2019-12-06 15:33:28 +01:00
parent 30735dc953
commit 21da53fc33
3 changed files with 133 additions and 72 deletions

View File

@ -100,13 +100,20 @@ void ColnodAPI::downloadData(const qint64 &time)
void ColnodAPI::processData(const std::shared_ptr<Data> &data)
{
if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) {
qInfo(colnod) << dash;
}
qInfo(colnod) << tab << "-> DATA PROCESSED TO COLNOD:";
qInfo(colnod) << tab << tab << data->updatedTokens.size() << "TOKENS UPDATED";
qInfo(colnod) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED";
qInfo(colnod) << dash;
// OLD
// if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) {
// qInfo(colnod) << dash;
// }
// NEW
qInfo(colnod) << "- push colnod: tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() <<
"] [ added/updated : deleted ]";
// OLD
// qInfo(colnod) << tab << "-> DATA PROCESSED TO COLNOD:";
// qInfo(colnod) << tab << tab << data->updatedTokens.size() << "TOKENS UPDATED";
// qInfo(colnod) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED";
// qInfo(colnod) << dash;
connect(this, &ColnodAPI::partOfDataProcessFinished, this, &ColnodAPI::isDataProcessFinished);
@ -264,12 +271,16 @@ void ColnodAPI::areDataReady(const std::shared_ptr<Data> &data)
{
if (++amountData == 4) {
qInfo(colnod) << tab << "-> COLNOD DATA:";
qInfo(colnod) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED";
qInfo(colnod) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED";
qInfo(colnod) << tab << tab << data->updatedSubjects.size() << "SUBJECTS WERE ADDED/UPDATED";
qInfo(colnod) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
qInfo(colnod) << dash;
// new
qInfo(colnod) << "- src colnod: tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() <<
"] subjects [" << data->updatedSubjects.size() << ":" << data->deletedSubjects.size() << "] [ added/updated : deleted ]";
//OLD
// qInfo(colnod) << tab << "-> COLNOD DATA:";
// qInfo(colnod) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED";
// qInfo(colnod) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED";
// qInfo(colnod) << tab << tab << data->updatedSubjects.size() << "SUBJECTS WERE ADDED/UPDATED";
// qInfo(colnod) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
// qInfo(colnod) << dash;
amountData = 0;
emit downloadDataFinished(data);

View File

@ -54,27 +54,34 @@ bool DatabaseAPI::processData(const std::shared_ptr<Data> &data)
if (!uploadTokens(data->updatedTokens)) {
res = false;
}
if (uploadSubjects(data->updatedSubjects)) {
if (!uploadSubjects(data->updatedSubjects)) {
res = false;
}
if (deleteItems(data->deletedTokens, "colnod_token")) {
if (!deleteItems(data->deletedTokens, "colnod_token")) {
res = false;
}
if (deleteItems(data->deletedSubjects, "colnod_subject")) {
if (!deleteItems(data->deletedSubjects, "colnod_subject")) {
res = false;
}
if ( !data->updatedTokens.isEmpty() ||
!data->updatedSubjects.isEmpty() ||
!data->deletedTokens.isEmpty() ||
!data->deletedSubjects.isEmpty()) {
qInfo(database) << dash;
}
qInfo(database) << tab << "-> DATA PROCESSED TO DATABASE:";
qInfo(database) << tab << tab << data->updatedTokens.size() << "TOKENS ADDED/UPDATED";
qInfo(database) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED";
qInfo(database) << tab << tab << data->updatedSubjects.size() << "SUBJECTS ADDED/UPDATED";
qInfo(database) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
qInfo(database) << dash;
// OLD
// if ( !data->updatedTokens.isEmpty() ||
// !data->updatedSubjects.isEmpty() ||
// !data->deletedTokens.isEmpty() ||
// !data->deletedSubjects.isEmpty()) {
// //qInfo(database) << dash;
// }
// NEW
qInfo(database) << "- push db: tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() <<
"] subjects [" << data->updatedSubjects.size() << ":" << data->deletedSubjects.size() << "] [ added/updated : deleted ]";
// OLD
// qInfo(database) << tab << "-> DATA PROCESSED TO DATABASE:";
// qInfo(database) << tab << tab << data->updatedTokens.size() << "TOKENS ADDED/UPDATED";
// qInfo(database) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED";
// qInfo(database) << tab << tab << data->updatedSubjects.size() << "SUBJECTS ADDED/UPDATED";
// qInfo(database) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
// qInfo(database) << dash;
return res;
}
@ -91,10 +98,15 @@ std::shared_ptr<Data> DatabaseAPI::composeData(const QSqlQuery &updatedQuery, QS
data->deletedTokens.append(deletedQuery.value(0).toString());
}
qInfo(database) << tab << "-> DATABASE DATA:";
qInfo(database) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED";
qInfo(database) << tab << tab << data->deletedTokens.size() << "TOKENS MARKED FOR DELETION";
qInfo(database) << dash;
// NEW
qInfo(database) << "- src db: tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() <<
"] [ added/updated : deleted ]";
// OLD
// qInfo(database) << tab << "-> DATABASE DATA:";
// qInfo(database) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED";
// qInfo(database) << tab << tab << data->deletedTokens.size() << "TOKENS MARKED FOR DELETION";
// qInfo(database) << dash;
return data;
}
@ -146,8 +158,8 @@ qint64 DatabaseAPI::getNow()
return -1;
}
query.next();
qDebug() << "Database time:" << QDateTime::fromMSecsSinceEpoch(query.value(0).toLongLong()).toString("yyyy-MM-dd hh:mm:ss.zzz");
qDebug() << "Current time:" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");
// qDebug() << "Database time:" << QDateTime::fromMSecsSinceEpoch(query.value(0).toLongLong()).toString("yyyy-MM-dd hh:mm:ss.zzz");
// qDebug() << "Current time:" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");
return query.value(0).toLongLong();
}
@ -219,6 +231,19 @@ bool DatabaseAPI::deleteItems(const QList<QString> &ids, const QString &tableNam
{
auto query = mDbMan->createQuery();
QString nowString = QDateTime::fromMSecsSinceEpoch(getLastSync()).toString("yyyy-MM-dd hh:mm:ss.zzz");
if (tableName == "colnod_subject") {
for (const auto &id : ids) {
query.prepare("DELETE FROM colnod_subject_attribute WHERE subject_id = :id");
query.bindValue(":id", id);
if (!executeQuery(query)) {
qWarning(database) << "ERROR during marking as deleted:" << id;
mValid = false;
return false;
}
}
}
for (const auto &id : ids) {
qInfo(database).noquote() << Message::massageTemplate("Deleting", tableName.mid(tableName.indexOf("_") + 1, tableName.length() - 1), "database", id);
@ -226,7 +251,7 @@ bool DatabaseAPI::deleteItems(const QList<QString> &ids, const QString &tableNam
query.bindValue(":id", id);
query.bindValue(":now", nowString);
if (!executeQuery(query)) {
qWarning(database) << "ERROR during marking token as deleted:" << id;
qWarning(database) << "ERROR during marking as deleted:" << id;
mValid = false;
return false;
}

View File

@ -43,13 +43,17 @@ bool SyncManager::startSynchronization()
return false;
}
qInfo(syncmanager) << equals;
qInfo(syncmanager) << "SYNCHRONIZATION BEGIN";
qInfo(syncmanager) << equals;
qInfo(syncmanager) << "DOWNLOADING DATA -> BEGIN";
qInfo(syncmanager) << dash;
qInfo(syncmanager).noquote() << "Modified data since last synchronization (" << mlastSync.toDateString() << "):";
qInfo(syncmanager) << dash;
// NEW
qInfo(syncmanager) << "- begin sync ( previous sync" << mlastSync.toDateString() << ")";
// OLD
// qInfo(syncmanager) << equals;
// qInfo(syncmanager) << "SYNCHRONIZATION BEGIN";
// qInfo(syncmanager) << equals;
// qInfo(syncmanager) << "DOWNLOADING DATA -> BEGIN";
// qInfo(syncmanager) << dash;
// qInfo(syncmanager).noquote() << "Modified data since last synchronization (" << mlastSync.toDateString() << "):";
// qInfo(syncmanager) << dash;
// GETTING DATA FROM DATABASE
auto databaseData = database->downloadData();
@ -67,8 +71,9 @@ bool SyncManager::startSynchronization()
return;
}
qInfo(syncmanager) << "DOWNLOADING DATA -> FINISHED";
qInfo(syncmanager) << equals;
// OLD
// qInfo(syncmanager) << "DOWNLOADING DATA -> FINISHED";
// qInfo(syncmanager) << equals;
// NOW I SHOULD HAVE VALID DATA FROM COLNOD
@ -79,11 +84,12 @@ bool SyncManager::startSynchronization()
return;
}
qInfo(syncmanager) << equals;
qInfo(syncmanager) << "PROCESSING DATA -> BEGIN";
qInfo(syncmanager) << dash;
qInfo(syncmanager) << "Push changes to both Colnod and Database:";
qInfo(syncmanager) << dash;
// OLD
// qInfo(syncmanager) << equals;
// qInfo(syncmanager) << "PROCESSING DATA -> BEGIN";
// qInfo(syncmanager) << dash;
// qInfo(syncmanager) << "Push changes to both Colnod and Database:";
// qInfo(syncmanager) << dash;
if (!database->processData(preparedData->colnodData)) {
qCritical(syncmanager) << "Not possible to upload data to database";
@ -95,8 +101,9 @@ bool SyncManager::startSynchronization()
qCritical(syncmanager) << "Not possible to upload data to colnod";
}
qInfo(syncmanager) << "PROCESSING DATA -> FINISHED";
qInfo(syncmanager) << equals;
// OLD
// qInfo(syncmanager) << "PROCESSING DATA -> FINISHED";
// qInfo(syncmanager) << equals;
// REUPDATE tokens pushed from database to colnod (cause of lastUpdate time)
Timestamp time;
@ -128,14 +135,15 @@ bool SyncManager::startSynchronization()
}
else {
database->setLastSync(syncBegin);
qInfo(syncmanager).noquote() << "Update last synchronization time to time of this sync ("
<< QDateTime::fromMSecsSinceEpoch(syncBegin).toString("yyyy-MM-dd hh:mm:ss.zzz")
<< ")";
// qInfo(syncmanager).noquote() << "Update last synchronization time to time of this sync ("
// << QDateTime::fromMSecsSinceEpoch(syncBegin).toString("yyyy-MM-dd hh:mm:ss.zzz")
// << ")";
}
qInfo(syncmanager) << equals;
qInfo(syncmanager) << "SYNCHRONIZATION FINISHED";
qInfo(syncmanager) << equals;
// OLD
// qInfo(syncmanager) << equals;
// qInfo(syncmanager) << "SYNCHRONIZATION FINISHED";
// qInfo(syncmanager) << equals;
QCoreApplication::exit();
});
@ -157,11 +165,12 @@ std::unique_ptr<PreparedData> SyncManager::prepareDataNew(const std::shared_ptr<
QList<QString> conflicts;
QList<QString> alreadySynced;
qInfo(syncmanager) << equals;
qInfo(syncmanager) << "PREPARING DATA -> BEGIN";
qInfo(syncmanager) << dash;
qInfo(syncmanager) << "Resolve conflicts ( changes on same item on both Colnod and DB ):";
qInfo(syncmanager) << dash;
// OLD
// qInfo(syncmanager) << equals;
// qInfo(syncmanager) << "PREPARING DATA -> BEGIN";
// qInfo(syncmanager) << dash;
// qInfo(syncmanager) << "Resolve conflicts ( changes on same item on both Colnod and DB ):";
// qInfo(syncmanager) << dash;
// add all data which should be pushed to database
for (const auto &colnodToken : colnodData->updatedTokens) {
@ -199,11 +208,19 @@ std::unique_ptr<PreparedData> SyncManager::prepareDataNew(const std::shared_ptr<
}
}
qInfo(syncmanager) << tab << "-> COLNOD DATA - CHANGES:";
qInfo(syncmanager) << tab << tab << conflicts.size() << "TOKENS WERE ADDED/UPDATED IN DATABASE AFTER";
qInfo(syncmanager) << tab << tab << alreadySynced.size() << "TOKENS WERE ALREADY SYNCED";
qInfo(syncmanager) << tab << tab << colnodData->deletedTokens.size() - preparedColnodData->deletedTokens.size() << "TOKENS WERE ALREADY DELETED";
qInfo(syncmanager) << dash;
preparedColnodData->updatedSubjects = colnodData->updatedSubjects;
preparedColnodData->deletedSubjects = colnodData->deletedSubjects;
// NEW
qInfo(syncmanager) << "- prep colnod: tokens [" << preparedColnodData->updatedTokens.size() << ":" << preparedColnodData->deletedTokens.size() <<
"] subjects [" << preparedColnodData->updatedSubjects.size() << ":" << preparedColnodData->deletedSubjects.size() << "] [ added/updated : deleted ]";
// OLD
// qInfo(syncmanager) << tab << "-> COLNOD DATA - CHANGES:";
// qInfo(syncmanager) << tab << tab << conflicts.size() << "TOKENS WERE ADDED/UPDATED IN DATABASE AFTER";
// qInfo(syncmanager) << tab << tab << alreadySynced.size() << "TOKENS WERE ALREADY SYNCED";
// qInfo(syncmanager) << tab << tab << colnodData->deletedTokens.size() - preparedColnodData->deletedTokens.size() << "TOKENS WERE ALREADY DELETED";
// qInfo(syncmanager) << dash;
for (const auto &databaseToken : databaseData->updatedTokens) {
if (databaseToken->name().isEmpty()) {
@ -228,12 +245,20 @@ std::unique_ptr<PreparedData> SyncManager::prepareDataNew(const std::shared_ptr<
}
}
qInfo(syncmanager) << tab << "-> DATABASE DATA - CHANGES:";
qInfo(syncmanager) << tab << tab << databaseData->updatedTokens.size() - preparedDatabaseData->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED IN COLNOD AFTER";
qInfo(syncmanager) << dash;
preparedDatabaseData->deletedTokens = databaseData->deletedTokens;
qInfo(syncmanager) << "PREPARING DATA -> FINISHED";
qInfo(syncmanager) << equals;
// NEW
qInfo(syncmanager) << "- prep db: tokens [" << preparedDatabaseData->updatedTokens.size() << ":" << preparedDatabaseData->deletedTokens.size() <<
"] [ added/updated : deleted ]";
// OLD
// qInfo(syncmanager) << tab << "-> DATABASE DATA - CHANGES:";
// qInfo(syncmanager) << tab << tab << databaseData->updatedTokens.size() - preparedDatabaseData->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED IN COLNOD AFTER";
// qInfo(syncmanager) << dash;
// qInfo(syncmanager) << "PREPARING DATA -> FINISHED";
// qInfo(syncmanager) << equals;
auto preparedData = std::make_unique<PreparedData>(preparedDatabaseData, preparedColnodData);