even more frontend stuff

This commit is contained in:
sam 2024-11-25 17:35:24 +01:00
parent 8bba5f6137
commit c0bb76580d
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
33 changed files with 796 additions and 178 deletions

View file

@ -303,8 +303,8 @@ public class MembersController(
.SetProperty(u => u.LastActive, clock.GetCurrentInstant())
);
// Re-fetch member to fetch the new sid
var updatedMember = await db.ResolveMemberAsync(CurrentUser!.Id, memberRef);
return Ok(memberRenderer.RenderMember(updatedMember, CurrentToken));
// Fetch the new sid then pass that to RenderMember
var newSid = await db.Members.Where(m => m.Id == member.Id).Select(m => m.Sid).FirstAsync();
return Ok(memberRenderer.RenderMember(member, CurrentToken, newSid));
}
}

View file

@ -346,13 +346,20 @@ public class UsersController(
.SetProperty(u => u.LastActive, clock.GetCurrentInstant())
);
// Get the user's new sid
var newSid = await db
.Users.Where(u => u.Id == CurrentUser.Id)
.Select(u => u.Sid)
.FirstAsync();
var user = await db.ResolveUserAsync(CurrentUser.Id);
return Ok(
await userRenderer.RenderUserAsync(
user,
CurrentUser,
CurrentUser,
CurrentToken,
renderMembers: false
renderMembers: false,
overrideSid: newSid
)
);
}

View file

@ -24,13 +24,17 @@ public class MemberRendererService(DatabaseContext db, Config config)
return members.Select(m => RenderPartialMember(m, renderUnlisted));
}
public MemberResponse RenderMember(Member member, Token? token = null)
public MemberResponse RenderMember(
Member member,
Token? token = null,
string? overrideSid = null
)
{
var renderUnlisted = token?.UserId == member.UserId && token.HasScope("user.read_hidden");
return new MemberResponse(
member.Id,
member.Sid,
overrideSid ?? member.Sid,
member.Name,
member.DisplayName ?? member.Name,
member.Bio,

View file

@ -20,6 +20,7 @@ public class UserRendererService(
Token? token = null,
bool renderMembers = true,
bool renderAuthMethods = false,
string? overrideSid = null,
CancellationToken ct = default
)
{
@ -59,7 +60,7 @@ public class UserRendererService(
return new UserResponse(
user.Id,
user.Sid,
overrideSid ?? user.Sid,
user.Username,
user.DisplayName,
user.Bio,