1
0
mirror of https://github.com/bitwarden/server synced 2025-12-18 01:03:17 +00:00

Stricter scene and query types

SeederAPI only serves Scenes, Recipes are inteded to be used locally only.
This commit is contained in:
Matt Gibson
2025-10-29 12:27:15 -07:00
parent 16ee5cfaad
commit 878b78b51e
14 changed files with 261 additions and 204 deletions

View File

@@ -1,37 +1,36 @@
using Bit.SeederApi.Models.Requests;
using Bit.SeederApi.Models.Requests;
using Bit.SeederApi.Services;
using Microsoft.AspNetCore.Mvc;
namespace Bit.SeederApi.Controllers
namespace Bit.SeederApi.Controllers;
[Route("query")]
public class QueryController(ILogger<QueryController> logger, ISeedService recipeService)
: Controller
{
[Route("query")]
public class QueryController(ILogger<QueryController> logger, IRecipeService recipeService)
: Controller
[HttpPost]
public IActionResult Query([FromBody] QueryRequestModel request)
{
[HttpPost]
public IActionResult Query([FromBody] QueryRequestModel request)
logger.LogInformation("Executing query: {Query}", request.Template);
try
{
logger.LogInformation("Executing query: {Query}", request.Template);
var result = recipeService.ExecuteQuery(request.Template, request.Arguments);
try
return Json(new { Result = result });
}
catch (RecipeNotFoundException ex)
{
return NotFound(new { Error = ex.Message });
}
catch (RecipeExecutionException ex)
{
logger.LogError(ex, "Error executing query: {Query}", request.Template);
return BadRequest(new
{
var result = recipeService.ExecuteQuery(request.Template, request.Arguments);
return Json(new { Result = result });
}
catch (RecipeNotFoundException ex)
{
return NotFound(new { Error = ex.Message });
}
catch (RecipeExecutionException ex)
{
logger.LogError(ex, "Error executing query: {Query}", request.Template);
return BadRequest(new
{
Error = ex.Message,
Details = ex.InnerException?.Message
});
}
Error = ex.Message,
Details = ex.InnerException?.Message
});
}
}
}