✨ Add grpc reflection
This commit is contained in:
		| @@ -130,33 +130,28 @@ public class PostServiceGrpc(AppDatabase db, PostService ps) : Shared.Proto.Post | ||||
|             .Include(p => p.FeaturedRecords) | ||||
|             .Where(p => p.DeletedAt == null) | ||||
|             .AsQueryable(); | ||||
|          | ||||
|         query = request.Shuffle | ||||
|             ? query.OrderBy(e => EF.Functions.Random()) | ||||
|             : query.OrderByDescending(e => e.PublishedAt ?? e.CreatedAt); | ||||
|  | ||||
|         if (!string.IsNullOrWhiteSpace(request.PublisherId) && Guid.TryParse(request.PublisherId, out var pid)) | ||||
|         { | ||||
|             query = query.Where(p => p.PublisherId == pid); | ||||
|         } | ||||
|  | ||||
|         if (!string.IsNullOrWhiteSpace(request.RealmId) && Guid.TryParse(request.RealmId, out var rid)) | ||||
|         { | ||||
|             query = query.Where(p => p.RealmId == rid); | ||||
|         } | ||||
|  | ||||
|         if (request.Categories.Count > 0) | ||||
|         { | ||||
|             query = query.Where(p => p.Categories.Any(c => request.Categories.Contains(c.Slug))); | ||||
|         } | ||||
|  | ||||
|         if (request.Tags.Count > 0) | ||||
|         { | ||||
|             query = query.Where(p => p.Tags.Any(c => request.Tags.Contains(c.Slug))); | ||||
|         } | ||||
|  | ||||
|         // TODO: Add types filtering when proto is regenerated | ||||
|         // if (request.Types.Count > 0) | ||||
|         // { | ||||
|         //     var types = request.Types.Select(t => (Shared.Models.PostType)t).Distinct(); | ||||
|         //     query = query.Where(p => types.Contains(p.Type)); | ||||
|         // } | ||||
|         if (request.Types_.Count > 0) | ||||
|         { | ||||
|             var types = request.Types_.Select(t => (Shared.Models.PostType)t).Distinct(); | ||||
|             query = query.Where(p => types.Contains(p.Type)); | ||||
|         } | ||||
|  | ||||
|         if (request.OnlyMedia) | ||||
|         { | ||||
| @@ -175,11 +170,7 @@ public class PostServiceGrpc(AppDatabase db, PostService ps) : Shared.Proto.Post | ||||
|         }; | ||||
|  | ||||
|         // Include/exclude replies | ||||
|         if (request.IncludeReplies) | ||||
|         { | ||||
|             // Include both root and reply posts | ||||
|         } | ||||
|         else | ||||
|         if (!request.IncludeReplies) | ||||
|         { | ||||
|             // Exclude reply posts, only root posts | ||||
|             query = query.Where(e => e.RepliedPostId == null); | ||||
| @@ -214,12 +205,7 @@ public class PostServiceGrpc(AppDatabase db, PostService ps) : Shared.Proto.Post | ||||
|         var pageToken = request.PageToken; | ||||
|         var offset = string.IsNullOrEmpty(pageToken) ? 0 : int.Parse(pageToken); | ||||
|  | ||||
|         // Ordering - TODO: Add shuffle when proto field is available | ||||
|         var orderedQuery = request.Shuffle | ||||
|             ? query.OrderBy(e => EF.Functions.Random()) | ||||
|             : query.OrderByDescending(e => e.PublishedAt ?? e.CreatedAt); | ||||
|  | ||||
|         var posts = await orderedQuery | ||||
|         var posts = await query | ||||
|             .Skip(offset) | ||||
|             .Take(pageSize) | ||||
|             .ToListAsync(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user