From 97af2a64be99913de02b3c9fb91d7d939c877f9b Mon Sep 17 00:00:00 2001 From: Ahmad Shnaiwer Date: Tue, 21 May 2024 09:01:38 +0300 Subject: [PATCH] Added missing sortBy parameter for SearchByCriteria query and fixed parameter name criteria Made required changes to IApiClient, ApiClient, GraphQLRequests and QueryBuilder to use the new sortBy parameter --- .gitignore | 1 + net/src/Sdl.Tridion.Api.Client/ApiClient.cs | 4 ++-- net/src/Sdl.Tridion.Api.Client/ContentModel/ContentModel.cs | 2 +- net/src/Sdl.Tridion.Api.Client/GraphQLRequests.cs | 3 ++- net/src/Sdl.Tridion.Api.Client/IApiClient.cs | 2 +- .../Sdl.Tridion.Api.Client/Queries/SearchByCriteria.graphql | 4 ++-- net/src/Sdl.Tridion.Api.Client/QueryBuilder.cs | 2 ++ 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 4959ae7..34f9a83 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ CoverageReports/ *.iml target/ .idea/ +/net/src/Sdl.Tridion.Api.Client/Sdl.Tridion.Api.Client.sln diff --git a/net/src/Sdl.Tridion.Api.Client/ApiClient.cs b/net/src/Sdl.Tridion.Api.Client/ApiClient.cs index 3040b44..182276b 100644 --- a/net/src/Sdl.Tridion.Api.Client/ApiClient.cs +++ b/net/src/Sdl.Tridion.Api.Client/ApiClient.cs @@ -357,12 +357,12 @@ public FacetedSearchResults SearchByRawCriteria(string rawCriteria, InputResultF /// /// /// - public FacetedSearchResults SearchByCriteria(InputCriteria inputCriteria, InputResultFilter resultFilter, IPagination pagination) + public FacetedSearchResults SearchByCriteria(InputCriteria inputCriteria, InputResultFilter resultFilter, IPagination pagination, InputSortBy sort) { try { var response = - _client.Execute(GraphQLRequests.SearchByCriteria(inputCriteria, resultFilter, pagination)); + _client.Execute(GraphQLRequests.SearchByCriteria(inputCriteria, resultFilter, pagination, sort)); return response.TypedResponseData.Search; } catch (RuntimeBinderException e) diff --git a/net/src/Sdl.Tridion.Api.Client/ContentModel/ContentModel.cs b/net/src/Sdl.Tridion.Api.Client/ContentModel/ContentModel.cs index ee97839..1872513 100644 --- a/net/src/Sdl.Tridion.Api.Client/ContentModel/ContentModel.cs +++ b/net/src/Sdl.Tridion.Api.Client/ContentModel/ContentModel.cs @@ -3111,7 +3111,7 @@ public class Search /// /// Matching score of the result. /// - public float Score { get; set; } + public float? Score { get; set; } /// /// The url of the search result. diff --git a/net/src/Sdl.Tridion.Api.Client/GraphQLRequests.cs b/net/src/Sdl.Tridion.Api.Client/GraphQLRequests.cs index 9c0f8e6..8432a29 100644 --- a/net/src/Sdl.Tridion.Api.Client/GraphQLRequests.cs +++ b/net/src/Sdl.Tridion.Api.Client/GraphQLRequests.cs @@ -317,7 +317,7 @@ public static IGraphQLRequest SearchByRawCriteria(string rawCritera, InputResult .Build(); } - public static IGraphQLRequest SearchByCriteria(InputCriteria criteria, InputResultFilter resultFilter, IPagination pagination) + public static IGraphQLRequest SearchByCriteria(InputCriteria criteria, InputResultFilter resultFilter, IPagination pagination, InputSortBy sort) { QueryBuilder builder = new QueryBuilder().WithQueryResource("SearchByCriteria", false); @@ -327,6 +327,7 @@ public static IGraphQLRequest SearchByCriteria(InputCriteria criteria, InputResu .WithVariable("criteria", criteria) .WithVariable("inputResultFilter", resultFilter) .WithPagination(pagination) + .WithInputSortBy(sort) .Build(); } diff --git a/net/src/Sdl.Tridion.Api.Client/IApiClient.cs b/net/src/Sdl.Tridion.Api.Client/IApiClient.cs index 379e1e3..c03b1ca 100644 --- a/net/src/Sdl.Tridion.Api.Client/IApiClient.cs +++ b/net/src/Sdl.Tridion.Api.Client/IApiClient.cs @@ -368,7 +368,7 @@ List GetSitemapSubtree(ContentNamespace ns, int publication /// /// /// - FacetedSearchResults SearchByCriteria(InputCriteria criteria, InputResultFilter resultFilter, IPagination pagination); + FacetedSearchResults SearchByCriteria(InputCriteria criteria, InputResultFilter resultFilter, IPagination pagination, InputSortBy sort); /// /// Faceted Search by criteria diff --git a/net/src/Sdl.Tridion.Api.Client/Queries/SearchByCriteria.graphql b/net/src/Sdl.Tridion.Api.Client/Queries/SearchByCriteria.graphql index 884ee30..d8602b3 100644 --- a/net/src/Sdl.Tridion.Api.Client/Queries/SearchByCriteria.graphql +++ b/net/src/Sdl.Tridion.Api.Client/Queries/SearchByCriteria.graphql @@ -1,5 +1,5 @@ -query search($first: Int, $after: String, $criteria: InputCriteria, $inputResultFilter: InputResultFilter) { - search(InputCriteria: $criteria, resultFilter: $inputResultFilter ) { +query search($first: Int, $after: String, $criteria: InputCriteria, $inputResultFilter: InputResultFilter, $inputSortBy: InputSortBy) { + search(criteria: $criteria, resultFilter: $inputResultFilter, sortBy: $inputSortBy) { results(first: $first, after: $after) { hits edges { diff --git a/net/src/Sdl.Tridion.Api.Client/QueryBuilder.cs b/net/src/Sdl.Tridion.Api.Client/QueryBuilder.cs index ccacce9..c50aafc 100644 --- a/net/src/Sdl.Tridion.Api.Client/QueryBuilder.cs +++ b/net/src/Sdl.Tridion.Api.Client/QueryBuilder.cs @@ -89,6 +89,8 @@ public QueryBuilder WithInputPublicationFilter(InputPublicationFilter filter) public QueryBuilder WithInputSortParam(InputSortParam sort) => WithVariable("inputSortParam", sort); + public QueryBuilder WithInputSortBy(InputSortBy sort) => WithVariable("InputSortBy", sort); + public QueryBuilder WithInputComponentPresentationFilter(InputComponentPresentationFilter filter) => WithVariable("filter", filter);