This commit is contained in:
AKCore 2023-06-03 17:55:19 -07:00
parent 2881446670
commit 8996ba8e1c
8 changed files with 142 additions and 151 deletions

View File

@ -1,8 +1,7 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { deleteSession } from '@/src/managers/sessionManager'; import { deleteSession } from "@/src/managers/sessionManager";
const deleteSessionController: RequestHandler = (_req, res) => { const deleteSessionController: RequestHandler = (_req, res) => {
//res.json({ sessionId: { $oid: "64768f104722f795300c9fc0" }, rewardSeed: 5867309943877621023 }); //res.json({ sessionId: { $oid: "64768f104722f795300c9fc0" }, rewardSeed: 5867309943877621023 });
deleteSession(_req.query.sessionId as string); deleteSession(_req.query.sessionId as string);
res.sendStatus(200); res.sendStatus(200);

View File

@ -1,42 +1,28 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { getSession } from '@/src/managers/sessionManager'; import { getSession } from "@/src/managers/sessionManager";
const findSessionsController: RequestHandler = (_req, res) => { const findSessionsController: RequestHandler = (_req, res) => {
console.log("FindSession Request:", JSON.parse(_req.body)); console.log("FindSession Request:", JSON.parse(_req.body));
let r = JSON.parse(_req.body); let r = JSON.parse(_req.body);
if(r != undefined) if (r != undefined) {
{
console.log("Found ID"); console.log("Found ID");
let s = getSession(r.id); let s = getSession(r.id);
if(s) if (s) res.json({ queryId: r.queryId, Sessions: s });
res.json({"queryId":r.queryId,"Sessions":s}); else res.json({});
else } else if (r != undefined) {
res.json({});
}
else if(r != undefined)
{
console.log("Found OriginalSessionID"); console.log("Found OriginalSessionID");
let s = getSession(r.originalSessionId); let s = getSession(r.originalSessionId);
if(s) if (s) res.json({ queryId: r.queryId, Sessions: [s] });
res.json({"queryId":r.queryId,"Sessions":[s]}); else res.json({});
else } else {
res.json({});
}
else
{
console.log("Found SessionRequest"); console.log("Found SessionRequest");
let s = getSession(_req.body); let s = getSession(_req.body);
if(s) if (s) res.json({ queryId: r.queryId, Sessions: [s] });
res.json({"queryId":r.queryId,"Sessions":[s]}); else res.json({});
else
res.json({});
} }
}; };
export { findSessionsController }; export { findSessionsController };

View File

@ -8,6 +8,6 @@ function generateRewardSeed(): number {
const min = -Number.MAX_SAFE_INTEGER; const min = -Number.MAX_SAFE_INTEGER;
const max = Number.MAX_SAFE_INTEGER; const max = Number.MAX_SAFE_INTEGER;
return Math.floor(Math.random() * (max - min + 1)) + min; return Math.floor(Math.random() * (max - min + 1)) + min;
} }
export { getNewRewardSeedController }; export { getNewRewardSeedController };

View File

@ -1,12 +1,12 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { createNewSession } from '@/src/managers/sessionManager'; import { createNewSession } from "@/src/managers/sessionManager";
const hostSessionController: RequestHandler = (_req, res) => { const hostSessionController: RequestHandler = (_req, res) => {
console.log("HostSession Request:", JSON.parse(_req.body)); console.log("HostSession Request:", JSON.parse(_req.body));
let session = createNewSession(JSON.parse(_req.body), _req.query.accountId as string); let session = createNewSession(JSON.parse(_req.body), _req.query.accountId as string);
console.log("New Session Created: ", session); console.log("New Session Created: ", session);
res.json({ sessionId: { $oid: session.sessionId }, rewardSeed:99999999 }); res.json({ sessionId: { $oid: session.sessionId }, rewardSeed: 99999999 });
}; };
export { hostSessionController }; export { hostSessionController };

View File

@ -1,12 +1,11 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { getSessionByID } from '@/src/managers/sessionManager'; import { getSessionByID } from "@/src/managers/sessionManager";
const joinSessionController: RequestHandler = (_req, res) => { const joinSessionController: RequestHandler = (_req, res) => {
console.log("JoinSession Request:", JSON.parse(_req.body)); console.log("JoinSession Request:", JSON.parse(_req.body));
let r = JSON.parse(_req.body); let r = JSON.parse(_req.body);
let s = getSessionByID(r.sessionIds[0]) let s = getSessionByID(r.sessionIds[0]);
res.json({"rewardSeed":s?.rewardSeed,"sessionId":{"$oid":s?.sessionId}}); res.json({ rewardSeed: s?.rewardSeed, sessionId: { $oid: s?.sessionId } });
}; };
export { joinSessionController }; export { joinSessionController };

View File

@ -1,13 +1,13 @@
import { RequestHandler } from "express"; import { RequestHandler } from "express";
import { updateSession } from '@/src/managers/sessionManager'; import { updateSession } from "@/src/managers/sessionManager";
const updateSessionGetController: RequestHandler = (_req, res) => { const updateSessionGetController: RequestHandler = (_req, res) => {
res.json({}); res.json({});
}; };
const updateSessionPostController: RequestHandler = (_req, res) => { const updateSessionPostController: RequestHandler = (_req, res) => {
console.log("UpdateSessions POST Request:", JSON.parse(_req.body)); console.log("UpdateSessions POST Request:", JSON.parse(_req.body));
console.log("ReqID:",_req.query.sessionId as string) console.log("ReqID:", _req.query.sessionId as string);
updateSession(_req.query.sessionId as string, _req.body) updateSession(_req.query.sessionId as string, _req.body);
res.json({}); res.json({});
}; };
export { updateSessionGetController, updateSessionPostController }; export { updateSessionGetController, updateSessionPostController };

View File

@ -24,11 +24,11 @@ interface Session {
freePublic: number; freePublic: number;
freePrivate: number; freePrivate: number;
fullReset: number; fullReset: number;
} }
const sessions: Session[] = []; const sessions: Session[] = [];
function createNewSession(sessionData: Session, Creator: string): Session { function createNewSession(sessionData: Session, Creator: string): Session {
const sessionId = getNewSessionID(); const sessionId = getNewSessionID();
const newSession: Session = { const newSession: Session = {
sessionId, sessionId,
@ -44,46 +44,45 @@ interface Session {
difficulty: sessionData.difficulty || 0, difficulty: sessionData.difficulty || 0,
hasStarted: sessionData.hasStarted || false, hasStarted: sessionData.hasStarted || false,
enableVoice: sessionData.enableVoice || true, enableVoice: sessionData.enableVoice || true,
matchType: sessionData.matchType || 'NORMAL', matchType: sessionData.matchType || "NORMAL",
maps: sessionData.maps || [], maps: sessionData.maps || [],
originalSessionId: sessionData.originalSessionId || '', originalSessionId: sessionData.originalSessionId || "",
customSettings: sessionData.customSettings || '', customSettings: sessionData.customSettings || "",
rewardSeed: sessionData.rewardSeed || -1, rewardSeed: sessionData.rewardSeed || -1,
guildId: sessionData.guildId || '', guildId: sessionData.guildId || "",
buildId: sessionData.buildId || 4920386201513015989, buildId: sessionData.buildId || 4920386201513015989,
platform: sessionData.platform || 0, platform: sessionData.platform || 0,
xplatform: sessionData.xplatform || true, xplatform: sessionData.xplatform || true,
freePublic: sessionData.freePublic || 3, freePublic: sessionData.freePublic || 3,
freePrivate: sessionData.freePrivate || 0, freePrivate: sessionData.freePrivate || 0,
fullReset:0, fullReset: 0
}; };
sessions.push(newSession); sessions.push(newSession);
return newSession; return newSession;
} }
function getAllSessions(): Session[] { function getAllSessions(): Session[] {
return sessions; return sessions;
} }
function getSessionByID(sessionId: string): Session | undefined { function getSessionByID(sessionId: string): Session | undefined {
return sessions.find(session => session.sessionId === sessionId); return sessions.find(session => session.sessionId === sessionId);
} }
interface FindSessionRequest {
interface FindSessionRequest {
[key: string]: any; [key: string]: any;
} }
function getSession(sessionIdOrRequest: string | FindSessionRequest): any[] { function getSession(sessionIdOrRequest: string | FindSessionRequest): any[] {
if (typeof sessionIdOrRequest === 'string') { if (typeof sessionIdOrRequest === "string") {
const session = sessions.find(session => session.sessionId === sessionIdOrRequest); const session = sessions.find(session => session.sessionId === sessionIdOrRequest);
if (session) { if (session) {
console.log("Found Sessions:",session) console.log("Found Sessions:", session);
return [ return [
{ {
createdBy: session.creatorId, createdBy: session.creatorId,
id: session.sessionId, id: session.sessionId
}, }
]; ];
} }
return []; return [];
@ -91,31 +90,31 @@ interface Session {
const request = sessionIdOrRequest as FindSessionRequest; const request = sessionIdOrRequest as FindSessionRequest;
const matchingSessions = sessions.filter(session => { const matchingSessions = sessions.filter(session => {
for (const key in request) { for (const key in request) {
if (key !== 'eloRating' && key !== 'queryId' && request[key] !== session[key as keyof Session]) { if (key !== "eloRating" && key !== "queryId" && request[key] !== session[key as keyof Session]) {
return false; return false;
} }
} }
console.log("Found Matching Sessions:",matchingSessions) console.log("Found Matching Sessions:", matchingSessions);
return true; return true;
}); });
return matchingSessions.map(session => ({ return matchingSessions.map(session => ({
createdBy: session.creatorId, createdBy: session.creatorId,
id: session.sessionId, id: session.sessionId
})); }));
} }
} }
function getSessionByCreatorID(creatorId: string): Session | undefined { function getSessionByCreatorID(creatorId: string): Session | undefined {
return sessions.find(session => session.creatorId === creatorId); return sessions.find(session => session.creatorId === creatorId);
} }
function getNewSessionID(): string { function getNewSessionID(): string {
const characters = '0123456789abcdef'; const characters = "0123456789abcdef";
const maxAttempts = 100; const maxAttempts = 100;
let sessionId = ''; let sessionId = "";
for (let attempt = 0; attempt < maxAttempts; attempt++) { for (let attempt = 0; attempt < maxAttempts; attempt++) {
sessionId = '64'; sessionId = "64";
for (let i = 0; i < 22; i++) { for (let i = 0; i < 22; i++) {
const randomIndex = Math.floor(Math.random() * characters.length); const randomIndex = Math.floor(Math.random() * characters.length);
sessionId += characters[randomIndex]; sessionId += characters[randomIndex];
@ -126,10 +125,10 @@ interface Session {
} }
} }
throw new Error('Failed to generate a unique session ID'); throw new Error("Failed to generate a unique session ID");
} }
function updateSession(sessionId: string, sessionData: string): boolean { function updateSession(sessionId: string, sessionData: string): boolean {
const session = sessions.find(session => session.sessionId === sessionId); const session = sessions.find(session => session.sessionId === sessionId);
if (session) { if (session) {
try { try {
@ -137,21 +136,29 @@ interface Session {
Object.assign(session, updatedData); Object.assign(session, updatedData);
return true; return true;
} catch (error) { } catch (error) {
console.error('Invalid JSON string for session update.'); console.error("Invalid JSON string for session update.");
return false; return false;
} }
} }
return false; return false;
} }
function deleteSession(sessionId: string): boolean { function deleteSession(sessionId: string): boolean {
const index = sessions.findIndex(session => session.sessionId === sessionId); const index = sessions.findIndex(session => session.sessionId === sessionId);
if (index !== -1) { if (index !== -1) {
sessions.splice(index, 1); sessions.splice(index, 1);
return true; return true;
} }
return false; return false;
} }
export { createNewSession, getAllSessions, getSessionByID, getSessionByCreatorID, getNewSessionID, updateSession, deleteSession, getSession };
export {
createNewSession,
getAllSessions,
getSessionByID,
getSessionByCreatorID,
getNewSessionID,
updateSession,
deleteSession,
getSession
};