isn/src/isnd/Controllers/Packages/PackagesController.Search.cs

44 lines
1.3 KiB
C#

using System.Linq;
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using isnd.Entities;
using isn.abst;
using isnd.Data.Catalog;
namespace isnd.Controllers
{
public partial class PackagesController
{
// GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
[HttpGet("~" + Constants.ApiVersionPrefix + ApiConfig.Find)]
[HttpPost("~" + Constants.ApiVersionPrefix + ApiConfig.Find)]
public async Task<IActionResult> Search(
string id,
bool prerelease = false,
// string packageType = null,
string semVerLevel = null,
int skip = 0,
int take = 25
)
{
id = id.Trim('\'');
if (semVerLevel == "2.0.0") prerelease = true;
//packageManager.SearchCatalogEntriesById(id, semVerLevel, packageType, prerelease);
var regs = await packageManager.SearchPackageAsync(
new PackageRegistrationQuery
{
Query = id,
Prerelease = prerelease,
Take = take,
Skip = skip
}
);
return Ok(new { totalHits = regs.Count(), data = regs });
}
}
}