refactor: Split up functions
Signed-off-by: Tim Hårek Andreassen <tim@harek.no>
This commit is contained in:
parent
0434448d45
commit
f48a4145b4
|
|
@ -20,17 +20,17 @@ export type SearchResult = ArrayElement<NrkSearchResultList> & {
|
||||||
};
|
};
|
||||||
export type SeriesData = { episodes: NrkOriginalEpisode[] } & (RadioSeries["series"] | Podcast["series"]);
|
export type SeriesData = { episodes: NrkOriginalEpisode[] } & (RadioSeries["series"] | Podcast["series"]);
|
||||||
|
|
||||||
function parseSeries(nrkSeries: SeriesData): Series {
|
function parseSeries(nrkSeriesData: SeriesData): Series {
|
||||||
const imageUrl = nrkSeries.squareImage?.at(-1)?.url ?? "";
|
const imageUrl = nrkSeriesData.squareImage?.at(-1)?.url ?? "";
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: nrkSeries.id,
|
id: nrkSeriesData.id,
|
||||||
title: nrkSeries.titles.title,
|
title: nrkSeriesData.titles.title,
|
||||||
subtitle: nrkSeries.titles.subtitle ?? null,
|
subtitle: nrkSeriesData.titles.subtitle ?? null,
|
||||||
link: `https://radio.nrk.no/podkast/${nrkSeries.id}`,
|
link: `https://radio.nrk.no/podkast/${nrkSeriesData.id}`,
|
||||||
imageUrl: imageUrl,
|
imageUrl: imageUrl,
|
||||||
lastFetchedAt: new Date(),
|
lastFetchedAt: new Date(),
|
||||||
episodes: nrkSeries.episodes.map((episode) => {
|
episodes: nrkSeriesData.episodes.map((episode) => {
|
||||||
return {
|
return {
|
||||||
id: episode.id,
|
id: episode.id,
|
||||||
title: episode.titles.title,
|
title: episode.titles.title,
|
||||||
|
|
@ -62,7 +62,7 @@ async function search(query: string): Promise<NrkSearchResultList | null> {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getSeries(seriesId: string): Promise<Series | null> {
|
async function getSeriesData(seriesId: string): Promise<SeriesData | null> {
|
||||||
let [
|
let [
|
||||||
{ status: episodeStatus, body: episodeResponse },
|
{ status: episodeStatus, body: episodeResponse },
|
||||||
{ status: seriesStatus, body: serieResponse },
|
{ status: seriesStatus, body: serieResponse },
|
||||||
|
|
@ -100,8 +100,7 @@ async function getSeries(seriesId: string): Promise<Series | null> {
|
||||||
...serieResponse.series,
|
...serieResponse.series,
|
||||||
episodes,
|
episodes,
|
||||||
};
|
};
|
||||||
const parsedSeries = parseSeries(seriesData);
|
return seriesData;
|
||||||
return parsedSeries;
|
|
||||||
}
|
}
|
||||||
console.error(
|
console.error(
|
||||||
`Error getting episodes for ${seriesId}: EpisodeStatus: ${episodeStatus}. SerieStatus: ${seriesStatus}`,
|
`Error getting episodes for ${seriesId}: EpisodeStatus: ${episodeStatus}. SerieStatus: ${seriesStatus}`,
|
||||||
|
|
@ -109,6 +108,15 @@ async function getSeries(seriesId: string): Promise<Series | null> {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getSeries(seriesId: string): Promise<Series | null> {
|
||||||
|
const seriesData = await getSeriesData(seriesId);
|
||||||
|
if (!seriesData) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
const parsedSeries = parseSeries(seriesData);
|
||||||
|
return parsedSeries;
|
||||||
|
}
|
||||||
|
|
||||||
async function getEpisode(seriesId: string, episodeId: string): Promise<NrkPodcastEpisode | null> {
|
async function getEpisode(seriesId: string, episodeId: string): Promise<NrkPodcastEpisode | null> {
|
||||||
const url = `${nrkAPI}/radio/catalog/podcast/${seriesId}/episodes/${episodeId}`;
|
const url = `${nrkAPI}/radio/catalog/podcast/${seriesId}/episodes/${episodeId}`;
|
||||||
const { status, body: episode } = await get<NrkPodcastEpisode>(url);
|
const { status, body: episode } = await get<NrkPodcastEpisode>(url);
|
||||||
|
|
@ -151,3 +159,7 @@ export const nrkRadio = {
|
||||||
getEpisode,
|
getEpisode,
|
||||||
parseSeries,
|
parseSeries,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const forTestingOnly = {
|
||||||
|
getSeriesData,
|
||||||
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue