// SPDX-FileCopyrightText: 2025 Tobias Fella // SPDX-License-Identifier: LGPL-2.0-or-later #include #include struct RoomData { QStringList members; QString id; QStringList tags; }; class Server { public: Server(); void start(); /** * Create a room and place the user with id matrixId in it. * Returns the room's id */ QString createRoom(const QString &matrixId); void inviteUser(const QString &roomId, const QString &matrixId); void banUser(const QString &roomId, const QString &matrixId); void joinUser(const QString &roomId, const QString &matrixId); /** * Create a server notices room. */ QString createServerNoticesRoom(const QString &matrixId); QString sendEvent(const QString &roomId, const QString &eventType, const QJsonObject &content); private: QHttpServer m_server; QSslServer m_sslServer; QHash> m_invitedUsers; QHash> m_bannedUsers; QHash> m_joinedUsers; QList m_roomsToCreate; QMap m_events; };