getVersion method
- @Route.get('/api/packages/<name>/versions/<version>')
Future<Response>
getVersion(
- Request req,
- String name,
- String version
)
Implementation
@Route.get('/api/packages/<name>/versions/<version>')
Future<shelf.Response> getVersion(
shelf.Request req, String name, String version) async {
// Important: + -> %2B, should be decoded here
try {
version = Uri.decodeComponent(version);
} catch (err) {
print(err);
}
var package = await metaStore.queryPackage(name);
if (package == null) {
return shelf.Response.found(Uri.parse(upstream)
.resolve('/api/packages/$name/versions/$version')
.toString());
}
var packageVersion =
package.versions.firstWhereOrNull((item) => item.version == version);
if (packageVersion == null) {
return shelf.Response.notFound('Not Found');
}
return _okWithJson(_versionToJson(packageVersion, req));
}