From e0d58085f382115b35663acad4be72438cb1a506 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Fri, 15 Aug 2025 02:44:00 +0800 Subject: [PATCH] :sparkles: Filter with the realm --- DysonNetwork.Sphere/Post/PostController.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/DysonNetwork.Sphere/Post/PostController.cs b/DysonNetwork.Sphere/Post/PostController.cs index 147f97b..bedd8a8 100644 --- a/DysonNetwork.Sphere/Post/PostController.cs +++ b/DysonNetwork.Sphere/Post/PostController.cs @@ -42,6 +42,7 @@ public class PostController( [FromQuery] int offset = 0, [FromQuery] int take = 20, [FromQuery(Name = "pub")] string? pubName = null, + [FromQuery(Name = "realm")] string? realmName = null, [FromQuery(Name = "type")] int? type = null, [FromQuery(Name = "categories")] List? categories = null, [FromQuery(Name = "tags")] List? tags = null, @@ -66,13 +67,16 @@ public class PostController( var userPublishers = currentUser is null ? [] : await pub.GetUserPublishers(Guid.Parse(currentUser.Id)); var publisher = pubName == null ? null : await db.Publishers.FirstOrDefaultAsync(p => p.Name == pubName); + var realm = realmName == null ? null : await db.Realms.FirstOrDefaultAsync(r => r.Slug == realmName); var query = db.Posts .Include(e => e.Categories) .Include(e => e.Tags) .AsQueryable(); if (publisher != null) - query = query.Where(p => p.Publisher.Id == publisher.Id); + query = query.Where(p => p.PublisherId == publisher.Id); + if (realm != null) + query = query.Where(p => p.RealmId == realm.Id); if (type != null) query = query.Where(p => p.Type == (PostType)type); if (categories is { Count: > 0 })