Skip to content

Commit

Permalink
fix(series): add empty media items filter (#415)
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonLantukh authored Dec 8, 2023
1 parent 547775e commit c47ca66
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 22 deletions.
40 changes: 20 additions & 20 deletions src/services/api.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,22 @@ export default class ApiService {
return playlist;
};

private transformEpisodes = (episodesRes: EpisodesRes, seasonNumber?: number) => {
const { episodes, page, page_limit, total } = episodesRes;

// Adding images and keys for media items
return {
episodes: episodes
.filter((el) => el.media_item)
.map((el) => ({
...this.transformMediaItem(el.media_item as PlaylistItem),
seasonNumber: seasonNumber?.toString() || el.season_number?.toString() || '',
episodeNumber: String(el.episode_number),
})),
pagination: { page, page_limit, total },
};
};

/**
* Get playlist by id
* @param {string} id
Expand Down Expand Up @@ -185,17 +201,9 @@ export default class ApiService {
});

const response = await fetch(url);
const { episodes, page, page_limit, total }: EpisodesRes = await getDataOrThrow(response);
const episodesRes: EpisodesRes = await getDataOrThrow(response);

// Adding images and keys for media items
return {
episodes: episodes.map((el) => ({
...this.transformMediaItem(el.media_item),
seasonNumber: el.season_number ? String(el.season_number) : '',
episodeNumber: String(el.episode_number),
})),
pagination: { page, page_limit, total },
};
return this.transformEpisodes(episodesRes);
};

/**
Expand All @@ -221,17 +229,9 @@ export default class ApiService {
const url = addQueryParams(`${import.meta.env.APP_API_BASE_URL}${pathname}`, { page_offset: pageOffset, page_limit: pageLimit });

const response = await fetch(url);
const { episodes, page, page_limit, total }: EpisodesRes = await getDataOrThrow(response);
const episodesRes: EpisodesRes = await getDataOrThrow(response);

// Adding images and keys for media items
return {
episodes: episodes.map((el) => ({
...this.transformMediaItem(el.media_item),
seasonNumber: String(seasonNumber),
episodeNumber: String(el.episode_number),
})),
pagination: { page, page_limit, total },
};
return this.transformEpisodes(episodesRes, seasonNumber);
};

getAdSchedule = async (id: string | undefined | null): Promise<AdSchedule | undefined> => {
Expand Down
4 changes: 2 additions & 2 deletions types/series.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ export type GetSeriesParams = {

export type Episode = {
episode_number: number;
season_number: number;
media_item: PlaylistItem;
season_number: number | null;
media_item: PlaylistItem | null;
};

export type Season = {
Expand Down

0 comments on commit c47ca66

Please sign in to comment.