Fix vote bug
This commit is contained in:
@@ -117,7 +117,7 @@ module.exports = (io) => (socket) => {
|
||||
}
|
||||
});
|
||||
|
||||
socket.on("join-room", ({roomId, name}) => {
|
||||
socket.on("join-room", async ({roomId, name}) => {
|
||||
if (currentRoomId) return socket.emit("already-in-room", currentRoomId);
|
||||
|
||||
roomId = roomId.toString().toUpperCase();
|
||||
@@ -128,14 +128,35 @@ module.exports = (io) => (socket) => {
|
||||
}
|
||||
|
||||
currentUser = {id: socket.id, name: name.toString()};
|
||||
roomController.connectUserToRoom(roomId, currentUser);
|
||||
await roomController.connectUserToRoom(roomId, currentUser);
|
||||
socket.join(roomId);
|
||||
|
||||
const users = roomController.getRoomUsers(roomId);
|
||||
io.to(roomId).emit("room-users-update", users);
|
||||
socket.to(roomId).emit("user-connected", currentUser);
|
||||
|
||||
const votes = roomController.getPlaylistVotes(roomId);
|
||||
const availablePlaylists = roomController.getAvailablePlaylists(roomId);
|
||||
|
||||
socket.emit("room-joined", roomId);
|
||||
socket.emit("room-users", users);
|
||||
socket.emit("playlist-votes-updated", votes);
|
||||
|
||||
try {
|
||||
const details = await youtubeService.getPlaylistDetails(availablePlaylists);
|
||||
Object.keys(details).forEach(genre => {
|
||||
const playlistId = details[genre].id;
|
||||
details[genre].votes = votes[playlistId]?.length || 0;
|
||||
});
|
||||
socket.emit("playlist-options", details);
|
||||
} catch (error) {
|
||||
console.error("Error sending playlist details to new user:", error);
|
||||
socket.emit("error", {
|
||||
message: "Failed to load playlists",
|
||||
details: error.message
|
||||
});
|
||||
}
|
||||
|
||||
socket.to(roomId).emit("user-connected", currentUser);
|
||||
io.to(roomId).emit("room-users-update", users);
|
||||
|
||||
currentRoomId = roomId;
|
||||
} else {
|
||||
socket.emit("room-not-found", roomId);
|
||||
|
Reference in New Issue
Block a user