diff --git a/src/isnd/Controllers/Packages/PackagesController.GetPackage.cs b/src/isnd/Controllers/Packages/PackagesController.GetPackage.cs
index 6c18f77..2bfda7e 100644
--- a/src/isnd/Controllers/Packages/PackagesController.GetPackage.cs
+++ b/src/isnd/Controllers/Packages/PackagesController.GetPackage.cs
@@ -5,6 +5,7 @@ using isnd.Attributes;
using isnd.Entities;
using isn.abst;
using System.Linq;
+using Microsoft.Extensions.Logging;
namespace isnd.Controllers
{
@@ -27,17 +28,18 @@ namespace isnd.Controllers
return BadRequest("Package does´nt exist in the file system.");
var pkgVersionDirInfo = pkgDirInfo.GetDirectories().FirstOrDefault(
s=>s.Name==version);
+ if (pkgVersionDirInfo==null)
+ return BadRequest("Package does´nt exist in the specified version.");
+
var pkgNameSpec=$"{id}-{version}.{Constants.PacketFileExtension}";
- if (pkgVersionDirInfo == null)
- return NotFound();
-
FileInfo pkgFileInfo = pkgVersionDirInfo.GetFiles()
.FirstOrDefault(p=>string.Compare(p.Name,pkgNameSpec,
System.StringComparison.InvariantCultureIgnoreCase)==0);
- if (!pkgFileInfo.Exists)
+ if (pkgFileInfo==null || !pkgFileInfo.Exists)
{
+ logger.LogError($"Not found in {pkgVersionDirInfo.FullName} : {pkgNameSpec}");
return BadRequest("Package version does´nt exist in the file system.");
}
return File(pkgFileInfo.OpenRead(), "application/zip; charset=binary");
diff --git a/src/isnd/Controllers/Packages/PackagesController.Put.cs b/src/isnd/Controllers/Packages/PackagesController.Put.cs
index c13bd38..ea6fb3d 100644
--- a/src/isnd/Controllers/Packages/PackagesController.Put.cs
+++ b/src/isnd/Controllers/Packages/PackagesController.Put.cs
@@ -34,23 +34,28 @@ namespace isnd.Controllers
logger.LogError("403 : no api-key");
return Unauthorized();
}
+ bool foundPackage = false;
+
foreach (IFormFile file in Request.Form.Files)
{
- FileInfo inputFileInfo = new FileInfo(file.Name);
+ FileInfo inputFileInfo = new FileInfo(file.FileName);
switch (inputFileInfo.Extension)
{
- case "nupkg":
- case "nupkgs":
+ case ".nupkg":
+ case ".nupkgs":
var libVersion = await packageManager.PutPackageAsync(inputFileInfo.Extension, file.OpenReadStream(), dbApiKey.UserId);
logger.LogInformation($"new package : {libVersion.PackageId} {libVersion.NugetLink}");
+ foundPackage = true;
break;
default:
- logger.LogInformation($"file extension is not supported : {inputFileInfo.Extension}");
+ logger.LogInformation($"file extension is not supported : {inputFileInfo.Extension}");
break;
}
-
+
}
- return Ok();
+ if (foundPackage)
+ return Ok();
+ return BadRequest("no package");
}
catch (Exception ex)
{
diff --git a/src/isnd/Services/PackageManager.cs b/src/isnd/Services/PackageManager.cs
index 8953266..295e19f 100644
--- a/src/isnd/Services/PackageManager.cs
+++ b/src/isnd/Services/PackageManager.cs
@@ -441,7 +441,7 @@ namespace isnd.Services
string packageIdPath = Path.Combine(isndSettings.PackagesRootDir,
pkgId);
pkgPath = Path.Combine(packageIdPath, nugetVersion.ToFullString());
- string name = $"{pkgId}-{nugetVersion}." + fileExtension;
+ string name = $"{pkgId}-{nugetVersion}" + fileExtension;
fullPath = Path.Combine(pkgPath, name);
var authors = xMetaElements.FirstOrDefault(x => x.Name.LocalName == "authors")?.Value;
diff --git a/test/data/packages/AsciiDocNet.1.0.0.nupkg b/test/data/packages/AsciiDocNet.1.0.0.nupkg
new file mode 100644
index 0000000..9e5eacb
Binary files /dev/null and b/test/data/packages/AsciiDocNet.1.0.0.nupkg differ
diff --git a/test/data/test-isn/NuGet.Config b/test/data/test-isn/NuGet.Config
index 966fc61..3d80239 100644
--- a/test/data/test-isn/NuGet.Config
+++ b/test/data/test-isn/NuGet.Config
@@ -3,4 +3,7 @@
+
+
+
diff --git a/test/isnd.tests/UnitTestWebHost.cs b/test/isnd.tests/UnitTestWebHost.cs
index dfe83ee..3ebaac7 100644
--- a/test/isnd.tests/UnitTestWebHost.cs
+++ b/test/isnd.tests/UnitTestWebHost.cs
@@ -183,7 +183,7 @@ namespace isnd.host.tests
PackageUpdateResource pushRes = await repository.GetResourceAsync();
SymbolPackageUpdateResourceV3 symbolPackageResource = await repository.GetResourceAsync();
- await pushRes.Push(new List{ "../../../Yavsc.Abstract.1.0.8.nupkg" }, null,
+ await pushRes.Push(new List{ "/home/paul/workspace/isn/test/data/packages/AsciiDocNet.1.0.0.nupkg" }, null,
5000, false, GetApiKey, GetSymbolsApiKey, false, false, symbolPackageResource, logger);
}