view models

This commit is contained in:
2025-12-18 14:04:31 +01:00
parent 4f99098b32
commit 61f675d991
9 changed files with 95 additions and 19 deletions

View File

@@ -7,6 +7,8 @@ import { PaymentsApiClient } from '../api/payments/PaymentsApiClient';
import { AuthApiClient } from '../api/auth/AuthApiClient';
import { AnalyticsApiClient } from '../api/analytics/AnalyticsApiClient';
import { MediaApiClient } from '../api/media/MediaApiClient';
import { ConsoleErrorReporter } from '../infrastructure/logging/ConsoleErrorReporter';
import { ConsoleLogger } from '../infrastructure/logging/ConsoleLogger';
// Services
import { RaceService } from './races/RaceService';
@@ -37,6 +39,9 @@ import { SessionService } from './auth/SessionService';
* Services now directly instantiate View Models instead of using Presenters.
*/
export class ServiceFactory {
private readonly errorReporter = new ConsoleErrorReporter();
private readonly logger = new ConsoleLogger();
private readonly apiClients: {
races: RacesApiClient;
drivers: DriversApiClient;
@@ -52,15 +57,15 @@ export class ServiceFactory {
constructor(baseUrl: string) {
// Initialize API clients
this.apiClients = {
races: new RacesApiClient(baseUrl),
drivers: new DriversApiClient(baseUrl),
teams: new TeamsApiClient(baseUrl),
leagues: new LeaguesApiClient(baseUrl),
sponsors: new SponsorsApiClient(baseUrl),
payments: new PaymentsApiClient(baseUrl),
auth: new AuthApiClient(baseUrl),
analytics: new AnalyticsApiClient(baseUrl),
media: new MediaApiClient(baseUrl),
races: new RacesApiClient(baseUrl, this.errorReporter, this.logger),
drivers: new DriversApiClient(baseUrl, this.errorReporter, this.logger),
teams: new TeamsApiClient(baseUrl, this.errorReporter, this.logger),
leagues: new LeaguesApiClient(baseUrl, this.errorReporter, this.logger),
sponsors: new SponsorsApiClient(baseUrl, this.errorReporter, this.logger),
payments: new PaymentsApiClient(baseUrl, this.errorReporter, this.logger),
auth: new AuthApiClient(baseUrl, this.errorReporter, this.logger),
analytics: new AnalyticsApiClient(baseUrl, this.errorReporter, this.logger),
media: new MediaApiClient(baseUrl, this.errorReporter, this.logger),
};
}