Api/Brizco.Api/Controllers/RecipeController.cs

35 lines
1.3 KiB
C#

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<IResult> GetLatestBrewAsync([FromRoute] string recipeName,
[FromServices] IBrewService brewService, CancellationToken cancellationToken)
=> TypedResults.Ok(await brewService.GetLastBrewAsync(recipeName, cancellationToken));
private async Task<IResult> AddBrewAsync([FromRoute] string recipeName,
[FromBody] JsonDocument recipeObj, [FromServices] IBrewService brewService,
CancellationToken cancellationToken)
{
await brewService.AddBrewAsync(recipeName, recipeObj, cancellationToken);
return TypedResults.Ok();
}
}