[Server] Move deck folder writes into the database interface (#7833)

Setting a deck or folder public, creating a folder, and deleting a folder tree were SQL statements in the socket handler. Declare them on Server_DatabaseInterface with a DeckStorageResult so the caller can still tell a missing row from a failed write, implement them in Servatrice_DatabaseInterface with the same statements, and let the three folder commands ask the injected interface. Readiness probing keeps its previous ignore-the-result shape.
This commit is contained in:
BruebachL 2026-11-10 12:16:23 +01:00 • committed by GitHub
parent 8c0e796b0d
commit 23781af1f0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 121 additions and 59 deletions

View file

@ -68,6 +68,7 @@ private:
QString sealLegacyBackup(const QString &storedName, const QString &credential);
bool isStrictModeEnabled(bool &ok) const;
int getDeckPathIdAt(int basePathId, QStringList path, int userId);
void deleteDeckFolderTree(int basePathId);
bool addToList(const QString &table, int userId, int targetId);
bool removeFromList(const QString &table, int userId, int targetId);
@ -124,6 +125,10 @@ public:
int getDeckPathId(const QString &path, int userId) override;
int getDeckOwnerId(int deckId) override;
bool isDeckEffectivelyPublic(int deckId) override;
DeckStorageResult setDeckVisibility(int deckId, int userId, bool isPublic) override;
DeckStorageResult setDeckFolderVisibility(int folderId, int userId, bool isPublic) override;
DeckStorageResult createDeckFolder(int parentId, int userId, const QString &name) override;
void deleteDeckFolder(int folderId) override;
QMap<QString, ServerInfo_User> getBuddyList(const QString &name) override;
QMap<QString, ServerInfo_User> getIgnoreList(const QString &name) override;
bool isInBuddyList(const QString &whoseList, const QString &who) override;