searchVideos method

Future<SearchResult<Video?>?> searchVideos(
  1. String query, {
  2. Collection collection = Collection.Regular,
  3. int resultsPerPage = 15,
  4. int page = 1,
  5. int? minWidth,
  6. int? maxWidth,
  7. int? minDuration,
  8. int? maxDuration,
})

Implementation

Future<SearchResult<Video?>?> searchVideos(String query,
    {Collection collection = Collection.Regular,
    int resultsPerPage = 15,
    int page = 1,
    int? minWidth,
    int? maxWidth,
    int? minDuration,
    int? maxDuration}) async {
  var url = _getVideoEndpoint(collection, page, resultsPerPage, query);

  String? data = await _getData(url);

  if (data == null) return null;

  var resultData = jsonDecode(data);

  var videosData = resultData['videos'];

  if (videosData == null) return null;

  var videos = <Video?>[];

  for (dynamic videoData in videosData) {
    videos.add(_buildVideo(videoData));
  }
  return new SearchResult(resultData['page'], resultData['per_page'],
      resultData['total_results'], resultData['next_page'], videos);
}