From fa6272ac289a85e71629f5ec4227fa194b61157c Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Wed, 26 Apr 2023 18:22:48 +0100 Subject: [PATCH] cleaner code --- .../Packages/PackagesController.Put.cs | 13 +++++++------ src/isnd/Data/Catalog/PackageRegistration.cs | 1 + src/isnd/Services/PackageManager.cs | 18 ++++-------------- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/isnd/Controllers/Packages/PackagesController.Put.cs b/src/isnd/Controllers/Packages/PackagesController.Put.cs index b04d5db..172d261 100644 --- a/src/isnd/Controllers/Packages/PackagesController.Put.cs +++ b/src/isnd/Controllers/Packages/PackagesController.Put.cs @@ -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)); } } diff --git a/src/isnd/Data/Catalog/PackageRegistration.cs b/src/isnd/Data/Catalog/PackageRegistration.cs index 6a1bb0e..9fefbec 100644 --- a/src/isnd/Data/Catalog/PackageRegistration.cs +++ b/src/isnd/Data/Catalog/PackageRegistration.cs @@ -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(); diff --git a/src/isnd/Services/PackageManager.cs b/src/isnd/Services/PackageManager.cs index 33a57e5..ec9890b 100644 --- a/src/isnd/Services/PackageManager.cs +++ b/src/isnd/Services/PackageManager.cs @@ -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)); - } } } \ No newline at end of file