searchVideos method

Future<SearchResult<Video>> searchVideos (String query, { Collection collection: Collection.Regular, int resultsPerPage: 15, int page: 1, int minWidth: null, int maxWidth: null, int minDuration: null, int maxDuration: null })

Implementation

Future<SearchResult<Video>> searchVideos(String query,
    {Collection collection = Collection.Regular,
    int resultsPerPage = 15,
    int page = 1,
    int minWidth = null,
    int maxWidth = null,
    int minDuration = null,
    int maxDuration = null}) 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);
}