view data fixes
This commit is contained in:
@@ -1,40 +1,38 @@
|
||||
'use client';
|
||||
|
||||
import type { DriversLeaderboardDTO } from '@/lib/types/generated/DriversLeaderboardDTO';
|
||||
import type { DriversViewData } from '@/lib/view-data/DriversViewData';
|
||||
import { RatingDisplay } from '@/lib/display-objects/RatingDisplay';
|
||||
import { NumberDisplay } from '@/lib/display-objects/NumberDisplay';
|
||||
import type { ViewDataBuilder } from '@/lib/contracts/builders/ViewDataBuilder';
|
||||
|
||||
import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder";
|
||||
|
||||
export class DriversViewDataBuilder implements ViewDataBuilder<any, any> {
|
||||
build(input: any): any {
|
||||
return DriversViewDataBuilder.build(input);
|
||||
}
|
||||
|
||||
static build(
|
||||
static build(dto: DriversLeaderboardDTO): DriversViewData {
|
||||
export class DriversViewDataBuilder {
|
||||
public static build(apiDto: DriversLeaderboardDTO): DriversViewData {
|
||||
return {
|
||||
drivers: dto.drivers.map(driver => ({
|
||||
drivers: apiDto.drivers.map(driver => ({
|
||||
id: driver.id,
|
||||
name: driver.name,
|
||||
rating: driver.rating,
|
||||
ratingLabel: RatingDisplay.format(driver.rating),
|
||||
skillLevel: driver.skillLevel,
|
||||
category: driver.category,
|
||||
category: driver.category ?? undefined,
|
||||
nationality: driver.nationality,
|
||||
racesCompleted: driver.racesCompleted,
|
||||
wins: driver.wins,
|
||||
podiums: driver.podiums,
|
||||
isActive: driver.isActive,
|
||||
rank: driver.rank,
|
||||
avatarUrl: driver.avatarUrl,
|
||||
avatarUrl: driver.avatarUrl ?? undefined,
|
||||
})),
|
||||
totalRaces: dto.totalRaces,
|
||||
totalRacesLabel: NumberDisplay.format(dto.totalRaces),
|
||||
totalWins: dto.totalWins,
|
||||
totalWinsLabel: NumberDisplay.format(dto.totalWins),
|
||||
activeCount: dto.activeCount,
|
||||
activeCountLabel: NumberDisplay.format(dto.activeCount),
|
||||
totalDriversLabel: NumberDisplay.format(dto.drivers.length),
|
||||
totalRaces: apiDto.totalRaces,
|
||||
totalRacesLabel: NumberDisplay.format(apiDto.totalRaces),
|
||||
totalWins: apiDto.totalWins,
|
||||
totalWinsLabel: NumberDisplay.format(apiDto.totalWins),
|
||||
activeCount: apiDto.activeCount,
|
||||
activeCountLabel: NumberDisplay.format(apiDto.activeCount),
|
||||
totalDriversLabel: NumberDisplay.format(apiDto.drivers.length),
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DriversViewDataBuilder satisfies ViewDataBuilder<DriversLeaderboardDTO, DriversViewData>;
|
||||
|
||||
Reference in New Issue
Block a user