diff --git a/src/controllers/api/deleteSessionController.ts b/src/controllers/api/deleteSessionController.ts index 6f5a8bc4..aa98e1d2 100644 --- a/src/controllers/api/deleteSessionController.ts +++ b/src/controllers/api/deleteSessionController.ts @@ -1,8 +1,7 @@ import { RequestHandler } from "express"; -import { deleteSession } from '@/src/managers/sessionManager'; +import { deleteSession } from "@/src/managers/sessionManager"; const deleteSessionController: RequestHandler = (_req, res) => { - //res.json({ sessionId: { $oid: "64768f104722f795300c9fc0" }, rewardSeed: 5867309943877621023 }); deleteSession(_req.query.sessionId as string); res.sendStatus(200); diff --git a/src/controllers/api/findSessionsController.ts b/src/controllers/api/findSessionsController.ts index 1ddd36e7..caa326b9 100644 --- a/src/controllers/api/findSessionsController.ts +++ b/src/controllers/api/findSessionsController.ts @@ -1,42 +1,28 @@ import { RequestHandler } from "express"; -import { getSession } from '@/src/managers/sessionManager'; +import { getSession } from "@/src/managers/sessionManager"; const findSessionsController: RequestHandler = (_req, res) => { - console.log("FindSession Request:", JSON.parse(_req.body)); let r = JSON.parse(_req.body); - if(r != undefined) - { + if (r != undefined) { console.log("Found ID"); let s = getSession(r.id); - - if(s) - res.json({"queryId":r.queryId,"Sessions":s}); - else - res.json({}); - } - else if(r != undefined) - { + + if (s) res.json({ queryId: r.queryId, Sessions: s }); + else res.json({}); + } else if (r != undefined) { console.log("Found OriginalSessionID"); let s = getSession(r.originalSessionId); - if(s) - res.json({"queryId":r.queryId,"Sessions":[s]}); - else - res.json({}); - - } - else - { + if (s) res.json({ queryId: r.queryId, Sessions: [s] }); + else res.json({}); + } else { console.log("Found SessionRequest"); let s = getSession(_req.body); - if(s) - res.json({"queryId":r.queryId,"Sessions":[s]}); - else - res.json({}); + if (s) res.json({ queryId: r.queryId, Sessions: [s] }); + else res.json({}); } - }; export { findSessionsController }; diff --git a/src/controllers/api/getNewRewardSeedController.ts b/src/controllers/api/getNewRewardSeedController.ts index 716bc54b..f420f60f 100644 --- a/src/controllers/api/getNewRewardSeedController.ts +++ b/src/controllers/api/getNewRewardSeedController.ts @@ -8,6 +8,6 @@ function generateRewardSeed(): number { const min = -Number.MAX_SAFE_INTEGER; const max = Number.MAX_SAFE_INTEGER; return Math.floor(Math.random() * (max - min + 1)) + min; - } +} export { getNewRewardSeedController }; diff --git a/src/controllers/api/hostSessionController.ts b/src/controllers/api/hostSessionController.ts index 797ea433..c7ac7cb9 100644 --- a/src/controllers/api/hostSessionController.ts +++ b/src/controllers/api/hostSessionController.ts @@ -1,12 +1,12 @@ import { RequestHandler } from "express"; -import { createNewSession } from '@/src/managers/sessionManager'; +import { createNewSession } from "@/src/managers/sessionManager"; const hostSessionController: RequestHandler = (_req, res) => { console.log("HostSession Request:", JSON.parse(_req.body)); let session = createNewSession(JSON.parse(_req.body), _req.query.accountId as string); console.log("New Session Created: ", session); - res.json({ sessionId: { $oid: session.sessionId }, rewardSeed:99999999 }); + res.json({ sessionId: { $oid: session.sessionId }, rewardSeed: 99999999 }); }; export { hostSessionController }; diff --git a/src/controllers/api/joinSessionController.ts b/src/controllers/api/joinSessionController.ts index 726622f8..0b940eb1 100644 --- a/src/controllers/api/joinSessionController.ts +++ b/src/controllers/api/joinSessionController.ts @@ -1,12 +1,11 @@ import { RequestHandler } from "express"; -import { getSessionByID } from '@/src/managers/sessionManager'; +import { getSessionByID } from "@/src/managers/sessionManager"; const joinSessionController: RequestHandler = (_req, res) => { - console.log("JoinSession Request:", JSON.parse(_req.body)); let r = JSON.parse(_req.body); - let s = getSessionByID(r.sessionIds[0]) - res.json({"rewardSeed":s?.rewardSeed,"sessionId":{"$oid":s?.sessionId}}); + let s = getSessionByID(r.sessionIds[0]); + res.json({ rewardSeed: s?.rewardSeed, sessionId: { $oid: s?.sessionId } }); }; -export { joinSessionController }; \ No newline at end of file +export { joinSessionController }; diff --git a/src/controllers/api/logoutController.ts b/src/controllers/api/logoutController.ts index e41ac656..6dab1cc8 100644 --- a/src/controllers/api/logoutController.ts +++ b/src/controllers/api/logoutController.ts @@ -5,7 +5,7 @@ const logoutController: RequestHandler = (_req, res) => { "Content-Type": "text/html", "Content-Length": 1 }); - res.end("1"); + res.end("1"); }; export { logoutController }; diff --git a/src/controllers/api/updateSessionController.ts b/src/controllers/api/updateSessionController.ts index ddaf901c..e949d83e 100644 --- a/src/controllers/api/updateSessionController.ts +++ b/src/controllers/api/updateSessionController.ts @@ -1,13 +1,13 @@ import { RequestHandler } from "express"; -import { updateSession } from '@/src/managers/sessionManager'; +import { updateSession } from "@/src/managers/sessionManager"; const updateSessionGetController: RequestHandler = (_req, res) => { res.json({}); }; const updateSessionPostController: RequestHandler = (_req, res) => { console.log("UpdateSessions POST Request:", JSON.parse(_req.body)); - console.log("ReqID:",_req.query.sessionId as string) - updateSession(_req.query.sessionId as string, _req.body) + console.log("ReqID:", _req.query.sessionId as string); + updateSession(_req.query.sessionId as string, _req.body); res.json({}); }; export { updateSessionGetController, updateSessionPostController }; diff --git a/src/managers/sessionManager.ts b/src/managers/sessionManager.ts index 24a502cf..ecb163a1 100644 --- a/src/managers/sessionManager.ts +++ b/src/managers/sessionManager.ts @@ -24,134 +24,141 @@ interface Session { freePublic: number; freePrivate: number; fullReset: number; - } - - const sessions: Session[] = []; - - function createNewSession(sessionData: Session, Creator: string): Session { +} + +const sessions: Session[] = []; + +function createNewSession(sessionData: Session, Creator: string): Session { const sessionId = getNewSessionID(); const newSession: Session = { - sessionId, - creatorId: Creator, - maxPlayers: sessionData.maxPlayers || 4, - minPlayers: sessionData.minPlayers || 1, - privateSlots: sessionData.privateSlots || 0, - scoreLimit: sessionData.scoreLimit || 15, - timeLimit: sessionData.timeLimit || 900, - gameModeId: sessionData.gameModeId || 0, - eloRating: sessionData.eloRating || 3, - regionId: sessionData.regionId || 3, - difficulty: sessionData.difficulty || 0, - hasStarted: sessionData.hasStarted || false, - enableVoice: sessionData.enableVoice || true, - matchType: sessionData.matchType || 'NORMAL', - maps: sessionData.maps || [], - originalSessionId: sessionData.originalSessionId || '', - customSettings: sessionData.customSettings || '', - rewardSeed: sessionData.rewardSeed || -1, - guildId: sessionData.guildId || '', - buildId: sessionData.buildId || 4920386201513015989, - platform: sessionData.platform || 0, - xplatform: sessionData.xplatform || true, - freePublic: sessionData.freePublic || 3, - freePrivate: sessionData.freePrivate || 0, - fullReset:0, + sessionId, + creatorId: Creator, + maxPlayers: sessionData.maxPlayers || 4, + minPlayers: sessionData.minPlayers || 1, + privateSlots: sessionData.privateSlots || 0, + scoreLimit: sessionData.scoreLimit || 15, + timeLimit: sessionData.timeLimit || 900, + gameModeId: sessionData.gameModeId || 0, + eloRating: sessionData.eloRating || 3, + regionId: sessionData.regionId || 3, + difficulty: sessionData.difficulty || 0, + hasStarted: sessionData.hasStarted || false, + enableVoice: sessionData.enableVoice || true, + matchType: sessionData.matchType || "NORMAL", + maps: sessionData.maps || [], + originalSessionId: sessionData.originalSessionId || "", + customSettings: sessionData.customSettings || "", + rewardSeed: sessionData.rewardSeed || -1, + guildId: sessionData.guildId || "", + buildId: sessionData.buildId || 4920386201513015989, + platform: sessionData.platform || 0, + xplatform: sessionData.xplatform || true, + freePublic: sessionData.freePublic || 3, + freePrivate: sessionData.freePrivate || 0, + fullReset: 0 }; sessions.push(newSession); return newSession; - } - - function getAllSessions(): Session[] { +} + +function getAllSessions(): Session[] { return sessions; - } - - function getSessionByID(sessionId: string): Session | undefined { +} + +function getSessionByID(sessionId: string): Session | undefined { return sessions.find(session => session.sessionId === sessionId); - } +} - - interface FindSessionRequest { +interface FindSessionRequest { [key: string]: any; - } - - function getSession(sessionIdOrRequest: string | FindSessionRequest): any[] { - if (typeof sessionIdOrRequest === 'string') { - const session = sessions.find(session => session.sessionId === sessionIdOrRequest); - if (session) { - console.log("Found Sessions:",session) - return [ - { - createdBy: session.creatorId, - id: session.sessionId, - }, - ]; - } - return []; - } else { - const request = sessionIdOrRequest as FindSessionRequest; - const matchingSessions = sessions.filter(session => { - for (const key in request) { - if (key !== 'eloRating' && key !== 'queryId' && request[key] !== session[key as keyof Session]) { - return false; - } - } - console.log("Found Matching Sessions:",matchingSessions) - return true; - }); - return matchingSessions.map(session => ({ - createdBy: session.creatorId, - id: session.sessionId, - })); - } - } +} - function getSessionByCreatorID(creatorId: string): Session | undefined { - return sessions.find(session => session.creatorId === creatorId); - } - - function getNewSessionID(): string { - const characters = '0123456789abcdef'; - const maxAttempts = 100; - let sessionId = ''; - - for (let attempt = 0; attempt < maxAttempts; attempt++) { - sessionId = '64'; - for (let i = 0; i < 22; i++) { - const randomIndex = Math.floor(Math.random() * characters.length); - sessionId += characters[randomIndex]; - } - - if (!sessions.some(session => session.sessionId === sessionId)) { - return sessionId; - } +function getSession(sessionIdOrRequest: string | FindSessionRequest): any[] { + if (typeof sessionIdOrRequest === "string") { + const session = sessions.find(session => session.sessionId === sessionIdOrRequest); + if (session) { + console.log("Found Sessions:", session); + return [ + { + createdBy: session.creatorId, + id: session.sessionId + } + ]; + } + return []; + } else { + const request = sessionIdOrRequest as FindSessionRequest; + const matchingSessions = sessions.filter(session => { + for (const key in request) { + if (key !== "eloRating" && key !== "queryId" && request[key] !== session[key as keyof Session]) { + return false; + } + } + console.log("Found Matching Sessions:", matchingSessions); + return true; + }); + return matchingSessions.map(session => ({ + createdBy: session.creatorId, + id: session.sessionId + })); } - - throw new Error('Failed to generate a unique session ID'); - } - - function updateSession(sessionId: string, sessionData: string): boolean { +} + +function getSessionByCreatorID(creatorId: string): Session | undefined { + return sessions.find(session => session.creatorId === creatorId); +} + +function getNewSessionID(): string { + const characters = "0123456789abcdef"; + const maxAttempts = 100; + let sessionId = ""; + + for (let attempt = 0; attempt < maxAttempts; attempt++) { + sessionId = "64"; + for (let i = 0; i < 22; i++) { + const randomIndex = Math.floor(Math.random() * characters.length); + sessionId += characters[randomIndex]; + } + + if (!sessions.some(session => session.sessionId === sessionId)) { + return sessionId; + } + } + + throw new Error("Failed to generate a unique session ID"); +} + +function updateSession(sessionId: string, sessionData: string): boolean { const session = sessions.find(session => session.sessionId === sessionId); if (session) { - try { - const updatedData = JSON.parse(sessionData); - Object.assign(session, updatedData); - return true; - } catch (error) { - console.error('Invalid JSON string for session update.'); - return false; - } + try { + const updatedData = JSON.parse(sessionData); + Object.assign(session, updatedData); + return true; + } catch (error) { + console.error("Invalid JSON string for session update."); + return false; + } } return false; - } - - function deleteSession(sessionId: string): boolean { +} + +function deleteSession(sessionId: string): boolean { const index = sessions.findIndex(session => session.sessionId === sessionId); if (index !== -1) { - sessions.splice(index, 1); - return true; + sessions.splice(index, 1); + return true; } return false; - } - - export { createNewSession, getAllSessions, getSessionByID, getSessionByCreatorID, getNewSessionID, updateSession, deleteSession, getSession }; - \ No newline at end of file +} + +export { + createNewSession, + getAllSessions, + getSessionByID, + getSessionByCreatorID, + getNewSessionID, + updateSession, + deleteSession, + getSession +};