implements the Web API deletion

This commit is contained in:
2025-03-04 15:50:07 +00:00
parent 94c850c293
commit 5f7a346d8a

View File

@ -299,6 +299,8 @@ namespace isnd.Services
&& m.FullString == lower && (type == null || m.Type == type));
if (packageVersion == null) return null;
if (packageVersion.Package.OwnerId != uid) return null;
dbContext.PackageVersions.Remove(packageVersion);
await dbContext.SaveChangesAsync();
return new PackageDeletionReport { Deleted = true, DeletedVersion = packageVersion };
}
@ -404,9 +406,9 @@ namespace isnd.Services
var xMeta = XElement.Load(xmlReader, LoadOptions.None).Descendants().First();
var xMetaElts = xMeta.Descendants();
var xMetaElements = xMeta.Descendants();
string description = xMetaElts.FirstOrDefault(x => x.Name.LocalName == "description")?.Value;
string description = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "description")?.Value;
var dependencies = xMeta
.Descendants().FirstOrDefault(x => x.Name.LocalName == "dependencies");
@ -418,8 +420,10 @@ namespace isnd.Services
.Select(x => NewFrameworkDependencyGroup(x)).ToArray();
// FIXME default package type or null
var types = "Dependency";
pkgId = xMetaElts.FirstOrDefault(x => x.Name.LocalName == "id")?.Value;
string pkgVersion = xMetaElts.FirstOrDefault(x => x.Name.LocalName == "version")?.Value;
pkgId = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "id")?.Value;
if (!Package.ValidateId(pkgId))
throw new InvalidDataException();
string pkgVersion = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "version")?.Value;
if (!NuGetVersion.TryParse(pkgVersion, out nugetVersion))
throw new InvalidPackageException("metadata/version");
@ -430,7 +434,7 @@ namespace isnd.Services
string name = $"{pkgId}-{nugetVersion}." + Constants.PacketFileExtension;
fullPath = Path.Combine(pkgPath, name);
var authors = xMetaElts.FirstOrDefault(x => x.Name.LocalName == "authors")?.Value;
var authors = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "authors")?.Value;
var packageIdPathInfo = new DirectoryInfo(packageIdPath);
Data.Packages.Package pkg = dbContext.Packages.SingleOrDefault(p => p.Id == pkgId);