Files
gridpilot.gg/apps/website/lib/builders/view-data/LeaderboardsViewDataBuilder.ts
2026-01-14 16:28:39 +01:00

23 lines
800 B
TypeScript

import type { DriverLeaderboardItemDTO } from '@/lib/types/generated/DriverLeaderboardItemDTO';
import type { LeaderboardsViewData } from '@/lib/view-data/LeaderboardsViewData';
export class LeaderboardsViewDataBuilder {
static build(
apiDto: { drivers: { drivers: DriverLeaderboardItemDTO[] }; teams: { teams: [] } }
): LeaderboardsViewData {
return {
drivers: apiDto.drivers.drivers.slice(0, 10).map(driver => ({
id: driver.id,
name: driver.name,
rating: driver.rating,
skillLevel: driver.skillLevel,
nationality: driver.nationality,
wins: driver.wins,
rank: driver.rank,
avatarUrl: driver.avatarUrl || '',
position: driver.rank,
})),
teams: [], // Teams leaderboard not implemented
};
}
}