From 31183087c266419ffe068ee957a30c850dcb8f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Wed, 30 Oct 2019 14:31:10 +0100 Subject: [PATCH] Logs to db first version --- src/app/main.cpp | 2 -- src/colnod/databasemanager.cpp | 20 +++++++++++++++----- src/colnod/databasemanager.h | 3 ++- src/colnod/datamanager.cpp | 27 +++++++++++++++++---------- src/colnod/logger.cpp | 10 ++++++++-- src/colnod/logger.h | 3 ++- 6 files changed, 44 insertions(+), 21 deletions(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index 112dc39..0a90c76 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -25,7 +25,5 @@ int main(int argc, char *argv[]) QCoreApplication::exit(); }); }); - - return QCoreApplication::exec(); } diff --git a/src/colnod/databasemanager.cpp b/src/colnod/databasemanager.cpp index 7b84c1f..74ca21d 100644 --- a/src/colnod/databasemanager.cpp +++ b/src/colnod/databasemanager.cpp @@ -156,7 +156,7 @@ void DatabaseManager::executeNonPreperedQuery(const QString &statement, QSqlQuer if (dryMode){ QString sqlStatement = getLastQuery(query); qDebug() << sqlStatement; - if (statement.contains("SELECT")) + if (statement.startsWith("SELECT")) query.exec(statement); } else{ @@ -164,13 +164,12 @@ void DatabaseManager::executeNonPreperedQuery(const QString &statement, QSqlQuer } } - bool DatabaseManager::executeQuery(QSqlQuery &query) const { if (dryMode){ QString sqlStatement = getLastQuery(query); qDebug() << sqlStatement; - if (sqlStatement.contains("SELECT")) + if (sqlStatement.startsWith("SELECT")) query.exec(); return true; } @@ -278,14 +277,25 @@ void DatabaseManager::log(const QString &msg) query.exec(); } -QString DatabaseManager::getSubjectName(const QString &tokenId) +QString DatabaseManager::getSubjectNameByTokenId(const QString &tokenId) { query.prepare("SELECT name FROM colnod_subject WHERE id = (SELECT subject_id FROM colnod_token WHERE id = :tokenId)"); query.bindValue(":tokenId", tokenId); executeQuery(query); if (query.next()) return query.value(0).toString(); - qWarning() << "Token:" << tokenId << "is not assigned to any sbject"; + qWarning() << "Token:" << tokenId << "is not assigned to any subject"; + return "No Subject"; +} + +QString DatabaseManager::getSubjectNameById(const QString &id) +{ + query.prepare("SELECT name FROM colnod_subject WHERE id = :id"); + query.bindValue(":id", id); + executeQuery(query); + if (query.next()) + return query.value(0).toString(); + qWarning() << "Subject:" << id << "doesn't exists"; return "No Subject"; } diff --git a/src/colnod/databasemanager.h b/src/colnod/databasemanager.h index 54e0771..0e259f3 100644 --- a/src/colnod/databasemanager.h +++ b/src/colnod/databasemanager.h @@ -37,7 +37,8 @@ public: void setLastUpdate(const QString& id, quint64 lastUpdate); void log(const QString &msg); - QString getSubjectName(const QString &tokenId); + QString getSubjectNameByTokenId(const QString &tokenId); + QString getSubjectNameById(const QString &id); bool checkDeletedToken(const QString &id); diff --git a/src/colnod/datamanager.cpp b/src/colnod/datamanager.cpp index 06fa344..355d997 100644 --- a/src/colnod/datamanager.cpp +++ b/src/colnod/datamanager.cpp @@ -17,15 +17,13 @@ void DataManager::fillFullTokensColnod(const QString& response) QJsonArray items = doc.object()["items"].toArray(); if (!items.empty()) { - for (QJsonValueRef item : items) - { + for (QJsonValueRef item : items){ auto token = new Token(); token->fromJSON(item.toObject()); allTokensFromColnod.insert(token->idToStringWithoutBraces(), token); } } - else - { + else{ qCritical() << "Colnod is Empty"; auto token = new Token("empty"); allTokensFromColnod.insert(token->idToStringWithoutBraces(), token); @@ -87,7 +85,7 @@ void DataManager::fillTokensToChangeDB() { auto token = new Token; token->fromSQLRecord(query); - if (token->getDeleted()){ // sort to delete and to update + if (token->getDeleted()){ // sort to delete / to update tokensFromDBToDeleteFromColnod.append(token->idToStringWithoutBraces()); } else{ @@ -156,10 +154,14 @@ void DataManager::pushSubjectsToDB() int added = 0; for (const auto& subject : subjectsToUpdateFromColnodToDB) { - if (db->saveSubject(subject, "colnod_subject") > 0) + if (db->saveSubject(subject, "colnod_subject") > 0){ added++; - else + Logger::logToDb(Logger::makeSubjectMsg( subject->idToStringWithoutBraces(),"added", "DB")); + } + else{ updated++; + Logger::logToDb(Logger::makeSubjectMsg( subject->idToStringWithoutBraces(),"updated", "DB")); + } db->saveSubjectAttributes(subject, "colnod_subject_attribute"); } qInfo() << "DB:" << added << "subjects added"; @@ -179,10 +181,14 @@ void DataManager::pushTokensToDB() int added = 0; for (const auto& token : tokensToUpdateFromColnodToDB) { - if (db->saveToken(token, "colnod_token") > 0) + if (db->saveToken(token, "colnod_token") > 0){ added++; - else + Logger::logToDb(Logger::makeTokenMsg(token->idToStringWithoutBraces(), "added", "DB")); + } + else{ updated++; + Logger::logToDb(Logger::makeTokenMsg(token->idToStringWithoutBraces(), "updated", "DB")); + } } qInfo() << "DB:" << added << " tokens added"; qInfo() << "DB:" << updated << " tokens updated"; @@ -199,6 +205,7 @@ void DataManager::deleteSubjectsFromDB() for (const auto& subjectId : subjectsFromColnodToDeleteFromDB) { db->setDeleted(subjectId, "colnod_subject"); + Logger::logToDb(Logger::makeSubjectMsg(subjectId, "deleted", "DB")); } qInfo() << "DB:" << subjectsFromColnodToDeleteFromDB.size() << " subject deleted"; } @@ -216,7 +223,7 @@ void DataManager::setDeletedToTokensFromDB() { if (!db->checkDeletedToken(tokenId)){ db->setDeleted(tokenId, "colnod_token"); - Logger::logToDb(Logger::makeMsg(tokenId, "deleted", "DB")); + Logger::logToDb(Logger::makeTokenMsg(tokenId, "deleted", "DB")); } else alreadyDeleted++; diff --git a/src/colnod/logger.cpp b/src/colnod/logger.cpp index bf9a2b9..d5d6d8b 100644 --- a/src/colnod/logger.cpp +++ b/src/colnod/logger.cpp @@ -31,9 +31,15 @@ void Logger::setDBMan(DatabaseManager *dbMan) Logger::dbMan = dbMan; } -QString Logger::makeMsg(const QString &tokenId, const QString &action, const QString &source) +QString Logger::makeTokenMsg(const QString &tokenId, const QString &action, const QString &source) { - QString msg = QString("Token: %1 of subject: %2 %3. Source: %4").arg(tokenId,dbMan->getSubjectName(tokenId), action, source); + QString msg = QString("Token: %1 of subject: %2 %3. Source: %4").arg(tokenId,dbMan->getSubjectNameByTokenId(tokenId), action, source); + return msg; +} + +QString Logger::makeSubjectMsg(const QString &subjectId, const QString &action, const QString &source) +{ + QString msg = QString("Subject: %1 %2. Source: %3").arg(dbMan->getSubjectNameById(subjectId), action, source); return msg; } diff --git a/src/colnod/logger.h b/src/colnod/logger.h index 06290fe..80931ec 100644 --- a/src/colnod/logger.h +++ b/src/colnod/logger.h @@ -20,7 +20,8 @@ public: static void log(const QString& msg); static void logToDb(const QString& msg); static void setDBMan(DatabaseManager* dbMan); - static QString makeMsg(const QString& tokenId, const QString& action, const QString& source); + static QString makeTokenMsg(const QString& tokenId, const QString& action, const QString& source); + static QString makeSubjectMsg(const QString& subjectId, const QString& action, const QString& source); private: