website refactor
This commit is contained in:
@@ -30,7 +30,7 @@ function isRecord(value: unknown): value is Record<string, unknown> {
|
||||
|
||||
function isRaceDTO(value: unknown): value is RaceDTO {
|
||||
if (!isRecord(value)) return false;
|
||||
return typeof value.id === 'string' && typeof value.name === 'string' && typeof value.date === 'string';
|
||||
return typeof value.id === 'string' && typeof value.name === 'string';
|
||||
}
|
||||
|
||||
function parseRaceDTOArray(value: unknown): RaceDTO[] {
|
||||
@@ -71,8 +71,11 @@ export class LeaguesApiClient extends BaseApiClient {
|
||||
}
|
||||
|
||||
/** Get league memberships */
|
||||
getMemberships(leagueId: string): Promise<LeagueMembershipsDTO> {
|
||||
return this.get<LeagueMembershipsDTO>(`/leagues/${leagueId}/memberships`);
|
||||
async getMemberships(leagueId: string): Promise<LeagueMembershipsDTO> {
|
||||
const response = await this.get<any>(`/leagues/${leagueId}/memberships`);
|
||||
if (Array.isArray(response)) return { members: response };
|
||||
if (response?.members) return response;
|
||||
return { members: [] };
|
||||
}
|
||||
|
||||
/** Create a new league */
|
||||
@@ -160,8 +163,9 @@ export class LeaguesApiClient extends BaseApiClient {
|
||||
|
||||
/** Get races for a league */
|
||||
async getRaces(leagueId: string): Promise<{ races: RaceDTO[] }> {
|
||||
const response = await this.get<{ races?: unknown }>(`/leagues/${leagueId}/races`);
|
||||
return { races: parseRaceDTOArray(response?.races) };
|
||||
const response = await this.get<any>(`/leagues/${leagueId}/races`);
|
||||
const races = Array.isArray(response) ? response : (response?.races || []);
|
||||
return { races: parseRaceDTOArray(races) };
|
||||
}
|
||||
|
||||
/** Admin roster: list current members (admin/owner only; actor derived from session) */
|
||||
|
||||
Reference in New Issue
Block a user