From 6605997e805e85ba9c6e63a0f841f48619491343 Mon Sep 17 00:00:00 2001 From: pancakes Date: Wed, 27 Nov 2024 23:00:27 +1000 Subject: [PATCH] [backend/api] Add endpoints for getting and updating display name --- .../Controllers/Web/ProfileController.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Iceshrimp.Backend/Controllers/Web/ProfileController.cs b/Iceshrimp.Backend/Controllers/Web/ProfileController.cs index 154b8893..fa4fe5a2 100644 --- a/Iceshrimp.Backend/Controllers/Web/ProfileController.cs +++ b/Iceshrimp.Backend/Controllers/Web/ProfileController.cs @@ -2,6 +2,7 @@ using System.Net; using System.Net.Mime; using Iceshrimp.Backend.Controllers.Shared.Attributes; using Iceshrimp.Backend.Core.Database.Tables; +using Iceshrimp.Backend.Core.Extensions; using Iceshrimp.Backend.Core.Middleware; using Iceshrimp.Backend.Core.Services; using Iceshrimp.Shared.Schemas.Web; @@ -168,4 +169,27 @@ public class ProfileController(UserService userSvc, DriveService driveSvc) : Con await userSvc.UpdateLocalUserAsync(user, prevAvatarId, prevBannerId); } + + [HttpGet("display_name")] + [ProducesResults(HttpStatusCode.OK)] + public string? GetDisplayName() + { + var user = HttpContext.GetUserOrFail(); + return user.DisplayName; + } + + [HttpPost("display_name")] + [ProducesResults(HttpStatusCode.OK)] + public async Task UpdateDisplayNameAsync([FromHybrid] string displayName) + { + var user = HttpContext.GetUserOrFail(); + + var prevAvatarId = user.AvatarId; + var prevBannerId = user.BannerId; + + user.DisplayName = string.IsNullOrWhiteSpace(displayName) ? null : displayName.Trim(); + await userSvc.UpdateLocalUserAsync(user, prevAvatarId, prevBannerId); + + return user.DisplayName; + } } \ No newline at end of file