refactor core presenters

This commit is contained in:
2025-12-19 19:42:19 +01:00
parent 8116fe888f
commit 94fc538f44
228 changed files with 2817 additions and 3097 deletions

View File

@@ -7,7 +7,7 @@ import { Result } from '../../domain/entities/Result';
import type { AsyncUseCase, Logger } from '@core/shared/application';
import { Result as SharedResult } from '@core/shared/application/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { ImportRaceResultsApiResultDTO } from '../presenters/IImportRaceResultsApiPresenter';
import type { ImportRaceResultsApiOutputPort } from '../ports/output/ImportRaceResultsApiOutputPort';
export interface ImportRaceResultDTO {
id: string;
@@ -29,7 +29,7 @@ type ImportRaceResultsApiErrorCode =
type ImportRaceResultsApiApplicationError = ApplicationErrorCode<ImportRaceResultsApiErrorCode, { message: string }>;
export class ImportRaceResultsApiUseCase implements AsyncUseCase<{ raceId: string; resultsFileContent: string }, ImportRaceResultsApiResultDTO, ImportRaceResultsApiErrorCode> {
export class ImportRaceResultsApiUseCase implements AsyncUseCase<{ raceId: string; resultsFileContent: string }, ImportRaceResultsApiOutputPort, ImportRaceResultsApiErrorCode> {
constructor(
private readonly raceRepository: IRaceRepository,
private readonly leagueRepository: ILeagueRepository,
@@ -39,7 +39,7 @@ export class ImportRaceResultsApiUseCase implements AsyncUseCase<{ raceId: strin
private readonly logger: Logger,
) {}
async execute(params: { raceId: string; resultsFileContent: string }): Promise<SharedResult<ImportRaceResultsApiResultDTO, ApplicationErrorCode<ImportRaceResultsApiErrorCode>>> {
async execute(params: { raceId: string; resultsFileContent: string }): Promise<SharedResult<ImportRaceResultsApiOutputPort, ApplicationErrorCode<ImportRaceResultsApiErrorCode>>> {
this.logger.debug('ImportRaceResultsApiUseCase:execute', { raceId: params.raceId });
const { raceId, resultsFileContent } = params;
@@ -107,9 +107,10 @@ export class ImportRaceResultsApiUseCase implements AsyncUseCase<{ raceId: strin
await this.standingRepository.recalculate(league.id);
this.logger.info('ImportRaceResultsApiUseCase:standings recalculated', { leagueId: league.id });
const dto: ImportRaceResultsApiResultDTO = {
const output: ImportRaceResultsApiOutputPort = {
success: true,
raceId,
leagueId: league.id,
driversProcessed: results.length,
resultsRecorded: validEntities.length,
errors: [],