diff options
Diffstat (limited to 'utils/api/jikan/jikan.go')
| -rw-r--r-- | utils/api/jikan/jikan.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/utils/api/jikan/jikan.go b/utils/api/jikan/jikan.go index 3a7e796..1e45c74 100644 --- a/utils/api/jikan/jikan.go +++ b/utils/api/jikan/jikan.go @@ -260,3 +260,23 @@ func (c *JikanClient) GetAnimeCharacters(malID int) (*JikanAnimeCharacterRespons return &characterResponse, nil } + +// GetAnimeGenres fetches all anime genres from MAL +func (c *JikanClient) GetAnimeGenres() (*JikanGenresResponse, error) { + apiURL := "https://api.jikan.moe/v4/genres/anime" + + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + bodyBytes, err := c.makeRequest(ctx, apiURL) + if err != nil { + return nil, fmt.Errorf("failed to get anime genres: %w", err) + } + + var genresResponse JikanGenresResponse + if err := json.Unmarshal(bodyBytes, &genresResponse); err != nil { + return nil, fmt.Errorf("failed to decode genres response: %w", err) + } + + return &genresResponse, nil +} |
