File indexing completed on 2025-03-16 13:27:30
0001 /* 0002 SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "localdatabaseutils.h" 0008 0009 #include <QDateTime> 0010 #include <QStandardPaths> 0011 0012 QString LocalDatabaseUtils::fixRoomName(QString roomName) 0013 { 0014 roomName.remove(QLatin1Char('/')); 0015 roomName.remove(QLatin1Char(':')); 0016 return roomName; 0017 } 0018 0019 QString LocalDatabaseUtils::localMessageLoggerPath() 0020 { 0021 return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + QStringLiteral("/logs/"); 0022 } 0023 0024 QString LocalDatabaseUtils::localDatabasePath() 0025 { 0026 return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + QStringLiteral("/database/"); 0027 } 0028 0029 QString LocalDatabaseUtils::localMessagesDatabasePath() 0030 { 0031 return LocalDatabaseUtils::localDatabasePath() + LocalDatabaseUtils::databasePath(LocalDatabaseUtils::DatabasePath::Messages); 0032 } 0033 0034 QString LocalDatabaseUtils::localRoomsDatabasePath() 0035 { 0036 return LocalDatabaseUtils::localDatabasePath() + LocalDatabaseUtils::databasePath(LocalDatabaseUtils::DatabasePath::Rooms); 0037 } 0038 0039 QString LocalDatabaseUtils::localAccountDatabasePath() 0040 { 0041 return LocalDatabaseUtils::localDatabasePath() + LocalDatabaseUtils::databasePath(LocalDatabaseUtils::DatabasePath::Account); 0042 } 0043 0044 QString LocalDatabaseUtils::localGlobalDatabasePath() 0045 { 0046 return LocalDatabaseUtils::localDatabasePath() + LocalDatabaseUtils::databasePath(LocalDatabaseUtils::DatabasePath::Global); 0047 } 0048 0049 QString LocalDatabaseUtils::databasePath(LocalDatabaseUtils::DatabasePath pathType) 0050 { 0051 switch (pathType) { 0052 case LocalDatabaseUtils::DatabasePath::Messages: 0053 return QStringLiteral("messages/"); 0054 case LocalDatabaseUtils::DatabasePath::Rooms: 0055 return QStringLiteral("rooms/"); 0056 case LocalDatabaseUtils::DatabasePath::Account: 0057 return QStringLiteral("account/"); 0058 case LocalDatabaseUtils::DatabasePath::Global: 0059 return QStringLiteral("global/"); 0060 } 0061 Q_UNREACHABLE(); 0062 return {}; 0063 } 0064 0065 QString LocalDatabaseUtils::deleteMessage() 0066 { 0067 return QStringLiteral("DELETE FROM MESSAGES WHERE messageId = ?"); 0068 } 0069 0070 QString LocalDatabaseUtils::insertReplaceMessages() 0071 { 0072 return QStringLiteral("INSERT OR REPLACE INTO MESSAGES VALUES (?, ?, ?)"); 0073 } 0074 0075 QString LocalDatabaseUtils::deleteRooms() 0076 { 0077 return QStringLiteral("DELETE FROM ROOMS WHERE roomId = ?"); 0078 } 0079 0080 QString LocalDatabaseUtils::insertReplaceRoom() 0081 { 0082 return QStringLiteral("INSERT OR REPLACE INTO ROOMS VALUES (?, ?, ?)"); 0083 } 0084 0085 QString LocalDatabaseUtils::deleteAccount() 0086 { 0087 return QStringLiteral("DELETE FROM ACCOUNT WHERE accountName = ?"); 0088 } 0089 0090 QString LocalDatabaseUtils::updateAccount() 0091 { 0092 return QStringLiteral("INSERT OR REPLACE INTO ACCOUNT VALUES (?, ?)"); 0093 } 0094 0095 QString LocalDatabaseUtils::insertReplaceGlobal() 0096 { 0097 return QStringLiteral("INSERT OR REPLACE INTO GLOBAL VALUES (?, ?)"); 0098 } 0099 0100 QString LocalDatabaseUtils::deleteMessageFromLogs() 0101 { 0102 return QStringLiteral("DELETE FROM LOGS WHERE messageId = ?"); 0103 } 0104 0105 QString LocalDatabaseUtils::insertReplaceMessageFromLogs() 0106 { 0107 return QStringLiteral("INSERT OR REPLACE INTO LOGS VALUES (?, ?, ?, ?)"); 0108 } 0109 0110 qint64 LocalDatabaseUtils::currentTimeStamp() 0111 { 0112 return QDateTime::currentDateTimeUtc().toMSecsSinceEpoch(); 0113 }