25 lines
792 B
TypeScript
25 lines
792 B
TypeScript
import { ViewData } from '@/lib/contracts/view-data/ViewData';
|
|
import type { GetTeamsLeaderboardOutputDTO } from '@/lib/types/generated/GetTeamsLeaderboardOutputDTO';
|
|
import type { TeamRankingsViewData } from '@/lib/view-data/TeamRankingsViewData';
|
|
|
|
import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder";
|
|
|
|
export class TeamRankingsViewDataBuilder implements ViewDataBuilder<any, any> {
|
|
build(input: any): any {
|
|
return TeamRankingsViewDataBuilder.build(input);
|
|
}
|
|
|
|
static build(
|
|
public static build(apiDto: GetTeamsLeaderboardOutputDTO): TeamRankingsViewData {
|
|
const allTeams = apiDto.teams.map(t => ({
|
|
...t,
|
|
}));
|
|
|
|
return {
|
|
teams: allTeams,
|
|
podium: allTeams.slice(0, 3),
|
|
recruitingCount: apiDto.recruitingCount,
|
|
};
|
|
}
|
|
}
|