From c4e399d3d483252dd232e6ed2e102f6cfc5a7c82 Mon Sep 17 00:00:00 2001 From: Halit Aksoy Date: Sat, 30 Jul 2022 16:14:37 +0300 Subject: [PATCH] add game id route --- src/index.ts | 2 +- src/server/ExpressApp.ts | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index eb86d54..e5d51e7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,7 +11,7 @@ const gameStore = new GameStoreImpl(); const matchMaker = new MatchMakerImpl({ rtmt }); const gameManager = new GameManager({ rtmt, gameStore, matchMaker }) -const expressApp = new ExpressApp(); +const expressApp = new ExpressApp({ gameStore }); const server = new WebServer({ expressApp: expressApp.app }); rtmt.initWebSocket(server.server, (userKey: string) => gameManager.fireOnPlayerConnected(userKey)); diff --git a/src/server/ExpressApp.ts b/src/server/ExpressApp.ts index 8638fea..29b92c5 100644 --- a/src/server/ExpressApp.ts +++ b/src/server/ExpressApp.ts @@ -4,10 +4,13 @@ import { Request, Response } from "express"; import morgan from "morgan"; import fs from "fs"; import { generateKey } from "../util/key_factory"; +import { GameStore } from "../game/gamestore/GameStore"; export class ExpressApp { app: Express.Application; - constructor() { + gameStore: GameStore; + constructor(params: { gameStore: GameStore }) { + this.gameStore = params.gameStore; this.app = this.createExpressApp(); } private createAccessLogMiddleware() { @@ -26,6 +29,17 @@ export class ExpressApp { app.get("/register/", (req: Request, res: Response) => { res.send(generateKey()); }); + + app.get("/game/:id", (req: Request, res: Response) => { + const gameId = req.params.id; + const game = this.gameStore.get(gameId); + if(game) { + res.send(game) + } else { + res.sendStatus(404) + } + }); + return app; } }