website refactor
This commit is contained in:
@@ -18,72 +18,51 @@ export class LeagueStandingsService implements Service {
|
||||
);
|
||||
}
|
||||
|
||||
async getStandingsData(_: string): Promise<Result<{ standings: LeagueStandingsApiDto; memberships: LeagueMembershipsApiDto }, DomainError>> {
|
||||
// Mock data since backend may not be implemented
|
||||
const mockStandings: LeagueStandingsApiDto = {
|
||||
standings: [
|
||||
{
|
||||
driverId: 'driver1',
|
||||
driver: {
|
||||
id: 'driver1',
|
||||
name: 'John Doe',
|
||||
iracingId: '12345',
|
||||
country: 'US',
|
||||
joinedAt: new Date().toISOString(),
|
||||
},
|
||||
points: 100,
|
||||
position: 1,
|
||||
wins: 2,
|
||||
podiums: 3,
|
||||
races: 5,
|
||||
},
|
||||
{
|
||||
driverId: 'driver2',
|
||||
driver: {
|
||||
id: 'driver2',
|
||||
name: 'Jane Smith',
|
||||
iracingId: '67890',
|
||||
country: 'UK',
|
||||
joinedAt: new Date().toISOString(),
|
||||
},
|
||||
points: 80,
|
||||
position: 2,
|
||||
wins: 1,
|
||||
podiums: 2,
|
||||
races: 5,
|
||||
},
|
||||
],
|
||||
};
|
||||
async getStandingsData(leagueId: string): Promise<Result<{ standings: LeagueStandingsApiDto; memberships: LeagueMembershipsApiDto }, DomainError>> {
|
||||
try {
|
||||
const [standingsData, membershipsData] = await Promise.all([
|
||||
this.apiClient.getStandings(leagueId),
|
||||
this.apiClient.getMemberships(leagueId),
|
||||
]);
|
||||
|
||||
const mockMemberships: LeagueMembershipsApiDto = {
|
||||
members: [
|
||||
{
|
||||
driverId: 'driver1',
|
||||
// Map LeagueStandingsDTO to LeagueStandingsApiDto
|
||||
const standings: LeagueStandingsApiDto = {
|
||||
standings: standingsData.standings.map(s => ({
|
||||
driverId: s.driverId,
|
||||
driver: {
|
||||
id: 'driver1',
|
||||
name: 'John Doe',
|
||||
iracingId: '12345',
|
||||
country: 'US',
|
||||
joinedAt: new Date().toISOString(),
|
||||
id: s.driver.id,
|
||||
name: s.driver.name,
|
||||
iracingId: s.driver.iracingId,
|
||||
country: s.driver.country,
|
||||
joinedAt: s.driver.joinedAt,
|
||||
},
|
||||
role: 'member',
|
||||
joinedAt: new Date().toISOString(),
|
||||
},
|
||||
{
|
||||
driverId: 'driver2',
|
||||
driver: {
|
||||
id: 'driver2',
|
||||
name: 'Jane Smith',
|
||||
iracingId: '67890',
|
||||
country: 'UK',
|
||||
joinedAt: new Date().toISOString(),
|
||||
},
|
||||
role: 'member',
|
||||
joinedAt: new Date().toISOString(),
|
||||
},
|
||||
],
|
||||
};
|
||||
points: s.points,
|
||||
position: s.position,
|
||||
wins: s.wins,
|
||||
podiums: s.podiums,
|
||||
races: s.races,
|
||||
})),
|
||||
};
|
||||
|
||||
return Result.ok({ standings: mockStandings, memberships: mockMemberships });
|
||||
// Map LeagueMembershipsDTO to LeagueMembershipsApiDto
|
||||
const memberships: LeagueMembershipsApiDto = {
|
||||
members: (membershipsData.members || []).map(m => ({
|
||||
driverId: m.driverId,
|
||||
driver: {
|
||||
id: m.driver.id,
|
||||
name: m.driver.name,
|
||||
iracingId: m.driver.iracingId,
|
||||
country: m.driver.country,
|
||||
joinedAt: m.driver.joinedAt,
|
||||
},
|
||||
role: m.role as any,
|
||||
joinedAt: m.joinedAt,
|
||||
})),
|
||||
};
|
||||
|
||||
return Result.ok({ standings, memberships });
|
||||
} catch (error: unknown) {
|
||||
return Result.err({ type: 'serverError', message: (error as Error).message || 'Failed to fetch standings' });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user