removeUploader method

  1. @Route.delete('/api/packages/<name>/uploaders/<email>')
Future<Response> removeUploader(
  1. Request req,
  2. String name,
  3. String email
)

Implementation

@Route.delete('/api/packages/<name>/uploaders/<email>')
Future<shelf.Response> removeUploader(
    shelf.Request req, String name, String email) async {
  email = Uri.decodeComponent(email);
  var operatorEmail = await _getUploaderEmail(req);
  var package = await metaStore.queryPackage(name);

  // TODO: null
  if (package?.uploaders?.contains(operatorEmail) == false) {
    return _badRequest('no permission', status: HttpStatus.forbidden);
  }
  if (package?.uploaders?.contains(email) == false) {
    return _badRequest('email not uploader');
  }

  await metaStore.removeUploader(name, email);
  return _successMessage('uploader removed');
}