Merge branch 'feature/RM-5087_UpdateNotesForGETEndpoints' into 'master'

RM-5087 - Updated yaml file for include parameter

See merge request !254
This commit is contained in:
Ramona Popa
2017-05-19 08:38:39 +01:00
4 changed files with 219 additions and 117 deletions

View File

@@ -40,6 +40,7 @@ import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedul
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel;
import org.alfresco.rest.api.Nodes;
import org.alfresco.rest.api.model.AssocChild;
import org.alfresco.rest.api.model.ContentInfo;
import org.alfresco.rest.api.model.Node;
import org.alfresco.rest.api.model.UserInfo;
@@ -61,7 +62,9 @@ import org.alfresco.rm.rest.api.model.UnfiledRecordFolder;
import org.alfresco.rm.rest.api.model.UnfiledRecordFolderChild;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.namespace.NamespaceService;
@@ -466,10 +469,6 @@ public class ApiNodesModelFactory
{
transferChild.setIsClosed((Boolean) nodeService.getProperty(info.getNodeRef(), RecordsManagementModel.PROP_IS_CLOSED));
}
if(isMinimalInfo && includeParam.contains(TransferChild.PARAM_IS_COMPLETED))
{
transferChild.setIsCompleted(null);
}
}
else
{
@@ -485,10 +484,6 @@ public class ApiNodesModelFactory
{
transferChild.setIsClosed(null);
}
if(isMinimalInfo && includeParam.contains(TransferChild.PARAM_IS_COMPLETED))
{
transferChild.setIsCompleted(nodeService.hasAspect(info.getNodeRef(), RecordsManagementModel.ASPECT_DECLARED_RECORD));
}
}
}
@@ -520,7 +515,7 @@ public class ApiNodesModelFactory
{
recordCategoryChild.setIsClosed((Boolean) nodeService.getProperty(info.getNodeRef(), RecordsManagementModel.PROP_IS_CLOSED));
}
if((!isMinimalInfo && propertyFilter.isAllowed(RMNode.PARAM_HAS_RETENTION_SCHEDULE)) || (isMinimalInfo && includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE)))
if (includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE))
{
recordCategoryChild.setHasRetentionSchedule(null);
}
@@ -535,7 +530,7 @@ public class ApiNodesModelFactory
{
recordCategoryChild.setIsRecordCategory(true);
}
if((!isMinimalInfo && propertyFilter.isAllowed(RMNode.PARAM_HAS_RETENTION_SCHEDULE)) || (isMinimalInfo && includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE)))
if (includeParam.contains(RMNode.PARAM_HAS_RETENTION_SCHEDULE))
{
DispositionSchedule ds = dispositionService.getDispositionSchedule(info.getNodeRef());
recordCategoryChild.setHasRetentionSchedule(ds !=null ? true : false);
@@ -600,6 +595,48 @@ public class ApiNodesModelFactory
return nodes.mapFromNodeProperties(properties, new ArrayList<>(), new HashMap<>(), EXCLUDED_NS, EXCLUDED_PROPS);
}
/**
* Utility method that maps associations, applicable only for records
*
* @param rmNode
* @param info
* @param includeParam
*/
private void mapAssociations(RMNode rmNode, FileInfo info, List<String> includeParam)
{
if (includeParam.contains(RMNode.PARAM_INCLUDE_ASSOCIATION))
{
NodeRef nodeRef = info.getNodeRef();
ChildAssociationRef parentAssocRef = nodeService.getPrimaryParent(nodeRef);
if ((parentAssocRef == null) || (parentAssocRef.getParentRef() == null)
|| (!parentAssocRef.getParentRef().equals(rmNode.getParentId())))
{
List<ChildAssociationRef> parentAssocRefs = nodeService.getParentAssocs(nodeRef);
for (ChildAssociationRef pAssocRef : parentAssocRefs)
{
if (pAssocRef.getParentRef().equals(rmNode.getParentId()))
{
// for now, assume same parent/child cannot appear more than once (due to unique name)
parentAssocRef = pAssocRef;
break;
}
}
}
if (parentAssocRef != null)
{
QName assocTypeQName = parentAssocRef.getTypeQName();
if ((assocTypeQName != null) && (!EXCLUDED_NS.contains(assocTypeQName.getNamespaceURI())))
{
AssocChild childAssoc = new AssocChild(assocTypeQName.toPrefixString(namespaceService), parentAssocRef.isPrimary());
rmNode.setAssociation(childAssoc);
}
}
}
}
/**
* Creates an object of type FilePlan
*
@@ -760,6 +797,10 @@ public class ApiNodesModelFactory
mapBasicInfo(unfiledContainerChild, info, parameters.getFilter(), mapUserInfo, isMinimalInfo);
mapOptionalInfo(unfiledContainerChild, info, parameters.getInclude(), isMinimalInfo);
mapUnfiledChildInfo(unfiledContainerChild, info, parameters.getFilter());
if (unfiledContainerChild.getIsRecord())
{
mapAssociations(unfiledContainerChild, info, parameters.getInclude());
}
return unfiledContainerChild;
}
@@ -797,6 +838,10 @@ public class ApiNodesModelFactory
mapBasicInfo(unfiledRecordFolderChild, info, parameters.getFilter(), mapUserInfo, isMinimalInfo);
mapOptionalInfo(unfiledRecordFolderChild, info, parameters.getInclude(), isMinimalInfo);
mapUnfiledChildInfo(unfiledRecordFolderChild, info, parameters.getFilter());
if (unfiledRecordFolderChild.getIsRecord())
{
mapAssociations(unfiledRecordFolderChild, info, parameters.getInclude());
}
return unfiledRecordFolderChild;
}
@@ -834,6 +879,7 @@ public class ApiNodesModelFactory
mapBasicInfo(record, info, parameters.getFilter(), mapUserInfo, isMinimalInfo);
mapOptionalInfo(record, info, parameters.getInclude(), isMinimalInfo);
mapRecordInfo(record, info, parameters.getInclude());
mapAssociations(record, info, parameters.getInclude());
return record;
}
}

View File

@@ -31,6 +31,7 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import org.alfresco.rest.api.model.Assoc;
import org.alfresco.rest.api.model.PathInfo;
import org.alfresco.rest.api.model.UserInfo;
import org.alfresco.rest.framework.resource.UniqueId;
@@ -65,6 +66,7 @@ public abstract class RMNode
public static final String PARAM_HAS_RETENTION_SCHEDULE = "hasRetentionSchedule";
public static final String PARAM_IS_CLOSED = "isClosed";
public static final String PARAM_INCLUDE_ASSOCIATION = "association";
public static final String FILE_PLAN_TYPE = "rma:filePlan";
public static final String RECORD_CATEGORY_TYPE = "rma:recordCategory";
@@ -94,6 +96,7 @@ public abstract class RMNode
protected Map<String, Object> properties;
protected PathInfo path;
protected List<String> allowableOperations;
protected Assoc association;
public RMNode()
{
@@ -221,4 +224,14 @@ public abstract class RMNode
this.allowableOperations = allowableOperations;
}
public Assoc getAssociation()
{
return association;
}
public void setAssociation(Assoc association)
{
this.association = association;
}
}

View File

@@ -39,7 +39,6 @@ public class TransferChild extends RMNode
public static final String PARAM_IS_RECORD_FOLDER = "isRecordFolder";
public static final String PARAM_IS_RECORD = "isRecord";
protected Boolean isCompleted;
protected Boolean isClosed;
protected Boolean isRecordFolder;
protected Boolean isRecord;
@@ -48,16 +47,6 @@ public class TransferChild extends RMNode
{
}
public Boolean getIsCompleted()
{
return isCompleted;
}
public void setIsCompleted(Boolean isCompleted)
{
this.isCompleted = isCompleted;
}
public Boolean getIsClosed()
{
return isClosed;