58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
|
|
using System.ComponentModel.DataAnnotations;
|
||
|
|
using System.IO;
|
||
|
|
using System.Linq;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
using isnd.ViewModels;
|
||
|
|
using Microsoft.AspNetCore.Mvc;
|
||
|
|
using Microsoft.EntityFrameworkCore;
|
||
|
|
|
||
|
|
namespace isnd.Controllers
|
||
|
|
{
|
||
|
|
|
||
|
|
public partial class PackagesController
|
||
|
|
{
|
||
|
|
// TODO GET GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.{LOWER_VERSION}.nupkg
|
||
|
|
// LOWER_ID URL string yes The package ID, lowercase
|
||
|
|
// LOWER_VERSION URL string yes The package version, normalized and lowercased
|
||
|
|
// response 200 : the package
|
||
|
|
[HttpGet(_pkgRootPrefix + ApiConfig.Get + "/{id}/{lower}/{idf}-{lowerf}.nupkg")]
|
||
|
|
public IActionResult GetPackage(
|
||
|
|
[FromRoute][SafeName][Required] string id,
|
||
|
|
[FromRoute][SafeName][Required] string lower,
|
||
|
|
[FromRoute] string idf, [FromRoute] string lowerf)
|
||
|
|
{
|
||
|
|
var pkgpath = Path.Combine(_isndSettings.PackagesRootDir,
|
||
|
|
id, lower, $"{id}-{lower}.nupkg"
|
||
|
|
);
|
||
|
|
|
||
|
|
FileInfo pkgfi = new FileInfo(pkgpath);
|
||
|
|
|
||
|
|
if (!pkgfi.Exists)
|
||
|
|
{
|
||
|
|
return BadRequest("!pkgfi.Exists");
|
||
|
|
}
|
||
|
|
return File(pkgfi.OpenRead(), "application/zip; charset=binary");
|
||
|
|
}
|
||
|
|
|
||
|
|
// TODO GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec
|
||
|
|
// response 200 : the nuspec
|
||
|
|
[HttpGet(_pkgRootPrefix + ApiConfig.Get + "/{id}/{lower}/{idf}-{lowerf}.nuspec")]
|
||
|
|
public IActionResult GetNuspec(
|
||
|
|
[FromRoute][SafeName][Required] string id,
|
||
|
|
[FromRoute][SafeName][Required] string lower,
|
||
|
|
[FromRoute][SafeName][Required] string idf,
|
||
|
|
[FromRoute][SafeName][Required] string lowerf)
|
||
|
|
{
|
||
|
|
var pkgpath = Path.Combine(_isndSettings.PackagesRootDir,
|
||
|
|
id, lower, $"{id}.nuspec");
|
||
|
|
|
||
|
|
FileInfo pkgfi = new FileInfo(pkgpath);
|
||
|
|
if (!pkgfi.Exists)
|
||
|
|
{
|
||
|
|
return BadRequest("!pkgfi.Exists");
|
||
|
|
}
|
||
|
|
|
||
|
|
return File(pkgfi.OpenRead(), "text/xml; charset=utf-8");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|