From 02978ce4041190ffeed4834b840aa0410f78fc39 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Sat, 13 Dec 2014 18:43:31 +0100 Subject: [PATCH] Implement the logging method --- common/server_database_interface.h | 3 +++ .../src/servatrice_database_interface.cpp | 27 +++++++++++++++++++ .../src/servatrice_database_interface.h | 2 ++ 3 files changed, 32 insertions(+) diff --git a/common/server_database_interface.h b/common/server_database_interface.h index a08e9526..690d09f8 100644 --- a/common/server_database_interface.h +++ b/common/server_database_interface.h @@ -35,6 +35,9 @@ public: virtual bool userSessionExists(const QString & /* userName */) { return false; } virtual bool getRequireRegistration() { return false; } + + enum LogMessage_TargetType { MessageTargetRoom, MessageTargetGame, MessageTargetChat }; + virtual void logMessage(const int senderId, const QString &senderName, const QString &senderIp, const QString &logMessage, LogMessage_TargetType targetType, const int targetId, const QString &targetName) { }; }; #endif diff --git a/servatrice/src/servatrice_database_interface.cpp b/servatrice/src/servatrice_database_interface.cpp index a8c27e09..38ea25b0 100644 --- a/servatrice/src/servatrice_database_interface.cpp +++ b/servatrice/src/servatrice_database_interface.cpp @@ -538,3 +538,30 @@ DeckList *Servatrice_DatabaseInterface::getDeckFromDatabase(int deckId, int user return deck; } + +void Servatrice_DatabaseInterface::logMessage(const int senderId, const QString &senderName, const QString &senderIp, const QString &logMessage, LogMessage_TargetType targetType, const int targetId, const QString &targetName) +{ + QSqlQuery query(sqlDatabase); + QString targetTypeString; + switch(targetType) + { + case MessageTargetRoom: + targetTypeString = "room"; + break; + case MessageTargetGame: + targetTypeString = "game"; + break; + case MessageTargetChat: + targetTypeString = "chat"; + break; + } + query.prepare("insert into " + server->getDbPrefix() + "_log (log_time, sender_id, sender_name, sender_ip, log_message, target_type, target_id, target_name) values (now(), :sender_id, :sender_name, :sender_ip, :log_message, :target_type, :target_id, :target_name)"); + query.bindValue(":sender_id", senderId); + query.bindValue(":sender_name", senderName); + query.bindValue(":sender_ip", senderIp); + query.bindValue(":log_message", logMessage); + query.bindValue(":target_type", targetTypeString); + query.bindValue(":target_id", targetId); + query.bindValue(":target_name", targetName); + execSqlQuery(query); +} diff --git a/servatrice/src/servatrice_database_interface.h b/servatrice/src/servatrice_database_interface.h index 8e8ab5c6..9488ded8 100644 --- a/servatrice/src/servatrice_database_interface.h +++ b/servatrice/src/servatrice_database_interface.h @@ -52,6 +52,8 @@ public: bool userSessionExists(const QString &userName); bool getRequireRegistration(); + + void logMessage(const int senderId, const QString &senderName, const QString &senderIp, const QString &logMessage, LogMessage_TargetType targetType, const int targetId, const QString &targetName); }; #endif