cleaner code
This commit is contained in:
@ -108,7 +108,7 @@ namespace isnd.Controllers
|
||||
Id = pkgid,
|
||||
Description = pkgdesc,
|
||||
OwnerId = apikey.UserId,
|
||||
LatestVersion = commit,
|
||||
LatestVersion = commit
|
||||
};
|
||||
dbContext.Packages.Add(pkg);
|
||||
}
|
||||
@ -122,17 +122,18 @@ namespace isnd.Controllers
|
||||
// La version existe sur le disque,
|
||||
// mais si elle ne l'est pas en base de donnéés,
|
||||
// on remplace la version sur disque.
|
||||
string exFullString = version.ToFullString();
|
||||
var pkgv = dbContext.PackageVersions.Where(
|
||||
v => v.PackageId == pkg.Id
|
||||
v => v.PackageId == pkg.Id && v.FullString == exFullString
|
||||
);
|
||||
|
||||
if (pkgv !=null && pkgv.Count()==0)
|
||||
if (pkgv !=null && !pkgv.Any())
|
||||
{
|
||||
dest.Delete();
|
||||
}
|
||||
else {
|
||||
logger.LogWarning("400 : pkgversion:existant");
|
||||
ModelState.AddModelError("pkgversion", "existant" );
|
||||
string msg = $"existant {pkg.Id}-{exFullString}";
|
||||
logger.LogWarning("400 : {msg}", msg);
|
||||
ModelState.AddModelError("pkgversion", msg);
|
||||
return BadRequest(CreateAPIKO("existant", ModelState));
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ namespace isnd.Data.Catalog
|
||||
{
|
||||
new CatalogPage(bid, id, apiBase, pkg.Versions)
|
||||
};
|
||||
|
||||
if (pkg.Versions.Count>0)
|
||||
{
|
||||
CommitId = pkg.Versions.Max(v=>v.CommitNId).ToString();
|
||||
|
@ -291,26 +291,16 @@ namespace isnd.Services
|
||||
.Include(p => p.Versions)
|
||||
.Include(p => p.Owner)
|
||||
.Include(p=>p.LatestVersion)
|
||||
.ToListAsync())
|
||||
.Where(p => Matching(p, query))
|
||||
;
|
||||
.Where(p => p.Id == query.Query
|
||||
&& (p.Versions.Any() && query.Prerelease || p.Versions.Any(v => !v.IsPrerelease)))
|
||||
|
||||
.ToListAsync());
|
||||
var total = scope.Count();
|
||||
var pkgs = scope.Skip(query.Skip).Take(query.Take);
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user