[backend/api] Include date in follow request response and add outgoing request endpoint

This commit is contained in:
pancakes 2025-03-21 17:07:15 +10:00
parent dcc6fd3a19
commit 6f20a6a92e
No known key found for this signature in database
2 changed files with 29 additions and 4 deletions

View file

@ -36,13 +36,37 @@ public class FollowRequestController(
.IncludeCommonProperties()
.Where(p => p.Followee == user)
.Paginate(pq, ControllerContext)
.Select(p => new { p.Id, p.Follower })
.Select(p => new { p.Id, p.Follower, p.CreatedAt })
.ToListAsync();
var users = await userRenderer.RenderManyAsync(requests.Select(p => p.Follower));
return requests.Select(p => new FollowRequestResponse
{
Id = p.Id, User = users.First(u => u.Id == p.Follower.Id)
Id = p.Id,
User = users.First(u => u.Id == p.Follower.Id),
CreatedAt = p.CreatedAt
});
}
[HttpGet("outgoing")]
[LinkPagination(20, 40)]
[ProducesResults(HttpStatusCode.OK)]
public async Task<IEnumerable<FollowRequestResponse>> GetOutgoingFollowRequests(PaginationQuery pq)
{
var user = HttpContext.GetUserOrFail();
var requests = await db.FollowRequests
.IncludeCommonProperties()
.Where(p => p.Follower == user)
.Paginate(pq, ControllerContext)
.Select(p => new { p.Id, p.Followee, p.CreatedAt })
.ToListAsync();
var users = await userRenderer.RenderManyAsync(requests.Select(p => p.Followee));
return requests.Select(p => new FollowRequestResponse
{
Id = p.Id,
User = users.First(u => u.Id == p.Followee.Id),
CreatedAt = p.CreatedAt
});
}

View file

@ -4,6 +4,7 @@ namespace Iceshrimp.Shared.Schemas.Web;
public class FollowRequestResponse : IIdentifiable
{
public required string Id { get; set; }
public required UserResponse User { get; set; }
public required string Id { get; set; }
public required UserResponse User { get; set; }
public required DateTime CreatedAt { get; set; }
}