diff --git a/internal/anime/service/service.go b/internal/anime/service/service.go index 93f2c57..7f6c089 100644 --- a/internal/anime/service/service.go +++ b/internal/anime/service/service.go @@ -155,3 +155,20 @@ func (s *animeService) GetEpisodes(ctx context.Context, id int, page int) (jikan func (s *animeService) GetRandomAnime(ctx context.Context) (domain.Anime, error) { return s.jikan.GetRandomAnime(ctx) } + +func (s *animeService) GetAllEpisodes(ctx context.Context, id int) ([]domain.EpisodeData, error) { + episodes, err := s.jikan.GetAllEpisodes(ctx, id) + if err != nil { + return nil, err + } + result := make([]domain.EpisodeData, len(episodes)) + for i, ep := range episodes { + result[i] = domain.EpisodeData{ + MalID: ep.MalID, + Title: ep.Title, + IsFiller: ep.Filler, + IsRecap: ep.Recap, + } + } + return result, nil +} diff --git a/internal/domain/anime.go b/internal/domain/anime.go index 560cd43..81ac284 100644 --- a/internal/domain/anime.go +++ b/internal/domain/anime.go @@ -22,6 +22,7 @@ type AnimeService interface { GetRecommendations(ctx context.Context, id int) ([]Recommendation, error) GetRelations(ctx context.Context, id int) ([]jikan.RelationEntry, error) GetEpisodes(ctx context.Context, id int, page int) (jikan.EpisodesResponse, error) + GetAllEpisodes(ctx context.Context, id int) ([]EpisodeData, error) GetRandomAnime(ctx context.Context) (Anime, error) }