diff --git a/Iceshrimp.Backend/Controllers/AuthController.cs b/Iceshrimp.Backend/Controllers/AuthController.cs index 38ddeba8..7400cee3 100644 --- a/Iceshrimp.Backend/Controllers/AuthController.cs +++ b/Iceshrimp.Backend/Controllers/AuthController.cs @@ -1,5 +1,6 @@ using System.Diagnostics.CodeAnalysis; using System.Net.Mime; +using Iceshrimp.Backend.Controllers.Renderers; using Iceshrimp.Backend.Controllers.Schemas; using Iceshrimp.Backend.Core.Database; using Iceshrimp.Backend.Core.Database.Tables; @@ -17,12 +18,12 @@ namespace Iceshrimp.Backend.Controllers; [EnableRateLimiting("sliding")] [Produces(MediaTypeNames.Application.Json)] [Route("/api/iceshrimp/v1/auth")] -public class AuthController(DatabaseContext db, UserService userSvc) : ControllerBase +public class AuthController(DatabaseContext db, UserService userSvc, UserRenderer userRenderer) : ControllerBase { [HttpGet] [Authenticate] [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(AuthResponse))] - public IActionResult GetAuthStatus() + public async Task GetAuthStatus() { var session = HttpContext.GetSession(); @@ -33,16 +34,7 @@ public class AuthController(DatabaseContext db, UserService userSvc) : Controlle { Status = session.Active ? AuthStatusEnum.Authenticated : AuthStatusEnum.TwoFactor, Token = session.Token, - User = new UserResponse - { - Username = session.User.Username, - Id = session.User.Id, - AvatarUrl = session.User.AvatarUrl, - BannerUrl = session.User.BannerUrl, - DisplayName = session.User.DisplayName, - InstanceName = null, - InstanceIconUrl = null - } + User = await userRenderer.RenderOne(session.User) }); } @@ -86,16 +78,7 @@ public class AuthController(DatabaseContext db, UserService userSvc) : Controlle { Status = session.Active ? AuthStatusEnum.Authenticated : AuthStatusEnum.TwoFactor, Token = session.Token, - User = new UserResponse - { - Username = session.User.Username, - Id = session.User.Id, - AvatarUrl = session.User.AvatarUrl, - BannerUrl = session.User.BannerUrl, - DisplayName = session.User.DisplayName, - InstanceName = null, - InstanceIconUrl = null - } + User = await userRenderer.RenderOne(user) }); } diff --git a/Iceshrimp.Backend/Controllers/Mastodon/Renderers/UserRenderer.cs b/Iceshrimp.Backend/Controllers/Mastodon/Renderers/UserRenderer.cs index 7f1b5407..a3c51f82 100644 --- a/Iceshrimp.Backend/Controllers/Mastodon/Renderers/UserRenderer.cs +++ b/Iceshrimp.Backend/Controllers/Mastodon/Renderers/UserRenderer.cs @@ -51,7 +51,7 @@ public class UserRenderer(IOptions config, MfmConverter StatusesCount = user.NotesCount, Note = await mfmConverter.ToHtmlAsync(profile?.Description ?? "", mentions, user.Host), Url = profile?.Url ?? user.Uri ?? user.GetPublicUrl(config.Value), - AvatarStaticUrl = user.AvatarUrl ?? user.GetIdenticonUrl(config.Value), //TODO + AvatarStaticUrl = user.AvatarUrl ?? user.GetIdenticonUrlPng(config.Value), //TODO HeaderUrl = user.BannerUrl ?? _transparent, HeaderStaticUrl = user.BannerUrl ?? _transparent, //TODO MovedToAccount = null, //TODO diff --git a/Iceshrimp.Backend/Controllers/Renderers/UserRenderer.cs b/Iceshrimp.Backend/Controllers/Renderers/UserRenderer.cs index 326996c7..e9c5a8b2 100644 --- a/Iceshrimp.Backend/Controllers/Renderers/UserRenderer.cs +++ b/Iceshrimp.Backend/Controllers/Renderers/UserRenderer.cs @@ -25,7 +25,7 @@ public class UserRenderer(IOptions config, DatabaseConte Id = user.Id, Username = user.Username, DisplayName = user.DisplayName, - AvatarUrl = user.AvatarUrl ?? $"https://{config.Value.WebDomain}/identicon/{user.Id}", + AvatarUrl = user.AvatarUrl ?? user.GetIdenticonUrl(config.Value), BannerUrl = user.BannerUrl, InstanceName = instanceName, InstanceIconUrl = instanceIcon