Files
gridpilot.gg/core/racing/application/use-cases/GetTotalDriversUseCase.ts
2025-12-16 11:52:26 +01:00

23 lines
791 B
TypeScript

import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { ITotalDriversPresenter, TotalDriversResultDTO } from '../presenters/ITotalDriversPresenter';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for retrieving total number of drivers.
*/
export class GetTotalDriversUseCase
implements UseCase<void, TotalDriversResultDTO, any, ITotalDriversPresenter>
{
constructor(private readonly driverRepository: IDriverRepository) {}
async execute(_input: void, presenter: ITotalDriversPresenter): Promise<void> {
presenter.reset();
const drivers = await this.driverRepository.findAll();
const dto: TotalDriversResultDTO = {
totalDrivers: drivers.length,
};
presenter.present(dto);
}
}