From 9cc1e96e457c06001bf3bf3ec305d5f9f404bcc2 Mon Sep 17 00:00:00 2001 From: Georg von Kries Date: Wed, 22 May 2024 10:44:14 +0200 Subject: [PATCH 1/3] Do not expose unsupported queries in the GraphQL schema. --- .../Sql/GraphQL/SqlQueryFieldTypeProvider.cs | 5 +++-- .../GraphQL/ElasticQueryFieldTypeProvider.cs | 3 +-- .../GraphQL/LuceneQueryFieldTypeProvider.cs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs b/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs index e8dad56d815..eb29fd23586 100644 --- a/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs +++ b/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs @@ -62,7 +62,8 @@ public async Task BuildAsync(ISchema schema) var fieldTypeName = querySchema["fieldTypeName"]?.ToString() ?? query.Name; - if (type.StartsWith("ContentItem/", StringComparison.OrdinalIgnoreCase)) + if (query.ReturnDocuments && + type.StartsWith("ContentItem/", StringComparison.OrdinalIgnoreCase)) { var contentType = type.Remove(0, 12); fieldType = BuildContentTypeFieldType(schema, contentType, query, fieldTypeName); @@ -86,7 +87,7 @@ public async Task BuildAsync(ISchema schema) private static FieldType BuildSchemaBasedFieldType(SqlQuery query, JsonNode querySchema, string fieldTypeName) { - var properties = querySchema["properties"].AsObject(); + var properties = querySchema["properties"]?.AsObject(); if (properties == null) { return null; diff --git a/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/GraphQL/ElasticQueryFieldTypeProvider.cs b/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/GraphQL/ElasticQueryFieldTypeProvider.cs index b69614ba147..0cf49110b5f 100644 --- a/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/GraphQL/ElasticQueryFieldTypeProvider.cs +++ b/src/OrchardCore.Modules/OrchardCore.Search.Elasticsearch/GraphQL/ElasticQueryFieldTypeProvider.cs @@ -86,8 +86,7 @@ public async Task BuildAsync(ISchema schema) private static FieldType BuildSchemaBasedFieldType(ElasticQuery query, JsonNode querySchema, string fieldTypeName) { - var properties = querySchema["properties"].AsObject(); - + var properties = querySchema["properties"]?.AsObject(); if (properties == null) { return null; diff --git a/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs b/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs index bd1e655553f..0bbb70a4f26 100644 --- a/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs +++ b/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs @@ -85,7 +85,7 @@ public async Task BuildAsync(ISchema schema) private static FieldType BuildSchemaBasedFieldType(LuceneQuery query, JsonNode querySchema, string fieldTypeName) { - var properties = querySchema["properties"].AsObject(); ; + var properties = querySchema["properties"]?.AsObject(); ; if (properties == null) { return null; From 5f4f65e0e9a0faee00ed55164b3ceb4b9b8b9a6d Mon Sep 17 00:00:00 2001 From: Georg von Kries Date: Wed, 22 May 2024 12:45:41 +0200 Subject: [PATCH 2/3] Update src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs Co-authored-by: Hisham Bin Ateya --- .../GraphQL/LuceneQueryFieldTypeProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs b/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs index 0bbb70a4f26..c6b8c0ad6c9 100644 --- a/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs +++ b/src/OrchardCore.Modules/OrchardCore.Search.Lucene/GraphQL/LuceneQueryFieldTypeProvider.cs @@ -85,7 +85,7 @@ public async Task BuildAsync(ISchema schema) private static FieldType BuildSchemaBasedFieldType(LuceneQuery query, JsonNode querySchema, string fieldTypeName) { - var properties = querySchema["properties"]?.AsObject(); ; + var properties = querySchema["properties"]?.AsObject(); if (properties == null) { return null; From 3cb97b6b143d6a8386175d84de759886eb34f5c2 Mon Sep 17 00:00:00 2001 From: Georg von Kries Date: Thu, 23 May 2024 09:19:19 +0200 Subject: [PATCH 3/3] Update src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs Co-authored-by: Hisham Bin Ateya --- .../Sql/GraphQL/SqlQueryFieldTypeProvider.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs b/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs index eb29fd23586..811c97aba68 100644 --- a/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs +++ b/src/OrchardCore.Modules/OrchardCore.Queries/Sql/GraphQL/SqlQueryFieldTypeProvider.cs @@ -62,8 +62,7 @@ public async Task BuildAsync(ISchema schema) var fieldTypeName = querySchema["fieldTypeName"]?.ToString() ?? query.Name; - if (query.ReturnDocuments && - type.StartsWith("ContentItem/", StringComparison.OrdinalIgnoreCase)) + if (query.ReturnDocuments && type.StartsWith("ContentItem/", StringComparison.OrdinalIgnoreCase)) { var contentType = type.Remove(0, 12); fieldType = BuildContentTypeFieldType(schema, contentType, query, fieldTypeName);