fix: tolerate missing race cover image field
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
This commit is contained in:
@@ -66,7 +66,7 @@ export function rowToDto(row: RaceRow): RaceDto {
|
|||||||
distanceKm: parseFloat(row.distance_km),
|
distanceKm: parseFloat(row.distance_km),
|
||||||
status: row.status,
|
status: row.status,
|
||||||
officialUrl: row.official_url,
|
officialUrl: row.official_url,
|
||||||
coverImageUrl: row.cover_image_url,
|
coverImageUrl: row.cover_image_url ?? null,
|
||||||
startTime: row.start_time,
|
startTime: row.start_time,
|
||||||
clusterSchedule: row.cluster_schedule,
|
clusterSchedule: row.cluster_schedule,
|
||||||
bibPickup: row.bib_pickup,
|
bibPickup: row.bib_pickup,
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ function isNullableString(value: unknown): value is string | null {
|
|||||||
return value === null || typeof value === "string";
|
return value === null || typeof value === "string";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isOptionalNullableString(value: unknown): value is string | null | undefined {
|
||||||
|
return value === undefined || isNullableString(value);
|
||||||
|
}
|
||||||
|
|
||||||
function normalizeRace(input: unknown): Race {
|
function normalizeRace(input: unknown): Race {
|
||||||
const race = input as Partial<Race>;
|
const race = input as Partial<Race>;
|
||||||
|
|
||||||
@@ -23,7 +27,7 @@ function normalizeRace(input: unknown): Race {
|
|||||||
race?.status === "registered" ||
|
race?.status === "registered" ||
|
||||||
race?.status === "completed") &&
|
race?.status === "completed") &&
|
||||||
isNullableString(race?.officialUrl) &&
|
isNullableString(race?.officialUrl) &&
|
||||||
isNullableString(race?.coverImageUrl) &&
|
isOptionalNullableString(race?.coverImageUrl) &&
|
||||||
isNullableString(race?.startTime) &&
|
isNullableString(race?.startTime) &&
|
||||||
isNullableString(race?.clusterSchedule) &&
|
isNullableString(race?.clusterSchedule) &&
|
||||||
isNullableString(race?.bibPickup) &&
|
isNullableString(race?.bibPickup) &&
|
||||||
@@ -49,7 +53,7 @@ function normalizeRace(input: unknown): Race {
|
|||||||
distanceKm: race.distanceKm,
|
distanceKm: race.distanceKm,
|
||||||
status: race.status,
|
status: race.status,
|
||||||
officialUrl: race.officialUrl,
|
officialUrl: race.officialUrl,
|
||||||
coverImageUrl: race.coverImageUrl,
|
coverImageUrl: race.coverImageUrl ?? null,
|
||||||
startTime: race.startTime,
|
startTime: race.startTime,
|
||||||
clusterSchedule: race.clusterSchedule,
|
clusterSchedule: race.clusterSchedule,
|
||||||
bibPickup: race.bibPickup,
|
bibPickup: race.bibPickup,
|
||||||
|
|||||||
Reference in New Issue
Block a user