diff --git a/source/java/org/alfresco/rest/api/Queries.java b/source/java/org/alfresco/rest/api/Queries.java index 6319bd99c1..71d929d8a7 100644 --- a/source/java/org/alfresco/rest/api/Queries.java +++ b/source/java/org/alfresco/rest/api/Queries.java @@ -67,7 +67,6 @@ public interface Queries static String PARAM_SITE_TITLE = "title"; static String PARAM_SITE_DESCRIPTION = "description"; static int MIN_TERM_LENGTH_SITES = 2; - static String PARAM_SORT_TYPE = "sortType"; // TODO review /** * Find Nodes diff --git a/source/java/org/alfresco/rest/api/impl/QueriesImpl.java b/source/java/org/alfresco/rest/api/impl/QueriesImpl.java index 2a95def539..738f7c781b 100644 --- a/source/java/org/alfresco/rest/api/impl/QueriesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/QueriesImpl.java @@ -324,24 +324,6 @@ public class QueriesImpl implements Queries, InitializingBean @Override public CollectionWithPagingInfo findSites(Parameters parameters) { - // TODO review - AbstractQuery.Sort sortType = IN_QUERY_SORT; - String sortTypeStr = parameters.getParameter(PARAM_SORT_TYPE); - if (sortTypeStr != null) { - if (sortTypeStr.equalsIgnoreCase("in-query")) - { - sortType = IN_QUERY_SORT; - } - else if (sortTypeStr.equalsIgnoreCase("post-query")) - { - sortType = POST_QUERY_SORT; - } - else - { - throw new IllegalArgumentException("Unexpected sortType: "+sortTypeStr+" (expected in-query or post-query)"); - } - } - return new AbstractQuery(nodeService, searchService) { @Override @@ -380,7 +362,7 @@ public class QueriesImpl implements Queries, InitializingBean } return new Site(siteInfo, role); } - }.find(parameters, PARAM_TERM, MIN_TERM_LENGTH_SITES, "_SITE", sortType, SITE_SORT_PARAMS_TO_QNAMES, new SortColumn(PARAM_SITE_TITLE, true)); + }.find(parameters, PARAM_TERM, MIN_TERM_LENGTH_SITES, "_SITE", POST_QUERY_SORT, SITE_SORT_PARAMS_TO_QNAMES, new SortColumn(PARAM_SITE_TITLE, true)); } public abstract static class AbstractQuery diff --git a/source/test-java/org/alfresco/rest/api/tests/QueriesSitesApiTest.java b/source/test-java/org/alfresco/rest/api/tests/QueriesSitesApiTest.java index 071a314f02..a0826035c4 100644 --- a/source/test-java/org/alfresco/rest/api/tests/QueriesSitesApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/QueriesSitesApiTest.java @@ -241,89 +241,27 @@ public class QueriesSitesApiTest extends AbstractSingleNetworkSiteTest // test sort order { - // default sort order - title asc (note: in-query - using search index, tokenized cm:title) + // default sort order - title asc Map params = new HashMap<>(1); params.put(Queries.PARAM_TERM, "siAB"); HttpResponse response = getAll(URL_QUERIES_LSS, paging, params, 200); List sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); assertEquals(sCount, sites.size()); - assertEquals(Arrays.asList(new String[]{s2, s3, s5, s1, s4}), getSiteIds(sites)); - - // sort order - id asc - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "id asc"); - params.put("sortType", "in-query"); - response = getAll(URL_QUERIES_LSS, paging, params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(sCount, sites.size()); assertEquals(Arrays.asList(new String[]{s4, s5, s2, s3, s1}), getSiteIds(sites)); - // sort order - id desc - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "id desc"); - params.put("sortType", "in-query"); - response = getAll(URL_QUERIES_LSS, paging, params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(sCount, sites.size()); - assertEquals(Arrays.asList(new String[]{s1, s3, s2, s5, s4}), getSiteIds(sites)); - // sort order - title asc params = new HashMap<>(1); params.put(Queries.PARAM_TERM, "siAB"); params.put(Queries.PARAM_ORDERBY, "title asc"); - params.put("sortType", "in-query"); response = getAll(URL_QUERIES_LSS, paging, params, 200); sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); assertEquals(sCount, sites.size()); - assertEquals(Arrays.asList(new String[]{s2, s3, s5, s1, s4}), getSiteIds(sites)); + assertEquals(Arrays.asList(new String[]{s4, s5, s2, s3, s1}), getSiteIds(sites)); // sort order - title desc params = new HashMap<>(1); params.put(Queries.PARAM_TERM, "siAB"); params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "in-query"); - response = getAll(URL_QUERIES_LSS, paging, params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(sCount, sites.size()); - assertEquals(Arrays.asList(new String[]{s4, s1, s5, s3, s2}), getSiteIds(sites)); - - // sort order - title asc (post query - using Alfresco Collator which does not ignore spaces, unlike default RuleBasedCollator) - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "title asc"); - params.put("sortType", "post-query"); - response = getAll(URL_QUERIES_LSS, paging, params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(sCount, sites.size()); - assertEquals(Arrays.asList(new String[]{s4, s5, s2, s3, s1}), getSiteIds(sites)); - - // sort order - title desc (post query - using Alfresco Collator which does not ignore spaces, unlike default RuleBasedCollator) - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "post-query"); - response = getAll(URL_QUERIES_LSS, paging, params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(sCount, sites.size()); - assertEquals(Arrays.asList(new String[]{s1, s3, s2, s5, s4}), getSiteIds(sites)); - - // sort order - description asc - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "description asc"); - params.put("sortType", "in-query"); - response = getAll(URL_QUERIES_LSS, paging, params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(sCount, sites.size()); - assertEquals(Arrays.asList(new String[]{s4, s5, s2, s3, s1}), getSiteIds(sites)); - - // sort order - description desc - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "description desc"); - params.put("sortType", "in-query"); response = getAll(URL_QUERIES_LSS, paging, params, 200); sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); assertEquals(sCount, sites.size()); @@ -332,50 +270,19 @@ public class QueriesSitesApiTest extends AbstractSingleNetworkSiteTest // basic paging tests { - // sort order - title desc (in query - using search index, tokenized cm:title) + // sort order - title desc Map params = new HashMap<>(1); params.put(Queries.PARAM_TERM, "siAB"); params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "in-query"); HttpResponse response = getAll(URL_QUERIES_LSS, getPaging(0, 2), params, 200); List sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); assertEquals(2, sites.size()); - assertEquals(Arrays.asList(new String[]{s4, s1}), getSiteIds(sites)); - - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "in-query"); - response = getAll(URL_QUERIES_LSS, getPaging(2, 2), params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(2, sites.size()); - assertEquals(Arrays.asList(new String[]{s5, s3}), getSiteIds(sites)); - - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "in-query"); - response = getAll(URL_QUERIES_LSS, getPaging(4, 2), params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(1, sites.size()); - assertEquals(Arrays.asList(new String[]{s2}), getSiteIds(sites)); - - // sort order - title desc (post query - using Alfresco Collator which does not ignore spaces, unlike default RuleBasedCollator) - - params = new HashMap<>(1); - params.put(Queries.PARAM_TERM, "siAB"); - params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "post-query"); - response = getAll(URL_QUERIES_LSS, getPaging(0, 2), params, 200); - sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); - assertEquals(2, sites.size()); assertEquals(Arrays.asList(new String[]{s1, s3}), getSiteIds(sites)); params = new HashMap<>(1); params.put(Queries.PARAM_TERM, "siAB"); params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "post-query"); response = getAll(URL_QUERIES_LSS, getPaging(2, 2), params, 200); sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); assertEquals(2, sites.size()); @@ -384,7 +291,6 @@ public class QueriesSitesApiTest extends AbstractSingleNetworkSiteTest params = new HashMap<>(1); params.put(Queries.PARAM_TERM, "siAB"); params.put(Queries.PARAM_ORDERBY, "title desc"); - params.put("sortType", "post-query"); response = getAll(URL_QUERIES_LSS, getPaging(4, 2), params, 200); sites = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Site.class); assertEquals(1, sites.size());