cleaner code

main
Paul Schneider 1 year ago
parent 77a16c5551
commit fa6272ac28
3 changed files with 12 additions and 20 deletions

@ -108,7 +108,7 @@ namespace isnd.Controllers
Id = pkgid, Id = pkgid,
Description = pkgdesc, Description = pkgdesc,
OwnerId = apikey.UserId, OwnerId = apikey.UserId,
LatestVersion = commit, LatestVersion = commit
}; };
dbContext.Packages.Add(pkg); dbContext.Packages.Add(pkg);
} }
@ -122,17 +122,18 @@ namespace isnd.Controllers
// La version existe sur le disque, // La version existe sur le disque,
// mais si elle ne l'est pas en base de donnéés, // mais si elle ne l'est pas en base de donnéés,
// on remplace la version sur disque. // on remplace la version sur disque.
string exFullString = version.ToFullString();
var pkgv = dbContext.PackageVersions.Where( var pkgv = dbContext.PackageVersions.Where(
v => v.PackageId == pkg.Id v => v.PackageId == pkg.Id && v.FullString == exFullString
); );
if (pkgv !=null && !pkgv.Any())
if (pkgv !=null && pkgv.Count()==0)
{ {
dest.Delete(); dest.Delete();
} }
else { else {
logger.LogWarning("400 : pkgversion:existant"); string msg = $"existant {pkg.Id}-{exFullString}";
ModelState.AddModelError("pkgversion", "existant" ); logger.LogWarning("400 : {msg}", msg);
ModelState.AddModelError("pkgversion", msg);
return BadRequest(CreateAPIKO("existant", ModelState)); return BadRequest(CreateAPIKO("existant", ModelState));
} }
} }

@ -20,6 +20,7 @@ namespace isnd.Data.Catalog
{ {
new CatalogPage(bid, id, apiBase, pkg.Versions) new CatalogPage(bid, id, apiBase, pkg.Versions)
}; };
if (pkg.Versions.Count>0) if (pkg.Versions.Count>0)
{ {
CommitId = pkg.Versions.Max(v=>v.CommitNId).ToString(); CommitId = pkg.Versions.Max(v=>v.CommitNId).ToString();

@ -291,26 +291,16 @@ namespace isnd.Services
.Include(p => p.Versions) .Include(p => p.Versions)
.Include(p => p.Owner) .Include(p => p.Owner)
.Include(p=>p.LatestVersion) .Include(p=>p.LatestVersion)
.ToListAsync()) .Where(p => p.Id == query.Query
.Where(p => Matching(p, query)) && (p.Versions.Any() && query.Prerelease || p.Versions.Any(v => !v.IsPrerelease)))
;
.ToListAsync());
var total = scope.Count(); var total = scope.Count();
var pkgs = scope.Skip(query.Skip).Take(query.Take); var pkgs = scope.Skip(query.Skip).Take(query.Take);
return pkgs.Select(p => new PackageRegistration(bid, query.Query, apiBase, p)); return pkgs.Select(p => new PackageRegistration(bid, query.Query, apiBase, p));
} }
private static bool MatchingExact(Data.Packages.Package p, PackageRegistrationQuery query)
{
return
p.Id == query.Query
&& (query.Prerelease || p.Versions.Any(v => !v.IsPrerelease));
}
private static bool Matching(Data.Packages.Package p, PackageRegistrationQuery query)
{
return p.Id.StartsWith(query.Query)
&& (query.Prerelease || p.Versions.Any(v => !v.IsPrerelease));
}
} }
} }
Loading…