mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-4615: now using RM FilePlanComponentAPI calls to create electronic records.
This commit is contained in:
@@ -52,8 +52,6 @@ import org.alfresco.rest.core.RMRestWrapper;
|
|||||||
import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponent;
|
import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponent;
|
||||||
import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentsCollection;
|
import org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentsCollection;
|
||||||
import org.alfresco.rest.rm.community.requests.RMModelRequest;
|
import org.alfresco.rest.rm.community.requests.RMModelRequest;
|
||||||
import org.alfresco.utility.model.ContentModel;
|
|
||||||
import org.alfresco.utility.model.RepoTestModel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* File plan component REST API Wrapper
|
* File plan component REST API Wrapper
|
||||||
@@ -233,13 +231,15 @@ public class FilePlanComponentAPI extends RMModelRequest
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Create electronic record from file resource
|
* Create electronic record from file resource
|
||||||
|
*
|
||||||
* @param electronicRecordModel {@link FilePlanComponent} for electronic record to be created
|
* @param electronicRecordModel {@link FilePlanComponent} for electronic record to be created
|
||||||
* @param recordContent {@link File} pointing to the content of the electronic record to be created
|
* @param recordContent {@link File} pointing to the content of the electronic record to be created
|
||||||
* @param parentId parent container id
|
* @param parentId parent container id
|
||||||
* @return newly created {@link FilePlanComponent}
|
* @return newly created {@link FilePlanComponent}
|
||||||
* @throws Exception if electronic record couldn't be created
|
* @throws Exception for invalid electronicRecordModel JSON strings
|
||||||
*/
|
*/
|
||||||
public FilePlanComponent createElectronicRecord(FilePlanComponent electronicRecordModel, File recordContent, String parentId) throws Exception
|
public FilePlanComponent createElectronicRecord(FilePlanComponent electronicRecordModel, File recordContent,
|
||||||
|
String parentId) throws Exception
|
||||||
{
|
{
|
||||||
mandatoryObject("electronicRecordModel", electronicRecordModel);
|
mandatoryObject("electronicRecordModel", electronicRecordModel);
|
||||||
mandatoryString("parentId", parentId);
|
mandatoryString("parentId", parentId);
|
||||||
@@ -247,11 +247,7 @@ public class FilePlanComponentAPI extends RMModelRequest
|
|||||||
{
|
{
|
||||||
fail("Only electronic records are supported");
|
fail("Only electronic records are supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
RepoTestModel parentNode = new ContentModel();
|
|
||||||
// using getFilePlanComponent to work around RM special containers, unsupported in Core API usingNode()
|
|
||||||
parentNode.setNodeRef(getFilePlanComponent(parentId).getId());
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For file uploads nodeBodyCreate is ignored hence can't be used. Append all FilePlanComponent fields
|
* For file uploads nodeBodyCreate is ignored hence can't be used. Append all FilePlanComponent fields
|
||||||
* to the request.
|
* to the request.
|
||||||
@@ -267,21 +263,9 @@ public class FilePlanComponentAPI extends RMModelRequest
|
|||||||
builder.addMultiPart(fieldName, root.get(fieldName).asText(), ContentType.JSON.name());
|
builder.addMultiPart(fieldName, root.get(fieldName).asText(), ContentType.JSON.name());
|
||||||
}
|
}
|
||||||
builder.addMultiPart("filedata", recordContent, ContentType.BINARY.name());
|
builder.addMultiPart("filedata", recordContent, ContentType.BINARY.name());
|
||||||
|
|
||||||
// create node with given content using core Node API
|
// create node with given content
|
||||||
String nodeId = getRMRestWrapper().withCoreAPI().usingNode(parentNode).createNode().getId();
|
return createFilePlanComponent(electronicRecordModel, parentId);
|
||||||
String createStatusCode = getRMRestWrapper().getStatusCode();
|
|
||||||
|
|
||||||
// return FilePlanComponent for created node
|
|
||||||
FilePlanComponent createdComponent = getRMRestWrapper()
|
|
||||||
.withIGCoreAPI()
|
|
||||||
.usingFilePlanComponents()
|
|
||||||
.getFilePlanComponent(nodeId);
|
|
||||||
|
|
||||||
// avoid getFilePlanComponent() overriding the createNode status code
|
|
||||||
getRMRestWrapper().setStatusCode(createStatusCode);
|
|
||||||
|
|
||||||
return createdComponent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -95,8 +95,7 @@ public class ElectronicRecordTests extends BaseRMRestTest
|
|||||||
@Test
|
@Test
|
||||||
(
|
(
|
||||||
dataProvider = "invalidParentContainers",
|
dataProvider = "invalidParentContainers",
|
||||||
description = "Electronic records can't be created in invalid parent containers",
|
description = "Electronic records can't be created in invalid parent containers"
|
||||||
expectedExceptions = IllegalArgumentException.class
|
|
||||||
)
|
)
|
||||||
public void cantCreateElectronicRecordsInInvalidContainers(FilePlanComponent container) throws Exception
|
public void cantCreateElectronicRecordsInInvalidContainers(FilePlanComponent container) throws Exception
|
||||||
{
|
{
|
||||||
@@ -119,8 +118,7 @@ public class ElectronicRecordTests extends BaseRMRestTest
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
(
|
(
|
||||||
description = "Electronic record can't be created in closed record folder",
|
description = "Electronic record can't be created in closed record folder"
|
||||||
expectedExceptions = IllegalArgumentException.class
|
|
||||||
)
|
)
|
||||||
public void cantCreateElectronicRecordInClosedFolder() throws Exception
|
public void cantCreateElectronicRecordInClosedFolder() throws Exception
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user