41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
export type PersonHistorySeasonRaw = {
|
|
seasonId: number;
|
|
show: number;
|
|
seasonNumber: number;
|
|
startDate?: string;
|
|
endDate?: string | null;
|
|
seasonParticipants: any[];
|
|
};
|
|
|
|
export type PersonHistoryEntry = {
|
|
showId: number;
|
|
seasonId: number;
|
|
seasonNumber: number;
|
|
};
|
|
|
|
const PERSON_API_BASE = "http://45.157.177.99:8080/persons";
|
|
|
|
export async function getPersonHistory(
|
|
personId: number
|
|
): Promise<PersonHistoryEntry[]> {
|
|
const url = `${PERSON_API_BASE}/${personId}/history`;
|
|
try {
|
|
console.log("[getPersonHistory] Fetch:", url);
|
|
const res = await fetch(url);
|
|
if (!res.ok) throw new Error("History fetch failed " + res.status);
|
|
const data: unknown = await res.json();
|
|
if (!Array.isArray(data)) {
|
|
console.warn("History expected array, got:", data);
|
|
return [];
|
|
}
|
|
return (data as PersonHistorySeasonRaw[]).map((s) => ({
|
|
showId: s.show,
|
|
seasonId: s.seasonId,
|
|
seasonNumber: s.seasonNumber,
|
|
}));
|
|
} catch (e) {
|
|
console.error("getPersonHistory error:", e);
|
|
return [];
|
|
}
|
|
}
|