code quality

This commit is contained in:
2026-01-26 17:47:37 +01:00
parent 9ac74f5046
commit 3a4f460a7d
21 changed files with 121 additions and 58 deletions

View File

@@ -60,6 +60,14 @@ export class PaymentService implements Service {
async getWallet(leagueId: string): Promise<WalletViewModel> {
const data = await this.apiClient.getWallet({ leagueId });
return new WalletViewModel({ ...data.wallet, transactions: data.transactions });
const transactions = data.transactions.map(t => ({
...t,
type: t.type as any,
fee: 0,
netAmount: t.amount,
date: t.createdAt,
status: 'completed' as const
}));
return new WalletViewModel({ ...data.wallet, transactions });
}
}

View File

@@ -23,6 +23,14 @@ export class WalletService implements Service {
async getWallet(leagueId: string): Promise<WalletViewModel> {
const data = await this.apiClient.getWallet({ leagueId });
return new WalletViewModel({ ...data.wallet, transactions: data.transactions });
const transactions = data.transactions.map(t => ({
...t,
type: t.type as any,
fee: 0, // DTO missing fee
netAmount: t.amount, // DTO missing netAmount
date: t.createdAt, // Map createdAt to date
status: 'completed' as const // DTO missing status
}));
return new WalletViewModel({ ...data.wallet, transactions });
}
}

View File

@@ -5,8 +5,10 @@ import { ApiError } from '@/lib/gateways/api/base/ApiError';
import { RacesApiClient } from '@/lib/gateways/api/races/RacesApiClient';
import { ConsoleErrorReporter } from '@/lib/infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import type { ImportRaceResultsSummaryViewData } from '@/lib/view-data/ImportRaceResultsSummaryViewData';
import { ImportRaceResultsSummaryViewModel } from '@/lib/view-models/ImportRaceResultsSummaryViewModel';
import { RaceResultsDetailViewModel } from '@/lib/view-models/RaceResultsDetailViewModel';
import type { RaceWithSOFViewData } from '@/lib/view-data/RaceWithSOFViewData';
import { RaceWithSOFViewModel } from '@/lib/view-models/RaceWithSOFViewModel';
import { injectable, unmanaged } from 'inversify';
@@ -46,14 +48,21 @@ export class RaceResultsService implements Service {
async importResults(raceId: string, input: any): Promise<any> {
const res = await this.apiClient.importResults(raceId, input);
return new ImportRaceResultsSummaryViewModel(res);
const viewData: ImportRaceResultsSummaryViewData = {
success: res.success,
raceId: res.raceId,
driversProcessed: res.driversProcessed,
resultsRecorded: res.resultsRecorded,
errors: res.errors || [],
};
return new ImportRaceResultsSummaryViewModel(viewData);
}
/**
* Get race results detail
* Returns results for a specific race
*/
async getRaceResultsDetail(raceId: string): Promise<Result<unknown, DomainError>> {
async getRaceResultsDetail(raceId: string): Promise<Result<any, DomainError>> {
try {
const data = await this.apiClient.getResultsDetail(raceId);
return Result.ok(data);
@@ -78,7 +87,12 @@ export class RaceResultsService implements Service {
async getWithSOF(raceId: string): Promise<any> {
try {
const data = await this.apiClient.getWithSOF(raceId);
return new RaceWithSOFViewModel(data);
const viewData: RaceWithSOFViewData = {
id: data.id,
track: data.track,
strengthOfField: data.strengthOfField ?? null,
};
return new RaceWithSOFViewModel(viewData);
} catch (error: unknown) {
throw error;
}

View File

@@ -38,6 +38,17 @@ export class SponsorshipService implements Service {
async getSponsorSponsorships(sponsorId: string): Promise<SponsorSponsorshipsViewModel | null> {
const data = await this.apiClient.getSponsorships(sponsorId);
if (!data) return null;
return new SponsorSponsorshipsViewModel(data);
const mappedData = {
...data,
sponsorships: data.sponsorships.map(s => ({
...s,
type: 'league', // DTO missing type
entityName: s.leagueName, // DTO missing entityName
price: s.amount // DTO missing price
}))
};
return new SponsorSponsorshipsViewModel(mappedData as any);
}
}