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

33 lines
1 KiB
C#
Raw Normal View History

2022-04-17 14:48:18 +01:00
using isnd.Services;
2022-04-17 16:22:40 +01:00
using isnd.Entities;
2022-04-17 14:10:20 +01:00
using Microsoft.AspNetCore.Mvc;
namespace isnd.Controllers
{
public partial class PackagesController
{
// GET /autocomplete?id=isn.protocol&prerelease=true
[HttpGet(_pkgRootPrefix + ApiConfig.AutoComplete)]
public IActionResult AutoComplete(
string id,
string semVerLevel,
bool prerelease = false,
string packageType = null,
int skip = 0,
int take = 25)
2022-04-17 14:48:18 +01:00
{
2022-07-03 14:50:57 +01:00
if (take > maxTake)
2022-04-17 14:10:20 +01:00
{
ModelState.AddModelError("take", "Maximum exceeded");
}
2022-04-17 14:48:18 +01:00
if (semVerLevel != PackageManager.BASE_API_LEVEL)
2022-04-17 14:10:20 +01:00
{
2022-04-17 14:48:18 +01:00
ModelState.AddModelError("semVerLevel", PackageManager.BASE_API_LEVEL + " expected");
2022-04-17 14:10:20 +01:00
}
2022-07-03 14:50:57 +01:00
if (ModelState.ErrorCount > 0) return BadRequest(ModelState);
return Ok(packageManager.AutoComplete(id,skip,take,prerelease,packageType));
2022-04-17 14:10:20 +01:00
}
}
}