Files
vegasco/src/Vegasco.Server.Api/Consumptions/DeleteConsumptions.cs

33 lines
859 B
C#
Raw Normal View History

using Vegasco.Server.Api.Persistence;
2024-08-23 18:02:18 +02:00
namespace Vegasco.Server.Api.Consumptions;
2024-08-23 18:02:18 +02:00
public static class DeleteConsumption
{
public static RouteHandlerBuilder MapEndpoint(IEndpointRouteBuilder builder)
{
return builder
.MapDelete("consumptions/{id:guid}", Endpoint)
2025-06-16 20:28:37 +02:00
.WithTags("Consumptions")
.WithDescription("Deletes a consumption entry by ID")
2025-06-16 20:28:37 +02:00
.Produces(204)
.Produces(404);
2024-08-23 18:02:18 +02:00
}
private static async Task<IResult> Endpoint(
ApplicationDbContext dbContext,
Guid id,
CancellationToken cancellationToken)
{
Consumption? consumption = await dbContext.Consumptions.FindAsync([new ConsumptionId(id)], cancellationToken);
if (consumption is null)
{
return TypedResults.NotFound();
}
dbContext.Consumptions.Remove(consumption);
await dbContext.SaveChangesAsync(cancellationToken);
return TypedResults.NoContent();
}
}