Files
gridpilot.gg/apps/website/lib/services/leagues/LeagueWizardService.ts
2026-01-24 12:47:49 +01:00

38 lines
1.3 KiB
TypeScript

import { getWebsiteApiBaseUrl } from '@/lib/config/apiBaseUrl';
import { Service } from '@/lib/contracts/services/Service';
import { LeaguesApiClient } from '@/lib/gateways/api/leagues/LeaguesApiClient';
import { EnhancedErrorReporter } from '@/lib/infrastructure/EnhancedErrorReporter';
import { ConsoleLogger } from '@/lib/infrastructure/logging/ConsoleLogger';
import { injectable, unmanaged } from 'inversify';
@injectable()
export class LeagueWizardService implements Service {
private readonly apiClient: LeaguesApiClient;
constructor(@unmanaged() apiClient?: LeaguesApiClient) {
if (apiClient) {
this.apiClient = apiClient;
} else {
const baseUrl = getWebsiteApiBaseUrl();
const logger = new ConsoleLogger();
const errorReporter = new EnhancedErrorReporter(logger);
this.apiClient = new LeaguesApiClient(baseUrl, errorReporter, logger);
}
}
// Add methods as needed by tests
async createLeague(form: any, ownerId: string): Promise<any> {
const command = form.toCreateLeagueCommand(ownerId);
return this.apiClient.create(command);
}
async createLeagueFromConfig(form: any, ownerId: string): Promise<any> {
return this.createLeague(form, ownerId);
}
async validateLeagueConfig(): Promise<any> {
// Mock implementation or call API if available
return { valid: true };
}
}