From e315cd57f4bf0640852951cb582e6c96d50274f9 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sat, 10 Jun 2023 03:10:59 +0200 Subject: [PATCH] Created the room.js controller --- server/controller/room.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 server/controller/room.js diff --git a/server/controller/room.js b/server/controller/room.js new file mode 100644 index 0000000..a289747 --- /dev/null +++ b/server/controller/room.js @@ -0,0 +1,30 @@ +let rooms = {}; + +module.exports.roomExists = (roomId) => rooms[roomId] !== undefined; + +module.exports.connectUserToRoom = (roomId, user) => { + if (rooms[roomId]) { + rooms[roomId].members.push({...user, creator: false}); + } else { + rooms[roomId] = {members: [{...user, creator: true}], settings: {}}; + } + console.log(JSON.stringify(rooms)); +} + +module.exports.disconnectUser = (userId) => { + for (const roomId in rooms) { + const room = rooms[roomId]; + const memberIndex = room.members.findIndex(member => member.id === userId); + + if (memberIndex !== -1) { + if (room.members[memberIndex].creator) { + if (room.members.length > 1) room.members[1].creator = true; + } + + room.members.splice(memberIndex, 1); + if (room.members.length === 0) delete rooms[roomId]; + + break; + } + } +} \ No newline at end of file