Ergänze Unterstützung für das Laden von Räumen aus der Datenbank in der createRooms-Methode des SSLServers

- Implementiere eine Fehlerbehandlung, um Räume aus der Datenbank zu laden und bei einem Fehler auf die Konfiguration zurückzugreifen.
- Füge detaillierte Logging-Ausgaben hinzu, um den Prozess des Ladens von Räumen zu verfolgen und die Anzahl der geladenen Räume zu dokumentieren.
This commit is contained in:
Torsten Schulz (local)
2025-09-04 16:55:23 +02:00
parent cf86d2132b
commit 62a5c70c8c

View File

@@ -425,10 +425,35 @@ void SSLServer::broadcastToRoom(const std::string& roomName, const std::string&
} }
void SSLServer::createRooms() { void SSLServer::createRooms() {
// Load rooms from database or config
Json::Value roomList = _config->group("rooms");
std::cout << "[YourChat] createRooms() called" << std::endl; std::cout << "[YourChat] createRooms() called" << std::endl;
// Try to load rooms from database first
try {
Json::Value dbRooms = _database->getRooms();
std::cout << "[YourChat] Database returned " << dbRooms.size() << " rooms" << std::endl;
if (dbRooms.isArray() && dbRooms.size() > 0) {
std::cout << "[YourChat] Loading rooms from database..." << std::endl;
for (const auto& room : dbRooms) {
std::cout << "[YourChat] Database room: " << room << std::endl;
auto newRoom = std::make_shared<ChatRoom>(nullptr, room);
_rooms.push_back(newRoom);
}
std::cout << "[YourChat] Loaded " << _rooms.size() << " rooms from database" << std::endl;
for (const auto& room : _rooms) {
std::cout << "[YourChat] Loaded room: '" << room->name() << "'" << std::endl;
}
return;
} else {
std::cout << "[YourChat] No rooms found in database, falling back to config" << std::endl;
}
} catch (const std::exception& e) {
std::cerr << "[YourChat] Failed to load rooms from database: " << e.what() << std::endl;
std::cout << "[YourChat] Falling back to config..." << std::endl;
}
// Fallback to config
Json::Value roomList = _config->group("rooms");
std::cout << "[YourChat] Config rooms size: " << roomList.size() << std::endl; std::cout << "[YourChat] Config rooms size: " << roomList.size() << std::endl;
if (roomList.isArray() && roomList.size() > 0) { if (roomList.isArray() && roomList.size() > 0) {