From de4bf3db68849f5ca75cde41931ea5cb2cd715e6 Mon Sep 17 00:00:00 2001 From: Gethin James Date: Tue, 6 Sep 2016 15:39:04 +0000 Subject: [PATCH] Merged searchapi (5.2.1) to 5.2.N (5.2.1) 130061 gjames: SEARCH-120: Facet queries label support git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@130300 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rest/api/search/impl/SearchMapper.java | 15 +++++++++++++- .../rest/api/search/SearchMapperTests.java | 20 +++++++++++++------ 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/source/java/org/alfresco/rest/api/search/impl/SearchMapper.java b/source/java/org/alfresco/rest/api/search/impl/SearchMapper.java index b2a7799d29..4c83e71520 100644 --- a/source/java/org/alfresco/rest/api/search/impl/SearchMapper.java +++ b/source/java/org/alfresco/rest/api/search/impl/SearchMapper.java @@ -203,6 +203,8 @@ public class SearchMapper { for (Template aTemplate:templates) { + ParameterCheck.mandatoryString("template name", aTemplate.getName()); + ParameterCheck.mandatoryString("template template", aTemplate.getTemplate()); sp.addQueryTemplate(aTemplate.getName(), aTemplate.getTemplate()); } } @@ -270,6 +272,7 @@ public class SearchMapper { for (FilterQuery fq:filterQueries) { + ParameterCheck.mandatoryString("filterQueries query", fq.getQuery()); sp.addFilterQuery(fq.getQuery()); } } @@ -286,7 +289,17 @@ public class SearchMapper { for (FacetQuery fq:facetQueries) { - sp.addFacetQuery(fq.getQuery()); + ParameterCheck.mandatoryString("facetQuery query", fq.getQuery()); + String query = fq.getQuery(); + String label = fq.getLabel()!=null?fq.getLabel():query; + + if (query.startsWith("{!afts")) + { + throw new InvalidArgumentException(InvalidArgumentException.DEFAULT_MESSAGE_ID, + new Object[] { ": Facet queries should not start with !afts" }); + } + query = "{!afts key='"+label+"'}"+query; + sp.addFacetQuery(query); } } } diff --git a/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java b/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java index 2471c9d947..b6fff4032e 100644 --- a/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java +++ b/source/test-java/org/alfresco/rest/api/search/SearchMapperTests.java @@ -312,13 +312,21 @@ public class SearchMapperTests //Doesn't error searchMapper.fromFacetQuery(searchParameters, null); - searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null), new FacetQuery("pong", "table"), new FacetQuery("pang", "tennis"))); - assertEquals(3 ,searchParameters.getFacetQueries().size()); - assertEquals("ping" ,searchParameters.getFacetQueries().get(0)); - assertEquals("pong" ,searchParameters.getFacetQueries().get(1)); - assertEquals("pang" ,searchParameters.getFacetQueries().get(2)); + searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null), new FacetQuery("pong", "table"))); + assertEquals(2 ,searchParameters.getFacetQueries().size()); + assertEquals("{!afts key='ping'}ping" ,searchParameters.getFacetQueries().get(0)); + assertEquals("{!afts key='table'}pong" ,searchParameters.getFacetQueries().get(1)); - //label isn't used at the moment + try + { + searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null),new FacetQuery("{!afts}pang", "tennis"))); + fail(); + } + catch (InvalidArgumentException iae) + { + //Cannot start with afts + assertNotNull(iae); + } }