refactor
This commit is contained in:
@@ -1,37 +1,17 @@
|
||||
import type { Result } from '@core/shared/application/Result';
|
||||
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
||||
import type {
|
||||
GetAllRacesResult,
|
||||
GetAllRacesErrorCode,
|
||||
} from '@core/racing/application/use-cases/GetAllRacesUseCase';
|
||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||
import type { GetAllRacesResult } from '@core/racing/application/use-cases/GetAllRacesUseCase';
|
||||
import type { AllRacesPageDTO } from '../dtos/AllRacesPageDTO';
|
||||
|
||||
export type GetAllRacesResponseModel = AllRacesPageDTO;
|
||||
|
||||
export type GetAllRacesApplicationError = ApplicationErrorCode<
|
||||
GetAllRacesErrorCode,
|
||||
{ message: string }
|
||||
>;
|
||||
|
||||
export class GetAllRacesPresenter {
|
||||
export class GetAllRacesPresenter implements UseCaseOutputPort<GetAllRacesResult> {
|
||||
private model: GetAllRacesResponseModel | null = null;
|
||||
|
||||
reset(): void {
|
||||
this.model = null;
|
||||
}
|
||||
|
||||
present(result: Result<GetAllRacesResult, GetAllRacesApplicationError>): void {
|
||||
if (result.isErr()) {
|
||||
const error = result.unwrapErr();
|
||||
throw new Error(error.details?.message ?? 'Failed to get all races');
|
||||
}
|
||||
|
||||
const output = result.unwrap();
|
||||
|
||||
present(result: GetAllRacesResult): void {
|
||||
const leagueMap = new Map<string, string>();
|
||||
const uniqueLeagues = new Map<string, { id: string; name: string }>();
|
||||
|
||||
for (const league of output.leagues) {
|
||||
for (const league of result.leagues) {
|
||||
const id = league.id.toString();
|
||||
const name = league.name.toString();
|
||||
leagueMap.set(id, name);
|
||||
@@ -39,7 +19,7 @@ export class GetAllRacesPresenter {
|
||||
}
|
||||
|
||||
this.model = {
|
||||
races: output.races.map(race => ({
|
||||
races: result.races.map(race => ({
|
||||
id: race.id,
|
||||
track: race.track,
|
||||
car: race.car,
|
||||
|
||||
Reference in New Issue
Block a user