diff --git a/DysonNetwork.Develop/Startup/ApplicationConfiguration.cs b/DysonNetwork.Develop/Startup/ApplicationConfiguration.cs index 675bcb1..90c1d0d 100644 --- a/DysonNetwork.Develop/Startup/ApplicationConfiguration.cs +++ b/DysonNetwork.Develop/Startup/ApplicationConfiguration.cs @@ -21,6 +21,7 @@ public static class ApplicationConfiguration app.MapControllers(); app.MapGrpcService(); + app.MapGrpcReflectionService(); return app; } diff --git a/DysonNetwork.Develop/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Develop/Startup/ServiceCollectionExtensions.cs index 2d657fb..1e9dd8f 100644 --- a/DysonNetwork.Develop/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Develop/Startup/ServiceCollectionExtensions.cs @@ -32,6 +32,7 @@ public static class ServiceCollectionExtensions }); services.AddGrpc(options => { options.EnableDetailedErrors = true; }); + services.AddGrpcReflection(); services.Configure(options => { diff --git a/DysonNetwork.Drive/Startup/ApplicationBuilderExtensions.cs b/DysonNetwork.Drive/Startup/ApplicationBuilderExtensions.cs index ab5dc93..d91bed7 100644 --- a/DysonNetwork.Drive/Startup/ApplicationBuilderExtensions.cs +++ b/DysonNetwork.Drive/Startup/ApplicationBuilderExtensions.cs @@ -17,6 +17,7 @@ public static class ApplicationBuilderExtensions // Map your gRPC services here app.MapGrpcService(); app.MapGrpcService(); + app.MapGrpcReflectionService(); return app; } diff --git a/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs index f77103f..27db41f 100644 --- a/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Drive/Startup/ServiceCollectionExtensions.cs @@ -24,9 +24,7 @@ public static class ServiceCollectionExtensions options.MaxReceiveMessageSize = 16 * 1024 * 1024; // 16MB options.MaxSendMessageSize = 16 * 1024 * 1024; // 16MB }); - - // Register gRPC reflection for service discovery - services.AddGrpc(); + services.AddGrpcReflection(); services.AddControllers().AddJsonOptions(options => { diff --git a/DysonNetwork.Insight/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Insight/Startup/ServiceCollectionExtensions.cs index f423dbe..e10cbb4 100644 --- a/DysonNetwork.Insight/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Insight/Startup/ServiceCollectionExtensions.cs @@ -26,9 +26,7 @@ public static class ServiceCollectionExtensions options.MaxReceiveMessageSize = 16 * 1024 * 1024; // 16MB options.MaxSendMessageSize = 16 * 1024 * 1024; // 16MB }); - - // Register gRPC reflection for service discovery - services.AddGrpc(); + services.AddGrpcReflection(); // Register gRPC services diff --git a/DysonNetwork.Pass/Startup/ApplicationConfiguration.cs b/DysonNetwork.Pass/Startup/ApplicationConfiguration.cs index c56ee7f..2df40b0 100644 --- a/DysonNetwork.Pass/Startup/ApplicationConfiguration.cs +++ b/DysonNetwork.Pass/Startup/ApplicationConfiguration.cs @@ -41,6 +41,7 @@ public static class ApplicationConfiguration app.MapGrpcService(); app.MapGrpcService(); app.MapGrpcService(); + app.MapGrpcReflectionService(); return app; } diff --git a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs index 74d76a6..0f88593 100644 --- a/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Pass/Startup/ServiceCollectionExtensions.cs @@ -46,6 +46,7 @@ public static class ServiceCollectionExtensions options.MaxReceiveMessageSize = 16 * 1024 * 1024; // 16MB options.MaxSendMessageSize = 16 * 1024 * 1024; // 16MB }); + services.AddGrpcReflection(); services.AddRingService(); diff --git a/DysonNetwork.Ring/Startup/ApplicationConfiguration.cs b/DysonNetwork.Ring/Startup/ApplicationConfiguration.cs index 8600eaa..ff6e8a5 100644 --- a/DysonNetwork.Ring/Startup/ApplicationConfiguration.cs +++ b/DysonNetwork.Ring/Startup/ApplicationConfiguration.cs @@ -23,6 +23,7 @@ public static class ApplicationConfiguration public static WebApplication ConfigureGrpcServices(this WebApplication app) { app.MapGrpcService(); + app.MapGrpcReflectionService(); return app; } diff --git a/DysonNetwork.Ring/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Ring/Startup/ServiceCollectionExtensions.cs index 301ce5b..6274017 100644 --- a/DysonNetwork.Ring/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Ring/Startup/ServiceCollectionExtensions.cs @@ -30,9 +30,7 @@ public static class ServiceCollectionExtensions options.MaxReceiveMessageSize = 16 * 1024 * 1024; // 16MB options.MaxSendMessageSize = 16 * 1024 * 1024; // 16MB }); - - // Register gRPC reflection for service discovery - services.AddGrpc(); + services.AddGrpcReflection(); // Register gRPC services services.AddScoped(); diff --git a/DysonNetwork.Shared/DysonNetwork.Shared.csproj b/DysonNetwork.Shared/DysonNetwork.Shared.csproj index 205bc74..e82638d 100644 --- a/DysonNetwork.Shared/DysonNetwork.Shared.csproj +++ b/DysonNetwork.Shared/DysonNetwork.Shared.csproj @@ -13,6 +13,7 @@ + all diff --git a/DysonNetwork.Sphere/Post/PostServiceGrpc.cs b/DysonNetwork.Sphere/Post/PostServiceGrpc.cs index 7e4c490..41bbfbd 100644 --- a/DysonNetwork.Sphere/Post/PostServiceGrpc.cs +++ b/DysonNetwork.Sphere/Post/PostServiceGrpc.cs @@ -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(); diff --git a/DysonNetwork.Sphere/Startup/ApplicationConfiguration.cs b/DysonNetwork.Sphere/Startup/ApplicationConfiguration.cs index 45558df..f7af964 100644 --- a/DysonNetwork.Sphere/Startup/ApplicationConfiguration.cs +++ b/DysonNetwork.Sphere/Startup/ApplicationConfiguration.cs @@ -23,6 +23,7 @@ public static class ApplicationConfiguration // Map gRPC services app.MapGrpcService(); app.MapGrpcService(); + app.MapGrpcReflectionService(); return app; } diff --git a/DysonNetwork.Sphere/Startup/ServiceCollectionExtensions.cs b/DysonNetwork.Sphere/Startup/ServiceCollectionExtensions.cs index 2168faf..20a4a25 100644 --- a/DysonNetwork.Sphere/Startup/ServiceCollectionExtensions.cs +++ b/DysonNetwork.Sphere/Startup/ServiceCollectionExtensions.cs @@ -53,6 +53,7 @@ public static class ServiceCollectionExtensions services.AddRazorPages(); services.AddGrpc(options => { options.EnableDetailedErrors = true; }); + services.AddGrpcReflection(); services.Configure(options => {