36 lines
1.4 KiB
C#
36 lines
1.4 KiB
C#
using Brizco.Core.MartenServices.Abstracts;
|
|
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();
|
|
}
|
|
} |