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();
});
});
return QCoreApplication::exec();
}

View File

@ -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";
}

View File

@ -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);

View File

@ -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++;

View File

@ -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;
}

View File

@ -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: