mirror of
https://gitlab.com/spaceti-app/integrations/acs/colnod-connector.git
synced 2026-07-12 10:50:38 +02:00
edit output, fix prepare tokens
This commit is contained in:
parent
30735dc953
commit
21da53fc33
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user