File indexing completed on 2024-05-12 05:02:00

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 }