-
Notifications
You must be signed in to change notification settings - Fork 1k
/
Copy pathfetchShow.js
40 lines (33 loc) · 971 Bytes
/
fetchShow.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import axios from 'axios';
import stripTags from 'striptags';
const formatSeasons = (allEpisodes) => {
const seasons = [
{id:0, name: "Season 1", episodes: []},
{id:1, name: "Season 2", episodes: []},
{id:2, name: "Season 3", episodes: []},
{id:3, name: "Season 4", episodes: []}
];
allEpisodes.forEach((episode) => {
seasons[episode.season-1].episodes.push({
...episode,
summary: stripTags(episode.summary),
image: episode.image ? episode.image.medium : null
});
});
return seasons;
};
const fetchShow = () => {
return axios
.get("https://api.tvmaze.com/singlesearch/shows?q=stranger&embed=episodes")
.then(res => {
const { data } = res;
return {
name: data.name,
image: data.image,
summary: stripTags(data.summary),
seasons: formatSeasons(data._embedded.episodes)
};
})
.catch(err => console.error(err));
};
export default fetchShow;