requestMapByCategory method

Stream<Map<String, Map<MediaType, PixabayResponse?>>> requestMapByCategory({
  1. int? photoResultsPerCategory,
  2. int? videoResultsPerCategory,
  3. List<String>? categories,
})

request random media (images and/or videos) for a list of categories

Implementation

Stream<Map<String, Map<MediaType, PixabayResponse?>>> requestMapByCategory(
    {int? photoResultsPerCategory,
    int? videoResultsPerCategory,
    List<String>? categories}) async* {
  for (int i = 0; i < Category.categories.length; i++) {
    PixabayResponse? resVideo;
    PixabayResponse? resImage;

    if (categories == null ||
        categories.indexOf(Category.categories[i]) >= 0) {
      String category = Category.categories[i];

      if (photoResultsPerCategory != null)
        resImage = await requestImages(
            resultsPerPage: photoResultsPerCategory, category: category);

      if (photoResultsPerCategory != null)
        resVideo = await requestVideos(
            resultsPerPage: videoResultsPerCategory!, category: category);

      yield Map.from({
        category: {MediaType.photo: resImage, MediaType.video: resVideo}
      });
    }
  }
}