mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged 5.2.N (5.2.1) to HEAD (5.2)
130309 gjames: Merged searchapi (5.2.1) to 5.2.N (5.2.1) 130161 gjames: SEARCH-162: Implement a "fields" json parameter git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@130380 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -30,6 +30,7 @@ import org.alfresco.rest.api.model.Node;
|
||||
import org.alfresco.rest.api.search.impl.ResultMapper;
|
||||
import org.alfresco.rest.api.search.impl.SearchMapper;
|
||||
import org.alfresco.rest.api.search.model.SearchQuery;
|
||||
import org.alfresco.rest.framework.jacksonextensions.BeanPropertiesFilter;
|
||||
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
||||
import org.alfresco.rest.framework.resource.parameters.Params;
|
||||
import org.alfresco.rest.framework.tools.ApiAssistant;
|
||||
@@ -50,6 +51,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
import org.springframework.extensions.webscripts.WebScriptResponse;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* An implementation of the {{baseUrl}}/{{networkId}}/public/search/versions/1/search endpoint
|
||||
@@ -118,7 +120,12 @@ public class SearchApiWebscript extends AbstractWebScript implements RecognizedP
|
||||
*/
|
||||
protected Params getParams(WebScriptRequest webScriptRequest, SearchQuery searchQuery)
|
||||
{
|
||||
Params.RecognizedParams recognizedParams = new Params.RecognizedParams(null, null, null, null, null, null, null, null, false);
|
||||
BeanPropertiesFilter filter = null;
|
||||
if (searchQuery.getFields()!= null && !searchQuery.getFields().isEmpty())
|
||||
{
|
||||
filter = getFilter("", searchQuery.getFields());
|
||||
}
|
||||
Params.RecognizedParams recognizedParams = new Params.RecognizedParams(null, null, filter, null, null, null, null, null, false);
|
||||
return Params.valueOf(null, recognizedParams, searchQuery, webScriptRequest);
|
||||
}
|
||||
|
||||
|
@@ -43,6 +43,7 @@ public class SearchQuery
|
||||
private final Query query;
|
||||
private final Paging paging;
|
||||
private final List<String> include;
|
||||
private final List<String> fields;
|
||||
private final List<SortDef> sort;
|
||||
private final List<Template> templates;
|
||||
private final Default defaults;
|
||||
@@ -53,12 +54,13 @@ public class SearchQuery
|
||||
private final Scope scope;
|
||||
private final Limits limits;
|
||||
|
||||
public static final SearchQuery EMPTY = new SearchQuery(null, null, null, null, null,null, null, null,null, null, null, null);
|
||||
public static final SearchQuery EMPTY = new SearchQuery(null, null, null, null, null,null, null, null,null, null, null, null, null);
|
||||
|
||||
@JsonCreator
|
||||
public SearchQuery(@JsonProperty("query") Query query,
|
||||
@JsonProperty("paging") Paging paging,
|
||||
@JsonProperty("include") List<String> include,
|
||||
@JsonProperty("fields") List<String> fields,
|
||||
@JsonProperty("sort") List<SortDef> sort,
|
||||
@JsonProperty("templates") List<Template> templates,
|
||||
@JsonProperty("defaults") Default defaults,
|
||||
@@ -72,6 +74,7 @@ public class SearchQuery
|
||||
this.query = query;
|
||||
this.paging = paging;
|
||||
this.include = include;
|
||||
this.fields = fields;
|
||||
this.sort = sort;
|
||||
this.templates = templates;
|
||||
this.defaults = defaults;
|
||||
@@ -97,6 +100,12 @@ public class SearchQuery
|
||||
{
|
||||
return include;
|
||||
}
|
||||
|
||||
public List<String> getFields()
|
||||
{
|
||||
return fields;
|
||||
}
|
||||
|
||||
public List<SortDef> getSort()
|
||||
{
|
||||
return sort;
|
||||
|
@@ -54,7 +54,7 @@ public class BasicSearchApiIntegrationTest extends AbstractSingleNetworkSiteTest
|
||||
{
|
||||
private static final String URL_SEARCH = "search";
|
||||
private static final String SEARCH_API_NAME = "search";
|
||||
private static final String json = "{ \"query\": {\"query\": \"cm:name:king\",\"userQuery\": \"great\",\"language\": \"afts\"}}";
|
||||
private static final String json = "{ \"query\": {\"query\": \"cm:name:king\",\"userQuery\": \"great\",\"language\": \"afts\"}, \"fields\" : [\"id\",\"name\", \"search\"]}";
|
||||
private static final String bad_json = "{ \"query\": {\"qu\": \"cm:some nonsense \",\"userQuery\": \"great\",\"language\": \"afts\"}}";
|
||||
|
||||
/**
|
||||
|
@@ -508,7 +508,7 @@ public class SearchMapperTests
|
||||
private SearchQuery minimalQuery()
|
||||
{
|
||||
Query query = new Query("cmis", "foo", "");
|
||||
SearchQuery sq = new SearchQuery(query,null, null, null, null, null, null, null, null, null, null, null);
|
||||
SearchQuery sq = new SearchQuery(query,null, null, null, null, null, null, null, null, null, null, null, null);
|
||||
return sq;
|
||||
}
|
||||
}
|
||||
|
@@ -106,6 +106,9 @@ public class SearchQuerySerializerTests
|
||||
assertEquals(Integer.valueOf(5), ff.getMincount());
|
||||
assertEquals(2000, searchQuery.getLimits().getPermissionEvaluationCount().intValue());
|
||||
assertEquals(5000, searchQuery.getLimits().getPermissionEvaluationTime().intValue());
|
||||
assertEquals(2, searchQuery.getFields().size());
|
||||
assertTrue(searchQuery.getFields().contains("id"));
|
||||
assertTrue(searchQuery.getFields().contains("name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -65,6 +65,7 @@ public class SerializerTestHelper implements RequestReader
|
||||
+ "\"spellcheck\": {\"query\": \"alfrezco\"},"
|
||||
+ "\"limits\": {\"permissionEvaluationCount\": \"2000\",\"permissionEvaluationTime\": \"5000\"},"
|
||||
+ "\"scope\": { \"stores\": [\"workspace://SpacesStore\"]},"
|
||||
+ "\"fields\": [\"id\", \"name\"],"
|
||||
+ "\"include\": [\"aspectNames\", \"properties\"]}";
|
||||
|
||||
public SerializerTestHelper()
|
||||
|
Reference in New Issue
Block a user