refactor core presenters
This commit is contained in:
@@ -1,17 +1,39 @@
|
||||
import { IGetAllRacesPresenter, GetAllRacesResultDTO, AllRacesPageViewModel } from '@core/racing/application/presenters/IGetAllRacesPresenter';
|
||||
import { GetAllRacesOutputPort } from '@core/racing/application/ports/output/GetAllRacesOutputPort';
|
||||
import { AllRacesPageDTO } from '../dtos/AllRacesPageDTO';
|
||||
|
||||
export class GetAllRacesPresenter implements IGetAllRacesPresenter {
|
||||
private result: AllRacesPageViewModel | null = null;
|
||||
export class GetAllRacesPresenter {
|
||||
private result: AllRacesPageDTO | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
present(dto: GetAllRacesResultDTO) {
|
||||
this.result = dto;
|
||||
async present(output: GetAllRacesOutputPort) {
|
||||
this.result = {
|
||||
races: output.races.map(race => ({
|
||||
id: race.id,
|
||||
track: race.track,
|
||||
car: race.car,
|
||||
scheduledAt: race.scheduledAt,
|
||||
status: race.status,
|
||||
leagueId: race.leagueId,
|
||||
leagueName: race.leagueName,
|
||||
strengthOfField: race.strengthOfField,
|
||||
})),
|
||||
filters: {
|
||||
statuses: [
|
||||
{ value: 'all', label: 'All' },
|
||||
{ value: 'scheduled', label: 'Scheduled' },
|
||||
{ value: 'running', label: 'Running' },
|
||||
{ value: 'completed', label: 'Completed' },
|
||||
{ value: 'cancelled', label: 'Cancelled' },
|
||||
],
|
||||
leagues: [], // TODO: populate if needed
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
getViewModel(): AllRacesPageViewModel | null {
|
||||
getViewModel(): AllRacesPageDTO | null {
|
||||
return this.result;
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,20 @@
|
||||
import { IGetTotalRacesPresenter, GetTotalRacesResultDTO, GetTotalRacesViewModel } from '@core/racing/application/presenters/IGetTotalRacesPresenter';
|
||||
import { GetTotalRacesOutputPort } from '@core/racing/application/ports/output/GetTotalRacesOutputPort';
|
||||
import { RaceStatsDTO } from '../dtos/RaceStatsDTO';
|
||||
|
||||
export class GetTotalRacesPresenter implements IGetTotalRacesPresenter {
|
||||
private result: GetTotalRacesViewModel | null = null;
|
||||
export class GetTotalRacesPresenter {
|
||||
private result: RaceStatsDTO | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
present(dto: GetTotalRacesResultDTO) {
|
||||
present(output: GetTotalRacesOutputPort) {
|
||||
this.result = {
|
||||
totalRaces: dto.totalRaces,
|
||||
totalRaces: output.totalRaces,
|
||||
};
|
||||
}
|
||||
|
||||
getViewModel(): GetTotalRacesViewModel | null {
|
||||
getViewModel(): RaceStatsDTO | null {
|
||||
return this.result;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,24 @@
|
||||
import { IImportRaceResultsApiPresenter, ImportRaceResultsApiResultDTO, ImportRaceResultsSummaryViewModel } from '@core/racing/application/presenters/IImportRaceResultsApiPresenter';
|
||||
import { ImportRaceResultsApiOutputPort } from '@core/racing/application/ports/output/ImportRaceResultsApiOutputPort';
|
||||
import { ImportRaceResultsSummaryDTO } from '../dtos/ImportRaceResultsSummaryDTO';
|
||||
|
||||
export class ImportRaceResultsApiPresenter implements IImportRaceResultsApiPresenter {
|
||||
private result: ImportRaceResultsSummaryViewModel | null = null;
|
||||
export class ImportRaceResultsApiPresenter {
|
||||
private result: ImportRaceResultsSummaryDTO | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
present(dto: ImportRaceResultsApiResultDTO) {
|
||||
this.result = dto;
|
||||
present(output: ImportRaceResultsApiOutputPort) {
|
||||
this.result = {
|
||||
success: output.success,
|
||||
raceId: output.raceId,
|
||||
driversProcessed: output.driversProcessed,
|
||||
resultsRecorded: output.resultsRecorded,
|
||||
errors: output.errors,
|
||||
};
|
||||
}
|
||||
|
||||
getViewModel(): ImportRaceResultsSummaryViewModel | null {
|
||||
getViewModel(): ImportRaceResultsSummaryDTO | null {
|
||||
return this.result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user