Compare commits

...

2 commits

Author SHA1 Message Date
lila
9ab2bc3d0e feat(api): apply rate limiters to game and lobby routes
Wire gameLimiter into gameRouter and lobbyLimiter into lobbyRouter.
Both run after requireAuth since they key by req.session.user.id.
2026-04-23 20:36:36 +02:00
lila
e6f4a39dad adding task 2026-04-23 20:32:16 +02:00
3 changed files with 8 additions and 0 deletions

View file

@ -2,9 +2,12 @@ import express from "express";
import type { Router } from "express";
import { createGame, submitAnswer } from "../controllers/gameController.js";
import { requireAuth } from "../middleware/authMiddleware.js";
import { gameLimiter } from "../middleware/rateLimiters.js";
export const gameRouter: Router = express.Router();
gameRouter.use(requireAuth);
gameRouter.use(gameLimiter);
gameRouter.post("/start", createGame);
gameRouter.post("/answer", submitAnswer);

View file

@ -5,10 +5,12 @@ import {
joinLobbyHandler,
} from "../controllers/lobbyController.js";
import { requireAuth } from "../middleware/authMiddleware.js";
import { lobbyLimiter } from "../middleware/rateLimiters.js";
export const lobbyRouter: Router = express.Router();
lobbyRouter.use(requireAuth);
lobbyRouter.use(lobbyLimiter);
lobbyRouter.post("/", createLobbyHandler);
lobbyRouter.post("/:code/join", joinLobbyHandler);

View file

@ -108,6 +108,9 @@ Directionally right, timing is unclear. Revisit when the next/now work is done.
- **OpenAPI documentation for REST endpoints** `[feature]`
Document the API surface using OpenAPI/Swagger. Covers all REST endpoints with request/response shapes. Useful groundwork for the admin dashboard and any future contributors.
- **Frontend tests** `[debt]`
component tests for QuestionCard, OptionButton, ScoreScreen; consider Playwright or Vitest browser mode for e2e
---
## changelog