diff --git a/generate_secret.js b/generate_secret.js deleted file mode 100644 index 2293b89..0000000 --- a/generate_secret.js +++ /dev/null @@ -1,5 +0,0 @@ -const crypto = require("crypto"); - -const secret = crypto.randomBytes(64).toString('hex') - -console.log(secret) \ No newline at end of file diff --git a/lobby.js b/lobby.js index 983db7d..a0464c6 100644 --- a/lobby.js +++ b/lobby.js @@ -1,20 +1,76 @@ const express = require("express"); +const path = require("path"); +const fs = require("fs"); 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; } +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; + + const users = get_data(); + const user = (users.find(u => u.username === name)) + if (!user) { + res.sendStatus(401).json({ error: "User doesnt exist are required" }); + } + + await joinLobby(lobbyId, user.username); + + 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 }); +}); + +function get_data() { + const dataPath = path.join(__dirname, "data.json"); + if (!fs.existsSync(dataPath)) { + fs.writeFileSync(dataPath, JSON.stringify([])); + } + const data = fs.readFileSync(dataPath); + return JSON.parse(data); +} + +function save_data(data) { + fs.writeFileSync(path.join(__dirname, "data.json"), JSON.stringify(data, null, 2)); +} + +function saveUser(user) { + const users = get_data(); + users.push(user); + save_data(users); +} + 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 ... */