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 CatalogIndex() { return Ok(await packageManager.GetCatalogIndexAsync()); } [HttpGet("~" + Constants.ApiVersionPrefix + ApiConfig.Registration + "/{id}/{version}.json")] public async Task 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); } } }