SpaceNinjaServer/src/controllers/stats/leaderboardController.ts
AMelonInsideLemon 049f709713 feat(leaderboard): missions & guilds leaderboard (#1338)
Reviewed-on: OpenWF/SpaceNinjaServer#1338
Reviewed-by: Sainan <sainan@calamity.inc>
Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
2025-03-26 14:21:22 -07:00

28 lines
781 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,
payload.guildTier
)
});
};
interface ILeaderboardRequest {
field: string;
before: number;
after: number;
guildId?: string;
pivotId?: string;
guildTier?: number;
}