isn/src/isnd/Controllers/Packages/GetVersions.cs

38 lines
1.1 KiB
C#
Raw Normal View History

2022-04-17 14:10:20 +01:00
using Microsoft.AspNetCore.Mvc;
using NuGet.Versioning;
2022-04-17 16:22:40 +01:00
using isnd.Entities;
2022-04-17 14:10:20 +01:00
namespace isnd.Controllers
{
public partial class PackagesController
{
2022-07-10 17:05:05 +01:00
[HttpGet(_pkgRootPrefix + ApiConfig.GetVersion + "/{id}/{lower}/" + ApiConfig.Base)]
2022-04-17 14:10:20 +01:00
public IActionResult GetVersions(
string id,
string lower,
bool prerelease = false,
string packageType = null,
int skip = 0,
int take = 25)
{
if (take > maxTake)
{
ModelState.AddModelError("take", "Maximum exceeded");
}
// NugetVersion
if (!NuGetVersion.TryParse(lower, out NuGetVersion parsedVersion))
{
ModelState.AddModelError("lower", "invalid version string");
}
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok(new
{
2022-04-18 20:58:46 +01:00
versions = packageManager.GetVersions(
2022-04-17 14:10:20 +01:00
id, parsedVersion, prerelease, packageType, skip, take)
});
}
}
}