diff --git a/src/core/ssl_server.cpp b/src/core/ssl_server.cpp index cefd9ae..28e656c 100644 --- a/src/core/ssl_server.cpp +++ b/src/core/ssl_server.cpp @@ -425,10 +425,35 @@ void SSLServer::broadcastToRoom(const std::string& roomName, const std::string& } void SSLServer::createRooms() { - // Load rooms from database or config - Json::Value roomList = _config->group("rooms"); - 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(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; if (roomList.isArray() && roomList.size() > 0) {