Files
gridpilot.gg/apps/website/lib/presenters/LeagueScoringPresetsPresenter.ts
2025-12-11 21:06:25 +01:00

29 lines
744 B
TypeScript

import type {
ILeagueScoringPresetsPresenter,
LeagueScoringPresetsViewModel,
LeagueScoringPresetsResultDTO,
} from '@gridpilot/racing/application/presenters/ILeagueScoringPresetsPresenter';
export class LeagueScoringPresetsPresenter implements ILeagueScoringPresetsPresenter {
private viewModel: LeagueScoringPresetsViewModel | null = null;
reset(): void {
this.viewModel = null;
}
present(dto: LeagueScoringPresetsResultDTO): void {
const { presets } = dto;
this.viewModel = {
presets,
totalCount: presets.length,
};
}
getViewModel(): LeagueScoringPresetsViewModel {
if (!this.viewModel) {
throw new Error('Presenter has not been called yet');
}
return this.viewModel;
}
}