mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge branch 'feature/RM-5115_FixListCatChildrenRestAPI' into 'master'
Feature/rm 5115 fix list cat children rest api See merge request !266
This commit is contained in:
@@ -52,6 +52,7 @@ import static org.testng.Assert.assertTrue;
|
|||||||
import static org.testng.Assert.fail;
|
import static org.testng.Assert.fail;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
@@ -66,7 +67,10 @@ import org.alfresco.rest.rm.community.model.recordfolder.RecordFolder;
|
|||||||
import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI;
|
import org.alfresco.rest.rm.community.requests.gscore.api.FilePlanAPI;
|
||||||
import org.alfresco.rest.rm.community.requests.gscore.api.RecordCategoryAPI;
|
import org.alfresco.rest.rm.community.requests.gscore.api.RecordCategoryAPI;
|
||||||
import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
|
import org.alfresco.rest.rm.community.requests.gscore.api.RecordFolderAPI;
|
||||||
|
import org.alfresco.rest.v0.RecordCategoriesAPI;
|
||||||
|
import org.alfresco.rest.core.v0.BaseAPI.RETENTION_SCHEDULE;
|
||||||
import org.alfresco.utility.report.Bug;
|
import org.alfresco.utility.report.Bug;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.testng.annotations.DataProvider;
|
import org.testng.annotations.DataProvider;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
@@ -83,6 +87,9 @@ public class RecordCategoryTests extends BaseRMRestTest
|
|||||||
private static final int NUMBER_OF_CHILDREN = 10;
|
private static final int NUMBER_OF_CHILDREN = 10;
|
||||||
private static final int NUMBER_OF_FOLDERS = 5;
|
private static final int NUMBER_OF_FOLDERS = 5;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RecordCategoriesAPI recordCategoriesAPI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invalid containers that cannot be deleted with record category end-point
|
* Invalid containers that cannot be deleted with record category end-point
|
||||||
*/
|
*/
|
||||||
@@ -287,6 +294,7 @@ public class RecordCategoryTests extends BaseRMRestTest
|
|||||||
assertEquals(folderProperties.getTitle(), TITLE_PREFIX + RECORD_FOLDER_NAME);
|
assertEquals(folderProperties.getTitle(), TITLE_PREFIX + RECORD_FOLDER_NAME);
|
||||||
assertNotNull(folderProperties.getIdentifier());
|
assertNotNull(folderProperties.getIdentifier());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* Given that a record category exists
|
* Given that a record category exists
|
||||||
@@ -294,17 +302,37 @@ public class RecordCategoryTests extends BaseRMRestTest
|
|||||||
* When I ask the API to get me the children of the record category
|
* When I ask the API to get me the children of the record category
|
||||||
* Then I am returned the contained record categories and record folders and their details
|
* Then I am returned the contained record categories and record folders and their details
|
||||||
* </pre>
|
* </pre>
|
||||||
|
* <pre>
|
||||||
|
* Given that a record category with a disposition schedule exists
|
||||||
|
* And contains a number of record categories and record folders
|
||||||
|
* When I ask the API to get me the children of the record category
|
||||||
|
* Then I am returned the contained record categories and record folders but not the disposition schedule
|
||||||
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
(
|
(
|
||||||
description = "Get children of a record category"
|
description = "Get children of a record category excluding the disposition schedule"
|
||||||
)
|
)
|
||||||
|
@Bug (id="RM-5115")
|
||||||
public void getRecordCategoryChildren() throws Exception
|
public void getRecordCategoryChildren() throws Exception
|
||||||
{
|
{
|
||||||
// Create root level category
|
// Create root level category
|
||||||
RecordCategory rootRecordCategory = createRootCategory(getRandomAlphanumeric());
|
RecordCategory rootRecordCategory = createRootCategory(getRandomAlphanumeric());
|
||||||
assertNotNull(rootRecordCategory.getId());
|
assertNotNull(rootRecordCategory.getId());
|
||||||
|
|
||||||
|
// Create disposition schedule
|
||||||
|
String userName = getAdminUser().getUsername();
|
||||||
|
String userPassword = getAdminUser().getPassword();
|
||||||
|
String categoryName = rootRecordCategory.getName();
|
||||||
|
recordCategoriesAPI.createRetentionSchedule(userName, userPassword, categoryName);
|
||||||
|
|
||||||
|
// Add disposition schedule cut off step
|
||||||
|
HashMap<RETENTION_SCHEDULE, String> cutOffStep = new HashMap<>();
|
||||||
|
cutOffStep.put(RETENTION_SCHEDULE.NAME, "cutoff");
|
||||||
|
cutOffStep.put(RETENTION_SCHEDULE.RETENTION_PERIOD, "day|2");
|
||||||
|
cutOffStep.put(RETENTION_SCHEDULE.DESCRIPTION, "Cut off after 2 days");
|
||||||
|
recordCategoriesAPI.addDispositionScheduleSteps(userName, userPassword, categoryName, cutOffStep);
|
||||||
|
|
||||||
// Add record category children
|
// Add record category children
|
||||||
List<RecordCategoryChild> children = new ArrayList<RecordCategoryChild>();
|
List<RecordCategoryChild> children = new ArrayList<RecordCategoryChild>();
|
||||||
for (int i=0; i < NUMBER_OF_CHILDREN; i++)
|
for (int i=0; i < NUMBER_OF_CHILDREN; i++)
|
||||||
|
@@ -198,6 +198,7 @@ public class SearchTypesFactory
|
|||||||
Boolean isRecordFolder = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_FOLDER,
|
Boolean isRecordFolder = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_FOLDER,
|
||||||
WhereClauseParser.EQUALS, Boolean.class);
|
WhereClauseParser.EQUALS, Boolean.class);
|
||||||
Boolean isRecordCategory = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_CATEGORY, WhereClauseParser.EQUALS, Boolean.class);
|
Boolean isRecordCategory = propertyWalker.getProperty(RecordCategoryChild.PARAM_IS_RECORD_CATEGORY, WhereClauseParser.EQUALS, Boolean.class);
|
||||||
|
|
||||||
if ((isRecordFolder != null && isRecordFolder.booleanValue()) || (isRecordCategory != null && !isRecordCategory.booleanValue()))
|
if ((isRecordFolder != null && isRecordFolder.booleanValue()) || (isRecordCategory != null && !isRecordCategory.booleanValue()))
|
||||||
{
|
{
|
||||||
includeRecordFolders = true;
|
includeRecordFolders = true;
|
||||||
@@ -221,6 +222,7 @@ public class SearchTypesFactory
|
|||||||
if (nodeTypeQNameStr.equals(RecordsManagementModel.TYPE_RECORD_FOLDER))
|
if (nodeTypeQNameStr.equals(RecordsManagementModel.TYPE_RECORD_FOLDER))
|
||||||
{
|
{
|
||||||
includeRecordFolders = true;
|
includeRecordFolders = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (filterNodeTypeQName.equals(RecordsManagementModel.TYPE_RECORD_CATEGORY))
|
else if (filterNodeTypeQName.equals(RecordsManagementModel.TYPE_RECORD_CATEGORY))
|
||||||
{
|
{
|
||||||
|
@@ -33,12 +33,14 @@ import static org.alfresco.util.ParameterCheck.mandatory;
|
|||||||
import java.util.AbstractList;
|
import java.util.AbstractList;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
|
||||||
import org.alfresco.query.PagingResults;
|
import org.alfresco.query.PagingResults;
|
||||||
import org.alfresco.repo.node.getchildren.FilterProp;
|
import org.alfresco.repo.node.getchildren.FilterProp;
|
||||||
@@ -114,10 +116,11 @@ public class RecordCategoryChildrenRelation implements RelationshipResourceActio
|
|||||||
|
|
||||||
// list record categories and record folders
|
// list record categories and record folders
|
||||||
Set<QName> searchTypeQNames = searchTypesFactory.buildSearchTypesCategoriesEndpoint(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
Set<QName> searchTypeQNames = searchTypesFactory.buildSearchTypesCategoriesEndpoint(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
||||||
|
Set<QName> assocTypeQNames = Collections.singleton(ContentModel.ASSOC_CONTAINS);
|
||||||
List<FilterProp> filterProps = apiUtils.getListChildrenFilterProps(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
List<FilterProp> filterProps = apiUtils.getListChildrenFilterProps(parameters, LIST_RECORD_CATEGORY_CHILDREN_EQUALS_QUERY_PROPERTIES);
|
||||||
|
|
||||||
final PagingResults<FileInfo> pagingResults = fileFolderService.list(parentNodeRef,
|
final PagingResults<FileInfo> pagingResults = fileFolderService.list(parentNodeRef,
|
||||||
null,
|
assocTypeQNames,
|
||||||
searchTypeQNames,
|
searchTypeQNames,
|
||||||
null,
|
null,
|
||||||
apiUtils.getSortProperties(parameters),
|
apiUtils.getSortProperties(parameters),
|
||||||
|
Reference in New Issue
Block a user