Files
server/util/SeederApi/Controllers/QueryController.cs
Matt Gibson 5596ffce0d [pm-34486] require basic auth on seeder api endpoints (#7368)
* [pm-34486] require basic auth on seeder api endpoints

* Fixup tests with basic auth
2026-04-03 07:22:23 +02:00

35 lines
1.0 KiB
C#

using Bit.SeederApi.Execution;
using Bit.SeederApi.Models.Request;
using Bit.SeederApi.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Bit.SeederApi.Controllers;
[Authorize]
[Route("query")]
public class QueryController(ILogger<QueryController> logger, IQueryExecutor queryExecutor) : Controller
{
[HttpPost]
public async Task<IActionResult> Query([FromBody] QueryRequestModel request)
{
logger.LogInformation("Executing query: {Query}", request.Template);
try
{
var result = await queryExecutor.Execute(request.Template, request.Arguments);
return Json(result);
}
catch (QueryNotFoundException ex)
{
return NotFound(new { Error = ex.Message });
}
catch (QueryExecutionException ex)
{
logger.LogError(ex, "Error executing query: {Query}", request.Template);
return BadRequest(new { Error = ex.Message, Details = ex.InnerException?.Message });
}
}
}