✨ Providing the post featured record in the response
This commit is contained in:
@@ -146,9 +146,8 @@ public class SnPostCollection : ModelBase
|
||||
public class SnPostFeaturedRecord : ModelBase
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
public Guid PostId { get; set; }
|
||||
public SnPost Post { get; set; } = null!;
|
||||
[JsonIgnore] public SnPost Post { get; set; } = null!;
|
||||
public Instant? FeaturedAt { get; set; }
|
||||
public int SocialCredits { get; set; }
|
||||
}
|
||||
|
||||
@@ -43,15 +43,7 @@ public class ActivityService(
|
||||
var publicRealms = await rs.GetPublicRealms();
|
||||
var publicRealmIds = publicRealms.Select(r => r.Id).ToList();
|
||||
|
||||
var postsQuery = db.Posts
|
||||
.Include(e => e.RepliedPost)
|
||||
.Include(e => e.ForwardedPost)
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.Tags)
|
||||
.Where(e => e.RepliedPostId == null)
|
||||
.Where(p => cursor == null || p.PublishedAt < cursor)
|
||||
.Where(p => p.RealmId == null || publicRealmIds.Contains(p.RealmId.Value))
|
||||
.OrderByDescending(p => p.PublishedAt)
|
||||
var postsQuery = BuildPostsQuery(cursor, null, publicRealmIds)
|
||||
.FilterWithVisibility(null, [], [], isListing: true)
|
||||
.Take(take * 5);
|
||||
|
||||
@@ -312,6 +304,7 @@ public class ActivityService(
|
||||
.Include(e => e.ForwardedPost)
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.Tags)
|
||||
.Include(e => e.FeaturedRecords)
|
||||
.Where(e => e.RepliedPostId == null)
|
||||
.Where(p => cursor == null || p.PublishedAt < cursor)
|
||||
.OrderByDescending(p => p.PublishedAt)
|
||||
|
||||
@@ -111,13 +111,14 @@ public class PostController(
|
||||
var visibleRealmIds = userRealms.Concat(publicRealmIds).Distinct().ToList();
|
||||
|
||||
var publisher = pubName == null ? null : await db.Publishers.FirstOrDefaultAsync(p => p.Name == pubName);
|
||||
var realm = realmName == null ? null : (realmName != null ? await rs.GetRealmBySlug(realmName) : null);
|
||||
var realm = realmName == null ? null : (await rs.GetRealmBySlug(realmName));
|
||||
|
||||
var query = db.Posts
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.Tags)
|
||||
.Include(e => e.RepliedPost)
|
||||
.Include(e => e.ForwardedPost)
|
||||
.Include(e => e.FeaturedRecords)
|
||||
.AsQueryable();
|
||||
if (publisher != null)
|
||||
query = query.Where(p => p.PublisherId == publisher.Id);
|
||||
@@ -233,6 +234,7 @@ public class PostController(
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.RepliedPost)
|
||||
.Include(e => e.ForwardedPost)
|
||||
.Include(e => e.FeaturedRecords)
|
||||
.FilterWithVisibility(currentUser, userFriends, userPublishers)
|
||||
.FirstOrDefaultAsync();
|
||||
if (post is null) return NotFound();
|
||||
@@ -265,6 +267,7 @@ public class PostController(
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.RepliedPost)
|
||||
.Include(e => e.ForwardedPost)
|
||||
.Include(e => e.FeaturedRecords)
|
||||
.FilterWithVisibility(currentUser, userFriends, userPublishers)
|
||||
.FirstOrDefaultAsync();
|
||||
if (post is null) return NotFound();
|
||||
@@ -397,6 +400,7 @@ public class PostController(
|
||||
.Include(e => e.ForwardedPost)
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.Tags)
|
||||
.Include(e => e.FeaturedRecords)
|
||||
.FilterWithVisibility(currentUser, userFriends, userPublishers, isListing: true)
|
||||
.OrderByDescending(e => e.PublishedAt ?? e.CreatedAt)
|
||||
.Skip(offset)
|
||||
@@ -825,6 +829,7 @@ public class PostController(
|
||||
.Include(e => e.Publisher)
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.Tags)
|
||||
.Include(e => e.FeaturedRecords)
|
||||
.FirstOrDefaultAsync();
|
||||
if (post is null) return NotFound();
|
||||
|
||||
|
||||
@@ -915,6 +915,7 @@ public partial class PostService(
|
||||
.Include(e => e.RepliedPost)
|
||||
.Include(e => e.Categories)
|
||||
.Include(e => e.Publisher)
|
||||
.Include(e => e.FeaturedRecords)
|
||||
.Take(featuredIds.Count)
|
||||
.ToListAsync();
|
||||
posts = posts.OrderBy(e => featuredIds.IndexOf(e.Id)).ToList();
|
||||
|
||||
Reference in New Issue
Block a user