SpaceNinjaServer/src/controllers/stats/leaderboardController.ts
Sainan a12e5968da feat: race leaderboards (#1314)
Initial leaderboard system. Currently only tracking races, tho.

Reviewed-on: OpenWF/SpaceNinjaServer#1314
2025-03-25 03:25:58 -07:00

20 lines
656 B
TypeScript

import { getLeaderboard } from "@/src/services/leaderboardService";
import { logger } from "@/src/utils/logger";
import { RequestHandler } from "express";
export const leaderboardController: RequestHandler = async (req, res) => {
logger.debug(`data provided to ${req.path}: ${String(req.body)}`);
const payload = JSON.parse(String(req.body)) as ILeaderboardRequest;
res.json({
results: await getLeaderboard(payload.field, payload.before, payload.after, payload.guildId, payload.pivotId)
});
};
interface ILeaderboardRequest {
field: string;
before: number;
after: number;
guildId?: string;
pivotId?: string;
}