diff options
Diffstat (limited to 'lib/database.cpp')
-rw-r--r-- | lib/database.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/database.cpp b/lib/database.cpp index 41e62935..665b931a 100644 --- a/lib/database.cpp +++ b/lib/database.cpp @@ -14,8 +14,6 @@ #include "e2ee/qolmsession.h" #include "e2ee/qolminboundsession.h" -//TODO: delete room specific data when leaving room - using namespace Quotient; Database::Database(const QString& matrixId, QObject* parent) : QObject(parent) @@ -229,3 +227,15 @@ QSqlQuery Database::prepareQuery(const QString& queryString) query.prepare(queryString); return query; } + +void Database::clearRoomData(const QString& roomId) +{ + auto query = prepareQuery(QStringLiteral("DELETE FROM inbound_megolm_sessions WHERE roomId=:roomId;")); + auto query2 = prepareQuery(QStringLiteral("DELETE FROM outbound_megolm_sessions WHERE roomId=:roomId;")); + auto query3 = prepareQuery(QStringLiteral("DELETE FROM group_session_record_index WHERE roomId=:roomId;")); + transaction(); + execute(query); + execute(query2); + execute(query3); + commit(); +} |