Logs to db first version

This commit is contained in:
Ondřej Fischer 2019-10-30 14:31:10 +01:00
parent ba1315d1da
commit 31183087c2
6 changed files with 44 additions and 21 deletions

View File

@ -25,7 +25,5 @@ int main(int argc, char *argv[])
QCoreApplication::exit(); QCoreApplication::exit();
}); });
}); });
return QCoreApplication::exec(); return QCoreApplication::exec();
} }

View File

@ -156,7 +156,7 @@ void DatabaseManager::executeNonPreperedQuery(const QString &statement, QSqlQuer
if (dryMode){ if (dryMode){
QString sqlStatement = getLastQuery(query); QString sqlStatement = getLastQuery(query);
qDebug() << sqlStatement; qDebug() << sqlStatement;
if (statement.contains("SELECT")) if (statement.startsWith("SELECT"))
query.exec(statement); query.exec(statement);
} }
else{ else{
@ -164,13 +164,12 @@ void DatabaseManager::executeNonPreperedQuery(const QString &statement, QSqlQuer
} }
} }
bool DatabaseManager::executeQuery(QSqlQuery &query) const bool DatabaseManager::executeQuery(QSqlQuery &query) const
{ {
if (dryMode){ if (dryMode){
QString sqlStatement = getLastQuery(query); QString sqlStatement = getLastQuery(query);
qDebug() << sqlStatement; qDebug() << sqlStatement;
if (sqlStatement.contains("SELECT")) if (sqlStatement.startsWith("SELECT"))
query.exec(); query.exec();
return true; return true;
} }
@ -278,14 +277,25 @@ void DatabaseManager::log(const QString &msg)
query.exec(); 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.prepare("SELECT name FROM colnod_subject WHERE id = (SELECT subject_id FROM colnod_token WHERE id = :tokenId)");
query.bindValue(":tokenId", tokenId); query.bindValue(":tokenId", tokenId);
executeQuery(query); executeQuery(query);
if (query.next()) if (query.next())
return query.value(0).toString(); 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"; return "No Subject";
} }

View File

@ -37,7 +37,8 @@ public:
void setLastUpdate(const QString& id, quint64 lastUpdate); void setLastUpdate(const QString& id, quint64 lastUpdate);
void log(const QString &msg); 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); bool checkDeletedToken(const QString &id);

View File

@ -17,15 +17,13 @@ void DataManager::fillFullTokensColnod(const QString& response)
QJsonArray items = doc.object()["items"].toArray(); QJsonArray items = doc.object()["items"].toArray();
if (!items.empty()) if (!items.empty())
{ {
for (QJsonValueRef item : items) for (QJsonValueRef item : items){
{
auto token = new Token(); auto token = new Token();
token->fromJSON(item.toObject()); token->fromJSON(item.toObject());
allTokensFromColnod.insert(token->idToStringWithoutBraces(), token); allTokensFromColnod.insert(token->idToStringWithoutBraces(), token);
} }
} }
else else{
{
qCritical() << "Colnod is Empty"; qCritical() << "Colnod is Empty";
auto token = new Token("empty"); auto token = new Token("empty");
allTokensFromColnod.insert(token->idToStringWithoutBraces(), token); allTokensFromColnod.insert(token->idToStringWithoutBraces(), token);
@ -87,7 +85,7 @@ void DataManager::fillTokensToChangeDB()
{ {
auto token = new Token; auto token = new Token;
token->fromSQLRecord(query); token->fromSQLRecord(query);
if (token->getDeleted()){ // sort to delete and to update if (token->getDeleted()){ // sort to delete / to update
tokensFromDBToDeleteFromColnod.append(token->idToStringWithoutBraces()); tokensFromDBToDeleteFromColnod.append(token->idToStringWithoutBraces());
} }
else{ else{
@ -156,10 +154,14 @@ void DataManager::pushSubjectsToDB()
int added = 0; int added = 0;
for (const auto& subject : subjectsToUpdateFromColnodToDB) for (const auto& subject : subjectsToUpdateFromColnodToDB)
{ {
if (db->saveSubject(subject, "colnod_subject") > 0) if (db->saveSubject(subject, "colnod_subject") > 0){
added++; added++;
else Logger::logToDb(Logger::makeSubjectMsg( subject->idToStringWithoutBraces(),"added", "DB"));
}
else{
updated++; updated++;
Logger::logToDb(Logger::makeSubjectMsg( subject->idToStringWithoutBraces(),"updated", "DB"));
}
db->saveSubjectAttributes(subject, "colnod_subject_attribute"); db->saveSubjectAttributes(subject, "colnod_subject_attribute");
} }
qInfo() << "DB:" << added << "subjects added"; qInfo() << "DB:" << added << "subjects added";
@ -179,10 +181,14 @@ void DataManager::pushTokensToDB()
int added = 0; int added = 0;
for (const auto& token : tokensToUpdateFromColnodToDB) for (const auto& token : tokensToUpdateFromColnodToDB)
{ {
if (db->saveToken(token, "colnod_token") > 0) if (db->saveToken(token, "colnod_token") > 0){
added++; added++;
else Logger::logToDb(Logger::makeTokenMsg(token->idToStringWithoutBraces(), "added", "DB"));
}
else{
updated++; updated++;
Logger::logToDb(Logger::makeTokenMsg(token->idToStringWithoutBraces(), "updated", "DB"));
}
} }
qInfo() << "DB:" << added << " tokens added"; qInfo() << "DB:" << added << " tokens added";
qInfo() << "DB:" << updated << " tokens updated"; qInfo() << "DB:" << updated << " tokens updated";
@ -199,6 +205,7 @@ void DataManager::deleteSubjectsFromDB()
for (const auto& subjectId : subjectsFromColnodToDeleteFromDB) for (const auto& subjectId : subjectsFromColnodToDeleteFromDB)
{ {
db->setDeleted(subjectId, "colnod_subject"); db->setDeleted(subjectId, "colnod_subject");
Logger::logToDb(Logger::makeSubjectMsg(subjectId, "deleted", "DB"));
} }
qInfo() << "DB:" << subjectsFromColnodToDeleteFromDB.size() << " subject deleted"; qInfo() << "DB:" << subjectsFromColnodToDeleteFromDB.size() << " subject deleted";
} }
@ -216,7 +223,7 @@ void DataManager::setDeletedToTokensFromDB()
{ {
if (!db->checkDeletedToken(tokenId)){ if (!db->checkDeletedToken(tokenId)){
db->setDeleted(tokenId, "colnod_token"); db->setDeleted(tokenId, "colnod_token");
Logger::logToDb(Logger::makeMsg(tokenId, "deleted", "DB")); Logger::logToDb(Logger::makeTokenMsg(tokenId, "deleted", "DB"));
} }
else else
alreadyDeleted++; alreadyDeleted++;

View File

@ -31,9 +31,15 @@ void Logger::setDBMan(DatabaseManager *dbMan)
Logger::dbMan = 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; return msg;
} }

View File

@ -20,7 +20,8 @@ public:
static void log(const QString& msg); static void log(const QString& msg);
static void logToDb(const QString& msg); static void logToDb(const QString& msg);
static void setDBMan(DatabaseManager* dbMan); 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: private: