using Hutopy.Web.Common.Security; using Hutopy.Web.Features.Users.Data; namespace Hutopy.Web.Features.Users.Handlers; [PublicAPI] public record ChangeFullnameRequest( string? Firstname, string? Lastname); [PublicAPI] public class ChangeFullnameHandler( IdentityUserManager userManager) : Endpoint { public override void Configure() { Post("/api/users/fullname"); Options(o => o.WithTags("Users")); } public override async Task HandleAsync( ChangeFullnameRequest request, CancellationToken ct) { var user = await userManager.FindByIdAsync(HttpContext.User.GetUserId().ToString()); if (user is null) { await SendNotFoundAsync(ct); return; } user.Firstname = request.Firstname; user.Lastname = request.Lastname; var result = await userManager.UpdateAsync(user); if (result.Succeeded) await SendOkAsync(ct); else await SendUnauthorizedAsync(ct); } }