23 lines
800 B
TypeScript
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
|
|
};
|
|
}
|
|
} |