getPackages method
Future<Response>
getPackages(
- Request req
)
Implementation
Future<shelf.Response> getPackages(shelf.Request req) async {
var params = req.requestedUri.queryParameters;
var size = int.tryParse(params['size'] ?? '') ?? 10;
var page = int.tryParse(params['page'] ?? '') ?? 0;
var sort = params['sort'] ?? 'download';
var q = params['q'] ?? '';
String? keyword, uploader, dependency;
keyword = q;
if (q.startsWith('email:') == true) {
uploader = q.substring(6).trim();
} else if (q.startsWith('depdendency:') == true) {
dependency = q.substring(11).trim();
}
var pkgs = await metaRepo.queries(
size: size,
page: page,
sort: sort,
keyword: keyword,
uploader: uploader,
dependency: dependency);
var data = pkgs
.map((it) => Package(
name: it.name,
description: it.versions.last.pubspec['description'],
tags: _getPkgTags(it.versions.last.pubspec),
latest: it.versions.last.version,
updatedAt: it.updatedAt)
.toJson())
.toList();
return _ok({'data': jsonEncode(data)});
}