43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
using System.Threading.Tasks;
|
|
using isnd.Entities;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using isn.abst;
|
|
|
|
namespace isnd.Controllers
|
|
{
|
|
public partial class PackagesController
|
|
{
|
|
|
|
// https://docs.microsoft.com/en-us/nuget/api/catalog-resource#versioning
|
|
[HttpGet("~" + Constants.ApiVersionPrefix + ApiConfig.Catalog)]
|
|
public async Task<IActionResult> CatalogIndex()
|
|
{
|
|
return Ok(await packageManager.GetCatalogIndexAsync());
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpGet("~" + Constants.ApiVersionPrefix + ApiConfig.Registration + "/{id}/{version}.json")]
|
|
public async Task<IActionResult> CatalogRegistration(string id, string version)
|
|
{
|
|
if ("index" == version)
|
|
{
|
|
var query = new Data.Catalog.PackageRegistrationQuery
|
|
{
|
|
Query = id,
|
|
Prerelease = true
|
|
};
|
|
var index = await packageManager.GetPackageRegistrationIndexAsync(query);
|
|
if (index == null) return NotFound();
|
|
|
|
return Ok(index);
|
|
}
|
|
// return Package details
|
|
var leaf = await packageManager.GetPackageDetailsAsync(id, version, null);
|
|
|
|
if (null == leaf) return NotFound(new { id, version });
|
|
return Ok(leaf);
|
|
}
|
|
}
|
|
} |