diff --git a/Iceshrimp.Backend/Controllers/Web/FollowRequestController.cs b/Iceshrimp.Backend/Controllers/Web/FollowRequestController.cs index 55ded400..fa4cbfcc 100644 --- a/Iceshrimp.Backend/Controllers/Web/FollowRequestController.cs +++ b/Iceshrimp.Backend/Controllers/Web/FollowRequestController.cs @@ -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> 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 }); } diff --git a/Iceshrimp.Shared/Schemas/Web/FollowRequestResponse.cs b/Iceshrimp.Shared/Schemas/Web/FollowRequestResponse.cs index e42bf4da..71475853 100644 --- a/Iceshrimp.Shared/Schemas/Web/FollowRequestResponse.cs +++ b/Iceshrimp.Shared/Schemas/Web/FollowRequestResponse.cs @@ -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; } } \ No newline at end of file