queryPackages method

  1. @override
Future<UnpubQueryResult> queryPackages({
  1. required int size,
  2. required int page,
  3. required String sort,
  4. String? keyword,
  5. String? uploader,
  6. String? dependency,
})
override

Implementation

@override
Future<UnpubQueryResult> queryPackages({
  required size,
  required page,
  required sort,
  keyword,
  uploader,
  dependency,
}) {
  var selector =
      where.sortBy(sort, descending: true).limit(size).skip(page * size);

  if (keyword != null) {
    selector = selector.match('name', '.*$keyword.*');
  }
  if (uploader != null) {
    selector = selector.eq('uploaders', uploader);
  }
  if (dependency != null) {
    selector = selector.raw({
      'versions': {
        r'$elemMatch': {
          'pubspec.dependencies.$dependency': {r'$exists': true}
        }
      }
    });
  }

  return _queryPackagesBySelector(selector);
}