badge method
- @Route.get('/badge/<type>/<name>')
Future<Response>
badge(
- Request req,
- String type,
- String name
)
Implementation
@Route.get('/badge/<type>/<name>')
Future<shelf.Response> badge(
shelf.Request req, String type, String name) async {
var queryParameters = req.requestedUri.queryParameters;
var package = await metaStore.queryPackage(name);
if (package == null) {
return shelf.Response.notFound('Not found');
}
switch (type) {
case 'v':
var latest = semver.Version.primary(package.versions
.map((pv) => semver.Version.parse(pv.version))
.toList());
var color = latest.major == 0 ? 'orange' : 'blue';
return shelf.Response.found(
_getBadgeUrl('unpub', latest.toString(), color, queryParameters));
case 'd':
return shelf.Response.found(_getBadgeUrl(
'downloads', package.download.toString(), 'blue', queryParameters));
default:
return shelf.Response.notFound('Not found');
}
}