searchMoviesByGenre method
- String genreName
Searches for movies by genre name.
Implementation
Future<List<Movie>> searchMoviesByGenre(String genreName) async {
// Get genre list first.
final genreResponse = await _client.getJson('genre/movie/list');
final genres = genreResponse['genres'] as List<dynamic>;
// Find matching genre.
final matchingGenre = genres.firstWhere(
(genre) => (genre['name'] as String)
.toLowerCase()
.contains(genreName.toLowerCase()),
orElse: () => null,
);
if (matchingGenre == null) return [];
// Search movies by genre ID.
final genreId = matchingGenre['id'];
final results =
await _client.getJsonList('discover/movie?with_genres=$genreId');
return results.map((movie) => Movie.fromJson(movie)).toList();
}