addUploader method

Future<Response> addUploader(
  1. Request req,
  2. String name
)

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!');
}