diff --git a/README.md b/README.md index f55d08f..7de07f2 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ isnd& # get an api-key from -isn push -k -s http://localhost:5000/packages your-lame-versionned.nupkg +isn push -k -s http://localhost:5000/index.json your-lame-versionned.nupkg ```` @@ -65,8 +65,13 @@ sudo chown root.root /usr/local/bin/isn ### Mises à jour ````bash +# compiler tout +dotnet publish -c Release +# MAJ du serveur +sudo systemctl stop isnd sudo cp -a src/isnd/bin/Release/netcoreapp2.1/publish/* /srv/www/isnd -sudo systemctl restart isnd +sudo systemctl start isnd +# MAJ du client sudo cp -a src/isn/bin/Release/net472/* /usr/local/lib/isn sudo chmod +x /usr/local/lib/isn/isn.exe ```` diff --git a/src/isnd/Controllers/PackagesController.Put.cs b/src/isnd/Controllers/PackagesController.Put.cs index b7c4131..b99b1e5 100644 --- a/src/isnd/Controllers/PackagesController.Put.cs +++ b/src/isnd/Controllers/PackagesController.Put.cs @@ -20,7 +20,7 @@ namespace isn.Controllers public partial class PackagesController { - [HttpPut("packages")] + [HttpPut(_pkgRootPrefix)] public async Task Put() { try @@ -31,11 +31,11 @@ namespace isn.Controllers var files = new List(); ViewData["files"] = files; - var clearkey = protector.Unprotect(apiKey); - var apikey = dbContext.ApiKeys.SingleOrDefault(k => k.Id == clearkey); + var clearkey = _protector.Unprotect(apiKey); + var apikey = _dbContext.ApiKeys.SingleOrDefault(k => k.Id == clearkey); if (apikey == null) { - logger.LogError("403 : no api-key"); + _logger.LogError("403 : no api-key"); return Unauthorized(); } @@ -70,14 +70,14 @@ namespace isn.Controllers pkgid = reader.GetId(); version = reader.GetVersion(); - string pkgidpath = Path.Combine(nugetSettings.PackagesRootDir, + string pkgidpath = Path.Combine(_nugetSettings.PackagesRootDir, pkgid); pkgpath = Path.Combine(pkgidpath, version.ToFullString()); string name = $"{pkgid}-{version}.nupkg"; fullpath = Path.Combine(pkgpath, name); var destpkgiddir = new DirectoryInfo(pkgidpath); - Package package = dbContext.Packages.SingleOrDefault(p => p.Id == pkgid); + Package package = _dbContext.Packages.SingleOrDefault(p => p.Id == pkgid); if (package != null) { if (package.OwnerId != apikey.UserId) @@ -94,7 +94,7 @@ namespace isn.Controllers Description = pkgdesc, OwnerId = apikey.UserId }; - dbContext.Packages.Add(package); + _dbContext.Packages.Add(package); } if (!destpkgiddir.Exists) destpkgiddir.Create(); @@ -105,7 +105,7 @@ namespace isn.Controllers { ViewData["msg"] = "existant"; ViewData["ecode"] = 1; - logger.LogWarning("400 : existant"); + _logger.LogWarning("400 : existant"); return base.BadRequest(new { error = ModelState }); } else @@ -114,12 +114,12 @@ namespace isn.Controllers source.MoveTo(fullpath); files.Add(name); string fullstringversion = version.ToFullString(); - var pkgvers = dbContext.PackageVersions.Where + var pkgvers = _dbContext.PackageVersions.Where (v => v.PackageId == package.Id && v.FullString == fullstringversion); if (pkgvers.Count() > 0) { foreach (var v in pkgvers.ToArray()) - dbContext.PackageVersions.Remove(v); + _dbContext.PackageVersions.Remove(v); } foreach (var type in types) { @@ -133,11 +133,11 @@ namespace isn.Controllers FullString = version.ToFullString(), Type = type.Name }; - dbContext.PackageVersions.Add(pkgver); + _dbContext.PackageVersions.Add(pkgver); } - await dbContext.SaveChangesAsync(); + await _dbContext.SaveChangesAsync(); - logger.LogInformation($"new package : {nuspec.Name}"); + _logger.LogInformation($"new package : {nuspec.Name}"); } } using (var shacrypto = System.Security.Cryptography.SHA512.Create()) @@ -163,8 +163,8 @@ namespace isn.Controllers } catch (Exception ex) { - logger.LogError(ex.Message); - logger.LogError("Stack Trace: " + ex.StackTrace); + _logger.LogError(ex.Message); + _logger.LogError("Stack Trace: " + ex.StackTrace); return new ObjectResult(new { ViewData, ex.Message }) { StatusCode = 500 }; } diff --git a/src/isnd/Controllers/PackagesController.cs b/src/isnd/Controllers/PackagesController.cs index 5b0e0ea..44827c6 100644 --- a/src/isnd/Controllers/PackagesController.cs +++ b/src/isnd/Controllers/PackagesController.cs @@ -28,30 +28,29 @@ namespace isn.Controllers const string _pkgRootPrefix = "~/package"; const string defaultSemVer = "2.0.0"; - private readonly Resource[] ressources; - private readonly ILogger logger; - private readonly IDataProtector protector; + private readonly Resource[] _ressources; + private readonly ILogger _logger; + private readonly IDataProtector _protector; - private readonly NugetSettings nugetSettings; - readonly ApplicationDbContext dbContext; - private readonly PackageManager packageManager; + private readonly NugetSettings _nugetSettings; + readonly ApplicationDbContext _dbContext; + private readonly PackageManager _packageManager; private readonly IUnleash _unleashĈlient; public PackagesController( - PackageManager packageManager, ILoggerFactory loggerFactory, IDataProtectionProvider provider, IOptions nugetOptions, IUnleash unleashĈlient, ApplicationDbContext dbContext) { - logger = loggerFactory.CreateLogger(); - nugetSettings = nugetOptions.Value; - protector = provider.CreateProtector(nugetSettings.ProtectionTitle); - this.dbContext = dbContext; - this.packageManager = packageManager; + _logger = loggerFactory.CreateLogger(); + _nugetSettings = nugetOptions.Value; + _protector = provider.CreateProtector(_nugetSettings.ProtectionTitle); + _dbContext = dbContext; + _packageManager = new PackageManager(dbContext); _unleashĈlient = unleashĈlient; - ressources = packageManager.GetResources(_unleashĈlient).ToArray(); + _ressources = _packageManager.GetResources(_unleashĈlient).ToArray(); } // dotnet add . package -s http://localhost:5000/packages isn @@ -64,7 +63,7 @@ namespace isn.Controllers [HttpGet("~/index.json")] public IActionResult ApiIndex() { - return Ok(ressources); + return Ok(_ressources); } @@ -91,7 +90,7 @@ namespace isn.Controllers } if (ModelState.IsValid) { - return Ok(packageManager.SearchByName(q,skip,take,prerelease,packageType)); + return Ok(_packageManager.SearchByName(q,skip,take,prerelease,packageType)); } return BadRequest(new { error = ModelState }); } @@ -116,7 +115,7 @@ namespace isn.Controllers ModelState.AddModelError("semVerLevel", defaultSemVer + " expected"); } - return Ok(packageManager.AutoComplete(id,skip,take,prerelease,packageType)); + return Ok(_packageManager.AutoComplete(id,skip,take,prerelease,packageType)); } // TODO GET {@id}/{LOWER_ID}/index.json // LOWER_ID URL string yes The package ID, lowercased @@ -145,7 +144,7 @@ namespace isn.Controllers } return Ok(new { - versions = packageManager.GetVersions( + versions = _packageManager.GetVersions( id, parsedVersion, prerelease, packageType, skip, take) }); } @@ -159,7 +158,7 @@ namespace isn.Controllers [FromRoute] string id, [FromRoute] string lower, [FromRoute] string idf, [FromRoute] string lowerf) { - var pkgpath = Path.Combine(nugetSettings.PackagesRootDir, + var pkgpath = Path.Combine(_nugetSettings.PackagesRootDir, id, lower, $"{idf}.{lowerf}.nupkg" ); @@ -176,7 +175,7 @@ namespace isn.Controllers [FromRoute][SafeName][Required] string idf, [FromRoute][SafeName][Required] string lowerf) { - var pkgpath = Path.Combine(nugetSettings.PackagesRootDir, + var pkgpath = Path.Combine(_nugetSettings.PackagesRootDir, id, lower, $"{idf}.{lowerf}.nuspec"); FileInfo pkgfi = new FileInfo(pkgpath); diff --git a/src/isnd/Startup.cs b/src/isnd/Startup.cs index ead6c85..6e9834a 100644 --- a/src/isnd/Startup.cs +++ b/src/isnd/Startup.cs @@ -20,6 +20,7 @@ using Unleash.ClientFactory; using isnd.Entities; using Microsoft.Extensions.Options; using isnd.Helpers; +using isnd.Services; namespace isn { @@ -70,7 +71,6 @@ namespace isn var config = s.GetRequiredService>(); return s.GetRequiredService().CreateUnleahClient(config.Value); }); - // _unleashĈlient = env.CreateUnleahClient(unleashClientSettings.Value); var smtpSettingsconf = Configuration.GetSection("Smtp"); services.Configure(smtpSettingsconf);