Search in sources :

Example 6 with InvalidArgumentException

use of org.alfresco.rest.framework.core.exceptions.InvalidArgumentException in project alfresco-remote-api by Alfresco.

the class SearchMapperTests method fromFilterQuery.

@Test
public void fromFilterQuery() throws Exception {
    SearchParameters searchParameters = new SearchParameters();
    // Doesn't error
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("hedgehog", null, null), new FilterQuery("king", null, null)));
    assertEquals(2, searchParameters.getFilterQueries().size());
    assertEquals("hedgehog", searchParameters.getFilterQueries().get(0));
    assertEquals("king", searchParameters.getFilterQueries().get(1));
    searchParameters = new SearchParameters();
    searchParameters.setLanguage(SearchService.LANGUAGE_CMIS_ALFRESCO);
    try {
        searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("hedgehog", null, null)));
        fail();
    } catch (InvalidArgumentException iae) {
        // You can't specify FilterQuery when using the CMIS language
        assertNotNull(iae);
    }
    try {
        searchParameters.setLanguage(SearchService.LANGUAGE_SOLR_ALFRESCO);
        searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery(null, null, null)));
        fail();
    } catch (IllegalArgumentException iae) {
        // You can't specify FilterQuery when using the CMIS language
        assertNotNull(iae);
    }
    searchParameters = new SearchParameters();
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{!afts}description:xyz", Arrays.asList("desc1", "desc2"), null)));
    assertEquals("{!afts tag=desc1,desc2 }description:xyz", searchParameters.getFilterQueries().get(0));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{!afts}description:xyz", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1 }description:xyz", searchParameters.getFilterQueries().get(1));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("description:xyz", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1 }description:xyz", searchParameters.getFilterQueries().get(2));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{!afts} description:xyz", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1 } description:xyz", searchParameters.getFilterQueries().get(3));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery(" {!afts cake} description:xyz", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1 cake} description:xyz", searchParameters.getFilterQueries().get(4));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{!afts tag=desc1}description:xyz", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1}description:xyz", searchParameters.getFilterQueries().get(5));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("created:2011", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1 }created:2011", searchParameters.getFilterQueries().get(6));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("=cm:name:cabbage", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1 }=cm:name:cabbage", searchParameters.getFilterQueries().get(7));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{http://www.alfresco.org/model/content/1.0}title:workflow", null, null)));
    assertEquals("{http://www.alfresco.org/model/content/1.0}title:workflow", searchParameters.getFilterQueries().get(8));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{http://www.alfresco.org/model/content/1.0}title:workflow", Arrays.asList("desc1"), null)));
    assertEquals("{!afts tag=desc1 }{http://www.alfresco.org/model/content/1.0}title:workflow", searchParameters.getFilterQueries().get(9));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{!afts} description:xyz", Arrays.asList("desc1", "desc2"), null)));
    assertEquals("{!afts tag=desc1,desc2 }description:xyz", searchParameters.getFilterQueries().get(0));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("{ !afts } description:xyz", Arrays.asList("desc1", "desc2"), null)));
    assertEquals("{!afts tag=desc1,desc2 }description:xyz", searchParameters.getFilterQueries().get(0));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery(null, Arrays.asList("desc1"), Arrays.asList("cm:name:cabbage", "cm:creator:bob"))));
    assertEquals("{!afts tag=desc1 }cm:name:cabbage OR cm:creator:bob", searchParameters.getFilterQueries().get(12));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery(null, null, Arrays.asList("cm:name:cabbage", "cm:creator:bob"))));
    assertEquals("cm:name:cabbage OR cm:creator:bob", searchParameters.getFilterQueries().get(13));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery(null, null, Arrays.asList("cm:name:cabbage"))));
    assertEquals("cm:name:cabbage", searchParameters.getFilterQueries().get(14));
    searchMapper.fromFilterQuery(searchParameters, Arrays.asList(new FilterQuery("created:2011", null, Arrays.asList("cm:name:cabbage"))));
    assertEquals("Single query should take precident over multiple queries ORed together.", "created:2011", searchParameters.getFilterQueries().get(15));
}
Also used : SearchParameters(org.alfresco.service.cmr.search.SearchParameters) InvalidArgumentException(org.alfresco.rest.framework.core.exceptions.InvalidArgumentException) FilterQuery(org.alfresco.rest.api.search.model.FilterQuery) Test(org.junit.Test)

Example 7 with InvalidArgumentException

use of org.alfresco.rest.framework.core.exceptions.InvalidArgumentException in project alfresco-remote-api by Alfresco.

the class SearchMapperTests method fromFacetQuery.

@Test
public void fromFacetQuery() throws Exception {
    SearchParameters searchParameters = new SearchParameters();
    // Doesn't error
    searchMapper.fromFacetQuery(searchParameters, null);
    searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null, null), new FacetQuery("pong", "table", null)));
    assertEquals(2, searchParameters.getFacetQueries().size());
    assertEquals("{!afts key='ping'}ping", searchParameters.getFacetQueries().get(0));
    assertEquals("{!afts key='table'}pong", searchParameters.getFacetQueries().get(1));
    try {
        searchMapper.fromFacetQuery(searchParameters, Arrays.asList(new FacetQuery("ping", null, null), new FacetQuery("{!afts}pang", "tennis", null)));
        fail();
    } catch (InvalidArgumentException iae) {
        // Cannot start with afts
        assertNotNull(iae);
    }
}
Also used : SearchParameters(org.alfresco.service.cmr.search.SearchParameters) InvalidArgumentException(org.alfresco.rest.framework.core.exceptions.InvalidArgumentException) FacetQuery(org.alfresco.rest.api.search.model.FacetQuery) Test(org.junit.Test)

Example 8 with InvalidArgumentException

use of org.alfresco.rest.framework.core.exceptions.InvalidArgumentException in project alfresco-remote-api by Alfresco.

the class SearchMapperTests method fromQuery.

@Test
public void fromQuery() throws Exception {
    SearchParameters searchParameters = new SearchParameters();
    try {
        searchMapper.fromQuery(searchParameters, new Query(null, null, null));
        fail();
    } catch (IllegalArgumentException iae) {
        assertTrue(iae.getLocalizedMessage().contains("query is a mandatory parameter"));
    }
    Query q = new Query(null, "hello", null);
    searchMapper.fromQuery(searchParameters, q);
    // Default
    assertEquals(LANGUAGE_FTS_ALFRESCO, searchParameters.getLanguage());
    q = new Query("world", "hello", null);
    try {
        searchMapper.fromQuery(searchParameters, q);
        fail();
    } catch (InvalidArgumentException iae) {
        assertNotNull(iae);
    // world is not a valid language type
    }
    q = new Query("afts", "hello", null);
    searchMapper.fromQuery(searchParameters, q);
    assertEquals(LANGUAGE_FTS_ALFRESCO, searchParameters.getLanguage());
    q = new Query("cMiS", "hello", null);
    searchMapper.fromQuery(searchParameters, q);
    assertEquals(LANGUAGE_CMIS_ALFRESCO, searchParameters.getLanguage());
    q = new Query("LuCENE", "hello", null);
    searchMapper.fromQuery(searchParameters, q);
    assertEquals(LANGUAGE_LUCENE, searchParameters.getLanguage());
    assertEquals("hello", searchParameters.getQuery());
    q = new Query("LuCENE", "hello", "Heload");
    searchMapper.fromQuery(searchParameters, q);
    assertEquals("Heload", searchParameters.getSearchTerm());
}
Also used : SearchParameters(org.alfresco.service.cmr.search.SearchParameters) InvalidArgumentException(org.alfresco.rest.framework.core.exceptions.InvalidArgumentException) FacetQuery(org.alfresco.rest.api.search.model.FacetQuery) FilterQuery(org.alfresco.rest.api.search.model.FilterQuery) Query(org.alfresco.rest.api.search.model.Query) SearchQuery(org.alfresco.rest.api.search.model.SearchQuery) Test(org.junit.Test)

Example 9 with InvalidArgumentException

use of org.alfresco.rest.framework.core.exceptions.InvalidArgumentException in project alfresco-remote-api by Alfresco.

the class CommentsImpl method getComments.

public CollectionWithPagingInfo<Comment> getComments(String nodeId, Paging paging, List<String> include) {
    final NodeRef nodeRef = nodes.validateNode(nodeId);
    /* MNT-10536 : fix */
    final Set<QName> contentAndFolders = new HashSet<QName>(Arrays.asList(ContentModel.TYPE_FOLDER, ContentModel.TYPE_CONTENT));
    if (!nodes.nodeMatches(nodeRef, contentAndFolders, null)) {
        throw new InvalidArgumentException("NodeId of folder or content is expected");
    }
    PagingRequest pagingRequest = Util.getPagingRequest(paging);
    final PagingResults<NodeRef> pagingResults = commentService.listComments(nodeRef, pagingRequest);
    final List<NodeRef> page = pagingResults.getPage();
    List<Comment> comments = new AbstractList<Comment>() {

        @Override
        public Comment get(int index) {
            return toComment(nodeRef, page.get(index), include);
        }

        @Override
        public int size() {
            return page.size();
        }
    };
    return CollectionWithPagingInfo.asPaged(paging, comments, pagingResults.hasMoreItems(), pagingResults.getTotalResultCount().getFirst());
}
Also used : AbstractList(java.util.AbstractList) NodeRef(org.alfresco.service.cmr.repository.NodeRef) Comment(org.alfresco.rest.api.model.Comment) InvalidArgumentException(org.alfresco.rest.framework.core.exceptions.InvalidArgumentException) QName(org.alfresco.service.namespace.QName) PagingRequest(org.alfresco.query.PagingRequest) HashSet(java.util.HashSet)

Example 10 with InvalidArgumentException

use of org.alfresco.rest.framework.core.exceptions.InvalidArgumentException in project alfresco-remote-api by Alfresco.

the class CommentsImpl method updateComment.

public Comment updateComment(String nodeId, Comment comment) {
    try {
        NodeRef nodeRef = nodes.validateNode(nodeId);
        String commentNodeId = comment.getId();
        NodeRef commentNodeRef = nodes.validateNode(commentNodeId);
        String title = comment.getTitle();
        String content = comment.getContent();
        if (content == null) {
            throw new InvalidArgumentException();
        }
        commentService.updateComment(commentNodeRef, title, content);
        return toComment(nodeRef, commentNodeRef, INCLUDE_FULL_PERSON);
    } catch (IllegalArgumentException e) {
        throw new ConstraintViolatedException(e.getMessage());
    }
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) InvalidArgumentException(org.alfresco.rest.framework.core.exceptions.InvalidArgumentException) ConstraintViolatedException(org.alfresco.rest.framework.core.exceptions.ConstraintViolatedException)

Aggregations

InvalidArgumentException (org.alfresco.rest.framework.core.exceptions.InvalidArgumentException)124 NodeRef (org.alfresco.service.cmr.repository.NodeRef)36 QName (org.alfresco.service.namespace.QName)36 EntityNotFoundException (org.alfresco.rest.framework.core.exceptions.EntityNotFoundException)30 ConstraintViolatedException (org.alfresco.rest.framework.core.exceptions.ConstraintViolatedException)22 ArrayList (java.util.ArrayList)21 Test (org.junit.Test)20 PermissionDeniedException (org.alfresco.rest.framework.core.exceptions.PermissionDeniedException)16 Serializable (java.io.Serializable)11 SearchParameters (org.alfresco.service.cmr.search.SearchParameters)11 Paging (org.alfresco.rest.framework.resource.parameters.Paging)10 SortColumn (org.alfresco.rest.framework.resource.parameters.SortColumn)10 ApiException (org.alfresco.rest.framework.core.exceptions.ApiException)9 HashMap (java.util.HashMap)8 HashSet (java.util.HashSet)8 Params (org.alfresco.rest.framework.resource.parameters.Params)8 SiteInfo (org.alfresco.service.cmr.site.SiteInfo)8 NotFoundException (org.alfresco.rest.framework.core.exceptions.NotFoundException)7 Pair (org.alfresco.util.Pair)7 List (java.util.List)6