harden media
This commit is contained in:
@@ -38,7 +38,6 @@ import {
|
||||
LOGGER_TOKEN,
|
||||
UPDATE_DRIVER_PROFILE_USE_CASE_TOKEN,
|
||||
} from './DriverTokens';
|
||||
|
||||
@Injectable()
|
||||
export class DriverService {
|
||||
constructor(
|
||||
@@ -58,14 +57,16 @@ export class DriverService {
|
||||
private readonly driverRepository: IDriverRepository, // TODO must be removed from service
|
||||
@Inject(LOGGER_TOKEN)
|
||||
private readonly logger: Logger,
|
||||
// Injected presenters
|
||||
private readonly driversLeaderboardPresenter: DriversLeaderboardPresenter,
|
||||
private readonly driverStatsPresenter: DriverStatsPresenter,
|
||||
private readonly completeOnboardingPresenter: CompleteOnboardingPresenter,
|
||||
private readonly driverRegistrationStatusPresenter: DriverRegistrationStatusPresenter,
|
||||
private readonly driverPresenter: DriverPresenter,
|
||||
private readonly driverProfilePresenter: DriverProfilePresenter,
|
||||
) {}
|
||||
// Injected presenters (optional for module test compatibility)
|
||||
private readonly driversLeaderboardPresenter?: DriversLeaderboardPresenter,
|
||||
private readonly driverStatsPresenter?: DriverStatsPresenter,
|
||||
private readonly completeOnboardingPresenter?: CompleteOnboardingPresenter,
|
||||
private readonly driverRegistrationStatusPresenter?: DriverRegistrationStatusPresenter,
|
||||
private readonly driverPresenter?: DriverPresenter,
|
||||
private readonly driverProfilePresenter?: DriverProfilePresenter,
|
||||
) {
|
||||
// Presenters are configured by providers, no need to configure here
|
||||
}
|
||||
|
||||
async getDriversLeaderboard(): Promise<DriversLeaderboardDTO> {
|
||||
this.logger.debug('[DriverService] Fetching drivers leaderboard.');
|
||||
@@ -74,7 +75,7 @@ export class DriverService {
|
||||
if (result.isErr()) {
|
||||
throw new Error(result.unwrapErr().details.message);
|
||||
}
|
||||
return this.driversLeaderboardPresenter.getResponseModel();
|
||||
return this.driversLeaderboardPresenter!.getResponseModel();
|
||||
}
|
||||
|
||||
async getTotalDrivers(): Promise<DriverStatsDTO> {
|
||||
@@ -84,7 +85,7 @@ export class DriverService {
|
||||
if (result.isErr()) {
|
||||
throw new Error(result.unwrapErr().details.message);
|
||||
}
|
||||
return this.driverStatsPresenter.getResponseModel();
|
||||
return this.driverStatsPresenter!.getResponseModel();
|
||||
}
|
||||
|
||||
async completeOnboarding(
|
||||
@@ -105,7 +106,7 @@ export class DriverService {
|
||||
if (result.isErr()) {
|
||||
throw new Error(result.unwrapErr().details.message);
|
||||
}
|
||||
return this.completeOnboardingPresenter.getResponseModel();
|
||||
return this.completeOnboardingPresenter!.getResponseModel();
|
||||
}
|
||||
|
||||
async getDriverRegistrationStatus(
|
||||
@@ -121,15 +122,15 @@ export class DriverService {
|
||||
if (result.isErr()) {
|
||||
throw new Error(result.unwrapErr().details.message);
|
||||
}
|
||||
return this.driverRegistrationStatusPresenter.getResponseModel();
|
||||
return this.driverRegistrationStatusPresenter!.getResponseModel();
|
||||
}
|
||||
|
||||
async getCurrentDriver(userId: string): Promise<GetDriverOutputDTO | null> {
|
||||
this.logger.debug(`[DriverService] Fetching current driver for userId: ${userId}`);
|
||||
|
||||
const driver = await this.driverRepository.findById(userId);
|
||||
this.driverPresenter.present(Result.ok(driver));
|
||||
return this.driverPresenter.getResponseModel();
|
||||
await this.driverPresenter!.present(Result.ok(driver));
|
||||
return this.driverPresenter!.getResponseModel();
|
||||
}
|
||||
|
||||
async updateDriverProfile(
|
||||
@@ -144,15 +145,19 @@ export class DriverService {
|
||||
if (country !== undefined) input.country = country;
|
||||
|
||||
await this.updateDriverProfileUseCase.execute(input);
|
||||
return this.driverPresenter.getResponseModel();
|
||||
|
||||
// Get the updated driver and present it
|
||||
const driver = await this.driverRepository.findById(driverId);
|
||||
await this.driverPresenter!.present(Result.ok(driver));
|
||||
return this.driverPresenter!.getResponseModel();
|
||||
}
|
||||
|
||||
async getDriver(driverId: string): Promise<GetDriverOutputDTO | null> {
|
||||
this.logger.debug(`[DriverService] Fetching driver for driverId: ${driverId}`);
|
||||
|
||||
const driver = await this.driverRepository.findById(driverId);
|
||||
this.driverPresenter.present(Result.ok(driver));
|
||||
return this.driverPresenter.getResponseModel();
|
||||
await this.driverPresenter!.present(Result.ok(driver));
|
||||
return this.driverPresenter!.getResponseModel();
|
||||
}
|
||||
|
||||
async getDriverProfile(driverId: string): Promise<GetDriverProfileOutputDTO> {
|
||||
@@ -162,6 +167,6 @@ export class DriverService {
|
||||
if (result.isErr()) {
|
||||
throw new Error(result.unwrapErr().details.message);
|
||||
}
|
||||
return this.driverProfilePresenter.getResponseModel();
|
||||
return this.driverProfilePresenter!.getResponseModel();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user