mirror of
https://gitlab.com/spaceti-app/integrations/acs/colnod-connector.git
synced 2026-07-12 14:20:46 +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)
|
void ColnodAPI::processData(const std::shared_ptr<Data> &data)
|
||||||
{
|
{
|
||||||
if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) {
|
// OLD
|
||||||
qInfo(colnod) << dash;
|
// 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";
|
// NEW
|
||||||
qInfo(colnod) << dash;
|
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);
|
connect(this, &ColnodAPI::partOfDataProcessFinished, this, &ColnodAPI::isDataProcessFinished);
|
||||||
@ -264,12 +271,16 @@ void ColnodAPI::areDataReady(const std::shared_ptr<Data> &data)
|
|||||||
{
|
{
|
||||||
if (++amountData == 4) {
|
if (++amountData == 4) {
|
||||||
|
|
||||||
qInfo(colnod) << tab << "-> COLNOD DATA:";
|
// new
|
||||||
qInfo(colnod) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED";
|
qInfo(colnod) << "- src colnod: tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() <<
|
||||||
qInfo(colnod) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED";
|
"] subjects [" << data->updatedSubjects.size() << ":" << data->deletedSubjects.size() << "] [ added/updated : deleted ]";
|
||||||
qInfo(colnod) << tab << tab << data->updatedSubjects.size() << "SUBJECTS WERE ADDED/UPDATED";
|
//OLD
|
||||||
qInfo(colnod) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
|
// qInfo(colnod) << tab << "-> COLNOD DATA:";
|
||||||
qInfo(colnod) << dash;
|
// 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;
|
amountData = 0;
|
||||||
emit downloadDataFinished(data);
|
emit downloadDataFinished(data);
|
||||||
|
|||||||
@ -54,27 +54,34 @@ bool DatabaseAPI::processData(const std::shared_ptr<Data> &data)
|
|||||||
if (!uploadTokens(data->updatedTokens)) {
|
if (!uploadTokens(data->updatedTokens)) {
|
||||||
res = false;
|
res = false;
|
||||||
}
|
}
|
||||||
if (uploadSubjects(data->updatedSubjects)) {
|
if (!uploadSubjects(data->updatedSubjects)) {
|
||||||
res = false;
|
res = false;
|
||||||
}
|
}
|
||||||
if (deleteItems(data->deletedTokens, "colnod_token")) {
|
if (!deleteItems(data->deletedTokens, "colnod_token")) {
|
||||||
res = false;
|
res = false;
|
||||||
}
|
}
|
||||||
if (deleteItems(data->deletedSubjects, "colnod_subject")) {
|
if (!deleteItems(data->deletedSubjects, "colnod_subject")) {
|
||||||
res = false;
|
res = false;
|
||||||
}
|
}
|
||||||
if ( !data->updatedTokens.isEmpty() ||
|
// OLD
|
||||||
!data->updatedSubjects.isEmpty() ||
|
// if ( !data->updatedTokens.isEmpty() ||
|
||||||
!data->deletedTokens.isEmpty() ||
|
// !data->updatedSubjects.isEmpty() ||
|
||||||
!data->deletedSubjects.isEmpty()) {
|
// !data->deletedTokens.isEmpty() ||
|
||||||
qInfo(database) << dash;
|
// !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";
|
// NEW
|
||||||
qInfo(database) << tab << tab << data->updatedSubjects.size() << "SUBJECTS ADDED/UPDATED";
|
qInfo(database) << "- push db: tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() <<
|
||||||
qInfo(database) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED";
|
"] subjects [" << data->updatedSubjects.size() << ":" << data->deletedSubjects.size() << "] [ added/updated : deleted ]";
|
||||||
qInfo(database) << dash;
|
|
||||||
|
// 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;
|
return res;
|
||||||
}
|
}
|
||||||
@ -91,10 +98,15 @@ std::shared_ptr<Data> DatabaseAPI::composeData(const QSqlQuery &updatedQuery, QS
|
|||||||
data->deletedTokens.append(deletedQuery.value(0).toString());
|
data->deletedTokens.append(deletedQuery.value(0).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
qInfo(database) << tab << "-> DATABASE DATA:";
|
// NEW
|
||||||
qInfo(database) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED";
|
qInfo(database) << "- src db: tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() <<
|
||||||
qInfo(database) << tab << tab << data->deletedTokens.size() << "TOKENS MARKED FOR DELETION";
|
"] [ added/updated : deleted ]";
|
||||||
qInfo(database) << dash;
|
|
||||||
|
// 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;
|
return data;
|
||||||
}
|
}
|
||||||
@ -146,8 +158,8 @@ qint64 DatabaseAPI::getNow()
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
query.next();
|
query.next();
|
||||||
qDebug() << "Database time:" << QDateTime::fromMSecsSinceEpoch(query.value(0).toLongLong()).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");
|
// qDebug() << "Current time:" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz");
|
||||||
return query.value(0).toLongLong();
|
return query.value(0).toLongLong();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,6 +231,19 @@ bool DatabaseAPI::deleteItems(const QList<QString> &ids, const QString &tableNam
|
|||||||
{
|
{
|
||||||
auto query = mDbMan->createQuery();
|
auto query = mDbMan->createQuery();
|
||||||
QString nowString = QDateTime::fromMSecsSinceEpoch(getLastSync()).toString("yyyy-MM-dd hh:mm:ss.zzz");
|
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) {
|
for (const auto &id : ids) {
|
||||||
qInfo(database).noquote() << Message::massageTemplate("Deleting", tableName.mid(tableName.indexOf("_") + 1, tableName.length() - 1), "database", id);
|
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(":id", id);
|
||||||
query.bindValue(":now", nowString);
|
query.bindValue(":now", nowString);
|
||||||
if (!executeQuery(query)) {
|
if (!executeQuery(query)) {
|
||||||
qWarning(database) << "ERROR during marking token as deleted:" << id;
|
qWarning(database) << "ERROR during marking as deleted:" << id;
|
||||||
mValid = false;
|
mValid = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,13 +43,17 @@ bool SyncManager::startSynchronization()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
qInfo(syncmanager) << equals;
|
// NEW
|
||||||
qInfo(syncmanager) << "SYNCHRONIZATION BEGIN";
|
qInfo(syncmanager) << "- begin sync ( previous sync" << mlastSync.toDateString() << ")";
|
||||||
qInfo(syncmanager) << equals;
|
|
||||||
qInfo(syncmanager) << "DOWNLOADING DATA -> BEGIN";
|
// OLD
|
||||||
qInfo(syncmanager) << dash;
|
// qInfo(syncmanager) << equals;
|
||||||
qInfo(syncmanager).noquote() << "Modified data since last synchronization (" << mlastSync.toDateString() << "):";
|
// qInfo(syncmanager) << "SYNCHRONIZATION BEGIN";
|
||||||
qInfo(syncmanager) << dash;
|
// 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
|
// GETTING DATA FROM DATABASE
|
||||||
auto databaseData = database->downloadData();
|
auto databaseData = database->downloadData();
|
||||||
@ -67,8 +71,9 @@ bool SyncManager::startSynchronization()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qInfo(syncmanager) << "DOWNLOADING DATA -> FINISHED";
|
// OLD
|
||||||
qInfo(syncmanager) << equals;
|
// qInfo(syncmanager) << "DOWNLOADING DATA -> FINISHED";
|
||||||
|
// qInfo(syncmanager) << equals;
|
||||||
// NOW I SHOULD HAVE VALID DATA FROM COLNOD
|
// NOW I SHOULD HAVE VALID DATA FROM COLNOD
|
||||||
|
|
||||||
|
|
||||||
@ -79,11 +84,12 @@ bool SyncManager::startSynchronization()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qInfo(syncmanager) << equals;
|
// OLD
|
||||||
qInfo(syncmanager) << "PROCESSING DATA -> BEGIN";
|
// qInfo(syncmanager) << equals;
|
||||||
qInfo(syncmanager) << dash;
|
// qInfo(syncmanager) << "PROCESSING DATA -> BEGIN";
|
||||||
qInfo(syncmanager) << "Push changes to both Colnod and Database:";
|
// qInfo(syncmanager) << dash;
|
||||||
qInfo(syncmanager) << dash;
|
// qInfo(syncmanager) << "Push changes to both Colnod and Database:";
|
||||||
|
// qInfo(syncmanager) << dash;
|
||||||
|
|
||||||
if (!database->processData(preparedData->colnodData)) {
|
if (!database->processData(preparedData->colnodData)) {
|
||||||
qCritical(syncmanager) << "Not possible to upload data to database";
|
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";
|
qCritical(syncmanager) << "Not possible to upload data to colnod";
|
||||||
}
|
}
|
||||||
|
|
||||||
qInfo(syncmanager) << "PROCESSING DATA -> FINISHED";
|
// OLD
|
||||||
qInfo(syncmanager) << equals;
|
// qInfo(syncmanager) << "PROCESSING DATA -> FINISHED";
|
||||||
|
// qInfo(syncmanager) << equals;
|
||||||
|
|
||||||
// REUPDATE tokens pushed from database to colnod (cause of lastUpdate time)
|
// REUPDATE tokens pushed from database to colnod (cause of lastUpdate time)
|
||||||
Timestamp time;
|
Timestamp time;
|
||||||
@ -128,14 +135,15 @@ bool SyncManager::startSynchronization()
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
database->setLastSync(syncBegin);
|
database->setLastSync(syncBegin);
|
||||||
qInfo(syncmanager).noquote() << "Update last synchronization time to time of this sync ("
|
// qInfo(syncmanager).noquote() << "Update last synchronization time to time of this sync ("
|
||||||
<< QDateTime::fromMSecsSinceEpoch(syncBegin).toString("yyyy-MM-dd hh:mm:ss.zzz")
|
// << QDateTime::fromMSecsSinceEpoch(syncBegin).toString("yyyy-MM-dd hh:mm:ss.zzz")
|
||||||
<< ")";
|
// << ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
qInfo(syncmanager) << equals;
|
// OLD
|
||||||
qInfo(syncmanager) << "SYNCHRONIZATION FINISHED";
|
// qInfo(syncmanager) << equals;
|
||||||
qInfo(syncmanager) << equals;
|
// qInfo(syncmanager) << "SYNCHRONIZATION FINISHED";
|
||||||
|
// qInfo(syncmanager) << equals;
|
||||||
|
|
||||||
QCoreApplication::exit();
|
QCoreApplication::exit();
|
||||||
});
|
});
|
||||||
@ -157,11 +165,12 @@ std::unique_ptr<PreparedData> SyncManager::prepareDataNew(const std::shared_ptr<
|
|||||||
QList<QString> conflicts;
|
QList<QString> conflicts;
|
||||||
QList<QString> alreadySynced;
|
QList<QString> alreadySynced;
|
||||||
|
|
||||||
qInfo(syncmanager) << equals;
|
// OLD
|
||||||
qInfo(syncmanager) << "PREPARING DATA -> BEGIN";
|
// qInfo(syncmanager) << equals;
|
||||||
qInfo(syncmanager) << dash;
|
// qInfo(syncmanager) << "PREPARING DATA -> BEGIN";
|
||||||
qInfo(syncmanager) << "Resolve conflicts ( changes on same item on both Colnod and DB ):";
|
// qInfo(syncmanager) << dash;
|
||||||
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
|
// add all data which should be pushed to database
|
||||||
for (const auto &colnodToken : colnodData->updatedTokens) {
|
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:";
|
preparedColnodData->updatedSubjects = colnodData->updatedSubjects;
|
||||||
qInfo(syncmanager) << tab << tab << conflicts.size() << "TOKENS WERE ADDED/UPDATED IN DATABASE AFTER";
|
preparedColnodData->deletedSubjects = colnodData->deletedSubjects;
|
||||||
qInfo(syncmanager) << tab << tab << alreadySynced.size() << "TOKENS WERE ALREADY SYNCED";
|
|
||||||
qInfo(syncmanager) << tab << tab << colnodData->deletedTokens.size() - preparedColnodData->deletedTokens.size() << "TOKENS WERE ALREADY DELETED";
|
// NEW
|
||||||
qInfo(syncmanager) << dash;
|
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) {
|
for (const auto &databaseToken : databaseData->updatedTokens) {
|
||||||
if (databaseToken->name().isEmpty()) {
|
if (databaseToken->name().isEmpty()) {
|
||||||
@ -228,12 +245,20 @@ std::unique_ptr<PreparedData> SyncManager::prepareDataNew(const std::shared_ptr<
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qInfo(syncmanager) << tab << "-> DATABASE DATA - CHANGES:";
|
preparedDatabaseData->deletedTokens = databaseData->deletedTokens;
|
||||||
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;
|
// 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);
|
auto preparedData = std::make_unique<PreparedData>(preparedDatabaseData, preparedColnodData);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user