addUploader method
Implementation
Future<shelf.Response> addUploader(shelf.Request req, String name) async {
var body = await req.readAsString();
var email = Uri.splitQueryString(body)['email'];
if (email == null) {
return _bad('not found email information!');
}
var operatorEmail = await _getBearToken(req);
var package = await metaRepo.query(name);
if (package?.uploaders?.contains(operatorEmail) == false) {
return _bad('$operatorEmail has no permission!',
status: HttpStatus.forbidden);
}
if (package?.uploaders?.contains(email) == true) {
return _bad('$email alreay exists!');
}
await metaRepo.addUploader(name, email);
return _success('uploaded added!');
}