refactor league module (wip)
This commit is contained in:
@@ -1,21 +1,22 @@
|
||||
import { GetLeagueScheduleOutputPort } from '@core/racing/application/ports/output/GetLeagueScheduleOutputPort';
|
||||
import type { UseCaseOutputPort } from '@core/shared/application';
|
||||
import { GetLeagueScheduleResult } from '@core/racing/application/use-cases/GetLeagueScheduleUseCase';
|
||||
import { LeagueScheduleDTO } from '../dtos/LeagueScheduleDTO';
|
||||
import { RaceDTO } from '../../race/dtos/RaceDTO';
|
||||
|
||||
export class LeagueSchedulePresenter {
|
||||
export class LeagueSchedulePresenter implements UseCaseOutputPort<GetLeagueScheduleResult> {
|
||||
private result: LeagueScheduleDTO | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
present(output: GetLeagueScheduleOutputPort, leagueName?: string) {
|
||||
present(result: GetLeagueScheduleResult, leagueName?: string) {
|
||||
this.result = {
|
||||
races: output.races.map<RaceDTO>(race => ({
|
||||
id: race.id,
|
||||
name: race.name,
|
||||
date: race.scheduledAt.toISOString(),
|
||||
leagueName,
|
||||
races: result.races.map(race => ({
|
||||
id: race.race.id,
|
||||
name: `${race.race.track} - ${race.race.car}`,
|
||||
date: race.race.scheduledAt.toISOString(),
|
||||
...(leagueName ? { leagueName } : {}),
|
||||
})),
|
||||
};
|
||||
}
|
||||
@@ -25,19 +26,19 @@ export class LeagueSchedulePresenter {
|
||||
}
|
||||
}
|
||||
|
||||
export class LeagueRacesPresenter {
|
||||
export class LeagueRacesPresenter implements UseCaseOutputPort<GetLeagueScheduleResult> {
|
||||
private result: RaceDTO[] | null = null;
|
||||
|
||||
reset() {
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
present(output: GetLeagueScheduleOutputPort, leagueName?: string) {
|
||||
this.result = output.races.map<RaceDTO>(race => ({
|
||||
id: race.id,
|
||||
name: race.name,
|
||||
date: race.scheduledAt.toISOString(),
|
||||
leagueName,
|
||||
present(result: GetLeagueScheduleResult, leagueName?: string) {
|
||||
this.result = result.races.map(race => ({
|
||||
id: race.race.id,
|
||||
name: `${race.race.track} - ${race.race.car}`,
|
||||
date: race.race.scheduledAt.toISOString(),
|
||||
...(leagueName ? { leagueName } : {}),
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user