public async Task <IActionResult> UnpublishPackageAsync(string package, string revision) { var overview = await _packageService.GetPackageAsync(PackageUtils.UnescapeName(package)); if (overview == null) { return(PackageNotFoundResponse); } var patch = new PackagePatch() { DeletedVersions = overview.Versions.Select(v => v.Id).ToList() }; await _packageService.CommitAsync(overview.Name, patch); return(Ok("removed all package versions")); }
private static PackagePatch ToPatch(UpdatePackageViewModel vm) { var patch = new PackagePatch() { UpdatedVersions = new List <PackageVersion>(), PublishedVersions = new List <PublishedPackageVersion>(), UpdatedDistTags = vm.DistTags }; foreach (var kvp in vm.Versions) { var id = new PackageIdentifier(vm.Name, kvp.Key); var version = new PublishedPackageVersion() { Id = id, Manifest = kvp.Value }; if (vm.Attachments == null || !vm.Attachments.TryGetValue(PackageUtils.GetTarballName(id), out var attachment)) { patch.UpdatedVersions.Add(version); } else { version.Tarball = new Tarball() { Package = id, Data = Convert.FromBase64String(attachment.Data) }; patch.PublishedVersions.Add(version); } } return(patch); }