wip
This commit is contained in:
@@ -24,13 +24,29 @@ export class EntityMappers {
|
||||
iracingId: driver.iracingId,
|
||||
name: driver.name,
|
||||
country: driver.country,
|
||||
bio: driver.bio,
|
||||
bio: driver.bio ?? '',
|
||||
joinedAt: driver.joinedAt.toISOString(),
|
||||
};
|
||||
}
|
||||
|
||||
static toLeagueDTO(league: League | null): LeagueDTO | null {
|
||||
if (!league) return null;
|
||||
|
||||
const socialLinks =
|
||||
league.socialLinks !== undefined
|
||||
? {
|
||||
...(league.socialLinks.discordUrl !== undefined
|
||||
? { discordUrl: league.socialLinks.discordUrl }
|
||||
: {}),
|
||||
...(league.socialLinks.youtubeUrl !== undefined
|
||||
? { youtubeUrl: league.socialLinks.youtubeUrl }
|
||||
: {}),
|
||||
...(league.socialLinks.websiteUrl !== undefined
|
||||
? { websiteUrl: league.socialLinks.websiteUrl }
|
||||
: {}),
|
||||
}
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
id: league.id,
|
||||
name: league.name,
|
||||
@@ -38,35 +54,37 @@ export class EntityMappers {
|
||||
ownerId: league.ownerId,
|
||||
settings: league.settings,
|
||||
createdAt: league.createdAt.toISOString(),
|
||||
socialLinks: league.socialLinks
|
||||
? {
|
||||
discordUrl: league.socialLinks.discordUrl,
|
||||
youtubeUrl: league.socialLinks.youtubeUrl,
|
||||
websiteUrl: league.socialLinks.websiteUrl,
|
||||
}
|
||||
: undefined,
|
||||
// usedSlots is populated by capacity-aware queries, so leave undefined here
|
||||
usedSlots: undefined,
|
||||
...(socialLinks !== undefined ? { socialLinks } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
static toLeagueDTOs(leagues: League[]): LeagueDTO[] {
|
||||
return leagues.map(league => ({
|
||||
id: league.id,
|
||||
name: league.name,
|
||||
description: league.description,
|
||||
ownerId: league.ownerId,
|
||||
settings: league.settings,
|
||||
createdAt: league.createdAt.toISOString(),
|
||||
socialLinks: league.socialLinks
|
||||
? {
|
||||
discordUrl: league.socialLinks.discordUrl,
|
||||
youtubeUrl: league.socialLinks.youtubeUrl,
|
||||
websiteUrl: league.socialLinks.websiteUrl,
|
||||
}
|
||||
: undefined,
|
||||
usedSlots: undefined,
|
||||
}));
|
||||
return leagues.map((league) => {
|
||||
const socialLinks =
|
||||
league.socialLinks !== undefined
|
||||
? {
|
||||
...(league.socialLinks.discordUrl !== undefined
|
||||
? { discordUrl: league.socialLinks.discordUrl }
|
||||
: {}),
|
||||
...(league.socialLinks.youtubeUrl !== undefined
|
||||
? { youtubeUrl: league.socialLinks.youtubeUrl }
|
||||
: {}),
|
||||
...(league.socialLinks.websiteUrl !== undefined
|
||||
? { websiteUrl: league.socialLinks.websiteUrl }
|
||||
: {}),
|
||||
}
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
id: league.id,
|
||||
name: league.name,
|
||||
description: league.description,
|
||||
ownerId: league.ownerId,
|
||||
settings: league.settings,
|
||||
createdAt: league.createdAt.toISOString(),
|
||||
...(socialLinks !== undefined ? { socialLinks } : {}),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
static toRaceDTO(race: Race | null): RaceDTO | null {
|
||||
@@ -76,31 +94,43 @@ export class EntityMappers {
|
||||
leagueId: race.leagueId,
|
||||
scheduledAt: race.scheduledAt.toISOString(),
|
||||
track: race.track,
|
||||
trackId: race.trackId,
|
||||
trackId: race.trackId ?? '',
|
||||
car: race.car,
|
||||
carId: race.carId,
|
||||
carId: race.carId ?? '',
|
||||
sessionType: race.sessionType,
|
||||
status: race.status,
|
||||
strengthOfField: race.strengthOfField,
|
||||
registeredCount: race.registeredCount,
|
||||
maxParticipants: race.maxParticipants,
|
||||
...(race.strengthOfField !== undefined
|
||||
? { strengthOfField: race.strengthOfField }
|
||||
: {}),
|
||||
...(race.registeredCount !== undefined
|
||||
? { registeredCount: race.registeredCount }
|
||||
: {}),
|
||||
...(race.maxParticipants !== undefined
|
||||
? { maxParticipants: race.maxParticipants }
|
||||
: {}),
|
||||
};
|
||||
}
|
||||
|
||||
static toRaceDTOs(races: Race[]): RaceDTO[] {
|
||||
return races.map(race => ({
|
||||
return races.map((race) => ({
|
||||
id: race.id,
|
||||
leagueId: race.leagueId,
|
||||
scheduledAt: race.scheduledAt.toISOString(),
|
||||
track: race.track,
|
||||
trackId: race.trackId,
|
||||
trackId: race.trackId ?? '',
|
||||
car: race.car,
|
||||
carId: race.carId,
|
||||
carId: race.carId ?? '',
|
||||
sessionType: race.sessionType,
|
||||
status: race.status,
|
||||
strengthOfField: race.strengthOfField,
|
||||
registeredCount: race.registeredCount,
|
||||
maxParticipants: race.maxParticipants,
|
||||
...(race.strengthOfField !== undefined
|
||||
? { strengthOfField: race.strengthOfField }
|
||||
: {}),
|
||||
...(race.registeredCount !== undefined
|
||||
? { registeredCount: race.registeredCount }
|
||||
: {}),
|
||||
...(race.maxParticipants !== undefined
|
||||
? { maxParticipants: race.maxParticipants }
|
||||
: {}),
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user