diff --git a/source/java/org/alfresco/rest/api/impl/DeletedNodesImpl.java b/source/java/org/alfresco/rest/api/impl/DeletedNodesImpl.java index 542691c6c2..7b35478019 100644 --- a/source/java/org/alfresco/rest/api/impl/DeletedNodesImpl.java +++ b/source/java/org/alfresco/rest/api/impl/DeletedNodesImpl.java @@ -118,6 +118,9 @@ public class DeletedNodesImpl implements DeletedNodes // Query the DB PagingResults result = nodeArchiveService.listArchivedNodes(queryBuilder); + + Integer totalItems = result.getTotalResultCount().getFirst(); + List nodesFound = new ArrayList(result.getPage().size()); Map mapUserInfo = new HashMap<>(); for (NodeRef nRef:result.getPage()) @@ -126,7 +129,8 @@ public class DeletedNodesImpl implements DeletedNodes mapArchiveInfo(foundNode,mapUserInfo); nodesFound.add(foundNode); } - return CollectionWithPagingInfo.asPaged(parameters.getPaging(), nodesFound); + + return CollectionWithPagingInfo.asPaged(parameters.getPaging(), nodesFound, result.hasMoreItems(), (totalItems == null ? null : totalItems.intValue())); } @Override diff --git a/source/test-java/org/alfresco/rest/DeletedNodesTest.java b/source/test-java/org/alfresco/rest/DeletedNodesTest.java index fdfa70cf93..b326249c25 100644 --- a/source/test-java/org/alfresco/rest/DeletedNodesTest.java +++ b/source/test-java/org/alfresco/rest/DeletedNodesTest.java @@ -111,6 +111,22 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest assertNotNull(nodes); assertEquals(numOfNodes+3,nodes.size()); + //The list is ordered with the most recently deleted node first + checkDeletedNodes(now, createdFolder, createdFolderNonSite, document, nodes); + + // sanity check paging + paging = getPaging(1, 1); + response = getAll(URL_DELETED_NODES, paging, 200); + nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); + assertNotNull(nodes); + assertEquals(1, nodes.size()); + PublicApiClient.ExpectedPaging expectedPaging = RestApiUtil.parsePaging(response.getJsonResponse()); + assertEquals(numOfNodes+3, expectedPaging.getTotalItems().intValue()); + assertEquals(1, expectedPaging.getCount().intValue()); + assertEquals(1, expectedPaging.getSkipCount().intValue()); + assertEquals(1, expectedPaging.getMaxItems().intValue()); + assertTrue(expectedPaging.getHasMoreItems().booleanValue()); + Map params = Collections.singletonMap("include", "path"); response = getSingle(URL_DELETED_NODES, document.getId(), params, 200); Document node = jacksonUtil.parseEntry(response.getJsonResponse(), Document.class); @@ -142,9 +158,6 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest assertEquals("/Company Home/User Homes/"+user1, path.getName()); assertTrue(path.getIsComplete()); - //The list is ordered with the most recently deleted node first - checkDeletedNodes(now, createdFolder, createdFolderNonSite, document, nodes); - //User 2 can't get it but user 1 can. setRequestContext(user2); getSingle(URL_DELETED_NODES, createdFolderNonSite.getId(), Status.STATUS_FORBIDDEN); @@ -156,6 +169,7 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest //Now as admin setRequestContext(networkAdmin); + paging = getPaging(0, 100); response = publicApiClient.get(getScope(), URL_DELETED_NODES, null, null, null, createParams(paging, null)); checkStatus(200, response.getStatusCode()); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class);