using TestWeb.Infra; using TestWeb.Utils; namespace TestWeb.Core.Users; public static class UpdateUserEndpoint { public record Request(string DisplayName); public class RequestValidator : AbstractValidator { public RequestValidator() { RuleFor(x => x.DisplayName).NotEmpty().MaximumLength(250); } } public static async Task> Handle( int id, Request request, AppDbContext db, CancellationToken ct) { var result = await db.Users .Where(x => x.Id == id) .SingleOrDefaultAsync(ct); if (result == null) { return TypedResults.NotFound(); } result.DisplayName = request.DisplayName; result.LastUpdated = DateTime.UtcNow; await db.SaveChangesAsync(ct); return TypedResults.Ok(); } }