addUploader method
- @Route.post('/api/packages/<name>/uploaders')
Future<Response>
addUploader(
- Request req,
- String name
)
Implementation
@Route.post('/api/packages/<name>/uploaders')
Future<shelf.Response> addUploader(shelf.Request req, String name) async {
var body = await req.readAsString();
var email = Uri.splitQueryString(body)['email']!; // TODO: null
var operatorEmail = await _getUploaderEmail(req);
var package = await metaStore.queryPackage(name);
if (package?.uploaders?.contains(operatorEmail) == false) {
return _badRequest('no permission', status: HttpStatus.forbidden);
}
if (package?.uploaders?.contains(email) == true) {
return _badRequest('email already exists');
}
await metaStore.addUploader(name, email);
return _successMessage('uploader added');
}