Files
vegasco/src/Vegasco.Server.Api/Consumptions/DeleteConsumptions.cs
ThompsonNye b07b0c1f0f
All checks were successful
continuous-integration/drone/push Build is passing
Make code more understandable
2025-06-19 17:05:19 +02:00

41 lines
1.0 KiB
C#

using Microsoft.EntityFrameworkCore;
using Vegasco.Server.Api.Persistence;
namespace Vegasco.Server.Api.Consumptions;
public static class DeleteConsumption
{
public static RouteHandlerBuilder MapEndpoint(IEndpointRouteBuilder builder)
{
return builder
.MapDelete("consumptions/{id:guid}", Endpoint)
.WithTags("Consumptions")
.WithDescription("Deletes a consumption entry by ID")
.Produces(204)
.Produces(404);
}
private static async Task<IResult> Endpoint(
Guid id,
ApplicationDbContext dbContext,
ILoggerFactory loggerFactory,
CancellationToken cancellationToken)
{
var rows = await dbContext.Consumptions
.Where(x => x.Id == new ConsumptionId(id))
.ExecuteDeleteAsync(cancellationToken);
if (rows == 0)
{
return TypedResults.NotFound();
}
if (rows > 1)
{
var logger = loggerFactory.CreateLogger(nameof(DeleteConsumption));
logger.LogWarning("Deleted '{DeletedRowCount}' rows for id '{ConsumptionId}'", rows, id);
}
return TypedResults.NoContent();
}
}