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;
|
2026-07-05 17:22:57 +01:00
|
|
|
using Isn.Abstract;
|
2022-04-17 14:10:20 +01:00
|
|
|
|
|
|
|
|
namespace isnd.Controllers
|
|
|
|
|
{
|
2023-03-18 12:50:31 +00:00
|
|
|
public partial class PackagesController
|
2022-04-17 14:10:20 +01:00
|
|
|
{
|
|
|
|
|
|
|
|
|
|
// GET /autocomplete?id=isn.protocol&prerelease=true
|
2026-07-05 20:17:12 +01:00
|
|
|
[HttpGet("~/" + Constants.APIPrefix + ApiConfig.AutoComplete)]
|
2022-04-17 14:10:20 +01:00
|
|
|
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
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|