refactor
This commit is contained in:
@@ -14,7 +14,7 @@ import { GetTotalDriversUseCase } from '@core/racing/application/use-cases/GetTo
|
||||
import { CompleteDriverOnboardingUseCase } from '@core/racing/application/use-cases/CompleteDriverOnboardingUseCase';
|
||||
import { IsDriverRegisteredForRaceUseCase } from '@core/racing/application/use-cases/IsDriverRegisteredForRaceUseCase';
|
||||
import { GetProfileOverviewUseCase } from '@core/racing/application/use-cases/GetProfileOverviewUseCase';
|
||||
import { UpdateDriverProfileUseCase } from '@core/racing/application/use-cases/UpdateDriverProfileUseCase';
|
||||
import { UpdateDriverProfileUseCase, type UpdateDriverProfileInput } from '@core/racing/application/use-cases/UpdateDriverProfileUseCase';
|
||||
|
||||
// Presenters
|
||||
import { DriverStatsPresenter } from './presenters/DriverStatsPresenter';
|
||||
@@ -70,10 +70,12 @@ export class DriverService {
|
||||
|
||||
const result = await this.getDriversLeaderboardUseCase.execute({});
|
||||
|
||||
const presenter = new DriversLeaderboardPresenter();
|
||||
presenter.present(result);
|
||||
if (result.isErr()) {
|
||||
const error = result.unwrapErr();
|
||||
throw new Error(error.details?.message ?? 'Failed to load drivers leaderboard');
|
||||
}
|
||||
|
||||
return presenter.getResponseModel();
|
||||
return this.driversLeaderboardPresenter.getResponseModel();
|
||||
}
|
||||
|
||||
async getTotalDrivers(): Promise<DriverStatsDTO> {
|
||||
@@ -101,14 +103,15 @@ export class DriverService {
|
||||
lastName: input.lastName,
|
||||
displayName: input.displayName,
|
||||
country: input.country,
|
||||
timezone: input.timezone,
|
||||
bio: input.bio,
|
||||
...(input.bio !== undefined ? { bio: input.bio } : {}),
|
||||
});
|
||||
|
||||
const presenter = new CompleteOnboardingPresenter();
|
||||
presenter.present(result);
|
||||
if (result.isErr()) {
|
||||
const error = result.unwrapErr();
|
||||
throw new Error(error.details?.message ?? 'Failed to complete onboarding');
|
||||
}
|
||||
|
||||
return presenter.responseModel;
|
||||
return this.completeOnboardingPresenter.getResponseModel();
|
||||
}
|
||||
|
||||
async getDriverRegistrationStatus(
|
||||
@@ -121,10 +124,12 @@ export class DriverService {
|
||||
driverId: query.driverId,
|
||||
});
|
||||
|
||||
const presenter = new DriverRegistrationStatusPresenter();
|
||||
presenter.present(result);
|
||||
if (result.isErr()) {
|
||||
const error = result.unwrapErr();
|
||||
throw new Error(error.details?.message ?? 'Failed to check registration status');
|
||||
}
|
||||
|
||||
return presenter.responseModel;
|
||||
return this.driverRegistrationStatusPresenter.getResponseModel();
|
||||
}
|
||||
|
||||
async getCurrentDriver(userId: string): Promise<GetDriverOutputDTO | null> {
|
||||
@@ -132,10 +137,9 @@ export class DriverService {
|
||||
|
||||
const driver = await this.driverRepository.findById(userId);
|
||||
|
||||
const presenter = new DriverPresenter();
|
||||
presenter.present(driver ?? null);
|
||||
this.driverPresenter.present(driver ?? null);
|
||||
|
||||
return presenter.responseModel;
|
||||
return this.driverPresenter.getResponseModel();
|
||||
}
|
||||
|
||||
async updateDriverProfile(
|
||||
@@ -145,19 +149,21 @@ export class DriverService {
|
||||
): Promise<GetDriverOutputDTO | null> {
|
||||
this.logger.debug(`[DriverService] Updating driver profile for driverId: ${driverId}`);
|
||||
|
||||
const result = await this.updateDriverProfileUseCase.execute({ driverId, bio, country });
|
||||
const input: UpdateDriverProfileInput = { driverId };
|
||||
if (bio !== undefined) input.bio = bio;
|
||||
if (country !== undefined) input.country = country;
|
||||
|
||||
const presenter = new DriverPresenter();
|
||||
const result = await this.updateDriverProfileUseCase.execute(input);
|
||||
|
||||
if (result.isErr()) {
|
||||
this.logger.error(`Failed to update driver profile: ${result.error.code}`);
|
||||
presenter.present(null);
|
||||
return presenter.responseModel;
|
||||
this.logger.error(`Failed to update driver profile: ${result.unwrapErr().code}`);
|
||||
this.driverPresenter.present(null);
|
||||
return this.driverPresenter.getResponseModel();
|
||||
}
|
||||
|
||||
const updatedDriver = await this.driverRepository.findById(driverId);
|
||||
presenter.present(updatedDriver ?? null);
|
||||
return presenter.responseModel;
|
||||
this.driverPresenter.present(updatedDriver ?? null);
|
||||
return this.driverPresenter.getResponseModel();
|
||||
}
|
||||
|
||||
async getDriver(driverId: string): Promise<GetDriverOutputDTO | null> {
|
||||
@@ -165,10 +171,9 @@ export class DriverService {
|
||||
|
||||
const driver = await this.driverRepository.findById(driverId);
|
||||
|
||||
const presenter = new DriverPresenter();
|
||||
presenter.present(driver ?? null);
|
||||
this.driverPresenter.present(driver ?? null);
|
||||
|
||||
return presenter.responseModel;
|
||||
return this.driverPresenter.getResponseModel();
|
||||
}
|
||||
|
||||
async getDriverProfile(driverId: string): Promise<GetDriverProfileOutputDTO> {
|
||||
@@ -176,9 +181,11 @@ export class DriverService {
|
||||
|
||||
const result = await this.getProfileOverviewUseCase.execute({ driverId });
|
||||
|
||||
const presenter = new DriverProfilePresenter();
|
||||
presenter.present(result);
|
||||
if (result.isErr()) {
|
||||
const error = result.unwrapErr();
|
||||
throw new Error(error.details?.message ?? 'Failed to load driver profile');
|
||||
}
|
||||
|
||||
return presenter.responseModel;
|
||||
return this.driverProfilePresenter.getResponseModel();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user