view data fixes
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 5m51s
Contract Testing / contract-snapshot (pull_request) Has been skipped

This commit is contained in:
2026-01-24 12:14:08 +01:00
parent dde77e717a
commit 046852703f
94 changed files with 1333 additions and 4885 deletions

View File

@@ -1,3 +1,9 @@
/**
* Races View Data Builder
*
* Transforms API DTO to ViewData for templates.
*/
import { DateFormatter } from '@/lib/formatters/DateFormatter';
import { RaceStatusFormatter } from '@/lib/formatters/RaceStatusFormatter';
import { RelativeTimeFormatter } from '@/lib/formatters/RelativeTimeFormatter';
@@ -6,14 +12,16 @@ import type { RacesViewData, RaceViewData } from '@/lib/view-data/RacesViewData'
import { ViewDataBuilder } from "../../contracts/builders/ViewDataBuilder";
export class RacesViewDataBuilder implements ViewDataBuilder<any, any> {
build(input: any): any {
return RacesViewDataBuilder.build(input);
}
static build(apiDto: RacesPageDataDTO): RacesViewData {
export class RacesViewDataBuilder {
/**
* Transform API DTO to ViewData
*
* @param apiDto - The DTO from the service
* @returns ViewData for the races page
*/
public static build(apiDto: RacesPageDataDTO): RacesViewData {
const now = new Date();
const races = apiDto.races.map((race): RaceViewData => {
const races = (apiDto.races || []).map((race): RaceViewData => {
return {
id: race.id,
track: race.track,
@@ -73,3 +81,5 @@ export class RacesViewDataBuilder implements ViewDataBuilder<any, any> {
};
}
}
RacesViewDataBuilder satisfies ViewDataBuilder<RacesPageDataDTO, RacesViewData>;