From f55ceebc289a8a1871ca7f2856b941c8d5824832 Mon Sep 17 00:00:00 2001 From: IM23a-cernik Date: Thu, 17 Apr 2025 14:03:15 +0200 Subject: [PATCH] added lobby functionality --- lobby.js | 31 +++++++++++++++++++++++++++++-- swagger.js | 2 +- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/lobby.js b/lobby.js index b34f8b9..54ac2d2 100644 --- a/lobby.js +++ b/lobby.js @@ -2,21 +2,48 @@ const express = require("express"); const app = express(); const port = 3000; +const playerMap = {}; + async function createLobby() { let response = await fetch("https://www.deckofcardsapi.com/api/deck/new/shuffle/?deck_count=1") let data = await response.json(); let lobbyId = data.deck_id + await fetch(`https://www.deckofcardsapi.com/api/deck/${lobbyId}/pile/players/add/?cards=`) console.log(lobbyId); return lobbyId; } -as +async function joinLobby(lobbyId, player_name) { + let response = await fetch(`https://www.deckofcardsapi.com/api/deck/${lobbyId}/pile/${player_name}/add/?cards=`) + console.log(response); +} app.get("/lobby/create", async (req, res) => { let lobbyId = await createLobby(); - res.send("Lobby ID: " + lobbyId); + res.send(lobbyId); }) +app.get("/lobby/join", async (req, res) => { + let lobbyId = req.query.lobbyId; + let name = req.query.name; + + await joinLobby(lobbyId, name); + + if (!playerMap[lobbyId]) { + playerMap[lobbyId] = []; + } + + playerMap[lobbyId].push(name); + + res.send(lobbyId + "" + name); +}); + +app.get("/lobby/players", async (req, res) => { + let lobbyId = req.query.lobbyId; + let players = playerMap[lobbyId] || []; + res.json({ players }); +}); + app.listen(port, () => { console.log("Server is running on port " + port); }); diff --git a/swagger.js b/swagger.js index 89d0c84..e0d4f16 100644 --- a/swagger.js +++ b/swagger.js @@ -17,7 +17,7 @@ const doc = { }; const outputFile = './swagger.json'; -const routes = ['./gambling.js']; +const routes = ['./gambling.js', './lobby.js']; /* NOTE: If you are using the express Router, you must pass in the 'routes' only the root file where the route starts, such as index.js, app.js, routes.js, etc ... */