move score page fetching to the backend

This commit is contained in:
Lee
2024-10-17 15:30:14 +01:00
parent 118dc9d9f1
commit b3c124631a
78 changed files with 1150 additions and 494 deletions
bun.lockb
projects
backend
common
website/src

@ -0,0 +1,14 @@
import { Config } from "../config";
import { LeaderboardResponse } from "../response/leaderboard-response";
import { kyFetch } from "./utils";
import { Leaderboards } from "../leaderboard";
/**
* Fetches the leaderboard
*
* @param id the leaderboard id
* @param leaderboard the leaderboard
*/
export async function fetchLeaderboard<L>(leaderboard: Leaderboards, id: string) {
return kyFetch<LeaderboardResponse<L>>(`${Config.apiUrl}/leaderboard/${leaderboard}/${id}`);
}

@ -1,4 +1,4 @@
import { PlayerHistory } from "../types/player/player-history";
import { PlayerHistory } from "../player/player-history";
import { kyFetch } from "./utils";
import { Config } from "../config";

@ -0,0 +1,37 @@
import { Leaderboards } from "../leaderboard";
import { kyFetch } from "./utils";
import PlayerScoresResponse from "../response/player-scores-response";
import { Config } from "../config";
import { ScoreSort } from "../score/score-sort";
/**
* Fetches the player's scores
*
* @param leaderboard the leaderboard
* @param id the player id
* @param page the page
* @param sort the sort
* @param search the search
*/
export async function fetchPlayerScores<S, L>(
leaderboard: Leaderboards,
id: string,
page: number,
sort: ScoreSort,
search?: string
) {
return kyFetch<PlayerScoresResponse<S, L>>(
`${Config.apiUrl}/scores/player/${leaderboard}/${id}/${page}/${sort}${search ? `?search=${search}` : ""}`
);
}
/**
* Fetches the player's scores
*
* @param leaderboard the leaderboard
* @param id the player id
* @param page the page
*/
export async function fetchLeaderboardScores<S, L>(leaderboard: Leaderboards, id: string, page: number) {
return kyFetch<PlayerScoresResponse<S, L>>(`${Config.apiUrl}/scores/leaderboard/${leaderboard}/${id}/${page}`);
}

@ -1,9 +1,11 @@
import { Difficulty } from "../score/difficulty";
/**
* Formats the ScoreSaber difficulty number
*
* @param diff the diffuiclity number
*/
export function getDifficultyFromScoreSaberDifficulty(diff: number) {
export function getDifficultyFromScoreSaberDifficulty(diff: number): Difficulty {
switch (diff) {
case 1: {
return "Easy";