[backend/federation] Trigger user updates on web & mastodon api calls (ISH-35)
This commit is contained in:
parent
0f670c1953
commit
435632857b
3 changed files with 9 additions and 4 deletions
|
@ -47,7 +47,7 @@ public class AccountController(
|
|||
{
|
||||
var user = await db.Users.IncludeCommonProperties().FirstOrDefaultAsync(p => p.Id == id) ??
|
||||
throw GracefulException.RecordNotFound();
|
||||
var res = await userRenderer.RenderAsync(user);
|
||||
var res = await userRenderer.RenderAsync(await userResolver.GetUpdatedUser(user));
|
||||
return Ok(res);
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,12 @@ namespace Iceshrimp.Backend.Controllers;
|
|||
[EnableRateLimiting("sliding")]
|
||||
[Route("/api/iceshrimp/v1/user/{id}")]
|
||||
[Produces(MediaTypeNames.Application.Json)]
|
||||
public class UserController(DatabaseContext db, UserRenderer userRenderer, NoteRenderer noteRenderer) : ControllerBase
|
||||
public class UserController(
|
||||
DatabaseContext db,
|
||||
UserRenderer userRenderer,
|
||||
NoteRenderer noteRenderer,
|
||||
ActivityPub.UserResolver userResolver
|
||||
) : ControllerBase
|
||||
{
|
||||
[HttpGet]
|
||||
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(UserResponse))]
|
||||
|
@ -26,7 +31,7 @@ public class UserController(DatabaseContext db, UserRenderer userRenderer, NoteR
|
|||
.FirstOrDefaultAsync(p => p.Id == id) ??
|
||||
throw GracefulException.NotFound("User not found");
|
||||
|
||||
return Ok(userRenderer.RenderOne(user));
|
||||
return Ok(userRenderer.RenderOne(await userResolver.GetUpdatedUser(user)));
|
||||
}
|
||||
|
||||
[HttpGet("notes")]
|
||||
|
|
|
@ -192,7 +192,7 @@ public class UserResolver(
|
|||
}
|
||||
}
|
||||
|
||||
private async Task<User> GetUpdatedUser(User user)
|
||||
public async Task<User> GetUpdatedUser(User user)
|
||||
{
|
||||
if (!user.NeedsUpdate) return user;
|
||||
user.LastFetchedAt = DateTime.UtcNow; // Prevent multiple background tasks from being started
|
||||
|
|
Loading…
Add table
Reference in a new issue