using Marten; using System.Text.Json; namespace Brizco.Api.Controllers; public class RecipeController : ICarterModule { public void AddRoutes(IEndpointRouteBuilder app) { var group = app.NewVersionedApi("Brews") .MapGroup("api/brew"); group.MapGet("{recipeName}/latest", GetLatestBrewAsync) .WithDisplayName("Get Latest Brew") .WithDescription("Get latest brew that has been set for day , you have pass recipe name in route") .HasApiVersion(1.0); group.MapPost("{recipeName}", AddBrewAsync) .WithDisplayName("Add Brew") .WithDescription("Add latest brew that has been set for day , you have pass recipe model") .HasApiVersion(1.0); } private async Task GetLatestBrewAsync([FromRoute] string recipeName, [FromServices] IBrewService brewService, CancellationToken cancellationToken) => TypedResults.Ok(await brewService.GetLastBrewAsync(recipeName, cancellationToken)); private async Task AddBrewAsync([FromRoute] string recipeName, [FromBody] JsonDocument recipeObj, [FromServices] IBrewService brewService, CancellationToken cancellationToken) { await brewService.AddBrewAsync(recipeName, recipeObj, cancellationToken); return TypedResults.Ok(); } }