Merge branch 'master' into feature/RM-4585_Amend_Test_Code_After_TAS_5202_Release

Conflicts:
	rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/files/DeclareDocumentAsRecordTests.java
This commit is contained in:
Tuna Aksoy
2017-02-10 10:35:57 +00:00
9 changed files with 124 additions and 58 deletions

View File

@@ -107,7 +107,7 @@ public class FilePlanComponentProperties
@JsonProperty(value = PROPERTIES_PHYSICAL_SIZE, required = false) @JsonProperty(value = PROPERTIES_PHYSICAL_SIZE, required = false)
private Integer physicalSize; private Integer physicalSize;
@JsonProperty(value = PROPERTIES_RECORD_ID, required = false) @JsonProperty(value = PROPERTIES_RECORD_ID, required = false)
private String recordId; private String rmIdentifier;
} }

View File

@@ -32,8 +32,11 @@ import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanCo
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentAlias.UNFILED_RECORDS_CONTAINER_ALIAS;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.CONTENT_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.CONTENT_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.FILE_PLAN_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.FILE_PLAN_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.FOLDER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.HOLD_CONTAINER_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.HOLD_CONTAINER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.HOLD_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.HOLD_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_CATEGORY_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.RECORD_FOLDER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.TRANSFER_CONTAINER_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.TRANSFER_CONTAINER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.TRANSFER_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.TRANSFER_TYPE;
import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_CONTAINER_TYPE; import static org.alfresco.rest.rm.community.model.fileplancomponents.FilePlanComponentType.UNFILED_CONTAINER_TYPE;
@@ -122,12 +125,12 @@ public interface TestData
* The default electronic record name used when creating electronic records * The default electronic record name used when creating electronic records
*/ */
public static String ELECTRONIC_RECORD_NAME = "Record electronic" + getRandomAlphanumeric(); public static String ELECTRONIC_RECORD_NAME = "Record electronic" + getRandomAlphanumeric();
/** /**
* The default Non electronic record name used when creating non-electronic records * The default Non electronic record name used when creating non-electronic records
*/ */
public static String NONELECTRONIC_RECORD_NAME = "Record nonelectronic" + getRandomAlphanumeric(); public static String NONELECTRONIC_RECORD_NAME = "Record nonelectronic" + getRandomAlphanumeric();
/** /**
* Data Provider with: * Data Provider with:
* with the object types not allowed as children for a record category * with the object types not allowed as children for a record category
@@ -148,4 +151,36 @@ public interface TestData
{ CONTENT_TYPE } { CONTENT_TYPE }
}; };
} }
/**
* Data Provider with:
* with the object types for creating a Record Folder
*
* @return file plan component alias
*/
@DataProvider
public static Object[][] folderTypes()
{
return new Object[][] {
{ RECORD_FOLDER_TYPE },
{ FOLDER_TYPE }
};
}
/**
* Data Provider with:
* with the object types for creating a Record Category
*
* @return file plan component alias
*/
@DataProvider
public static Object[][] categoryTypes()
{
return new Object[][] {
{ FOLDER_TYPE },
{ RECORD_CATEGORY_TYPE }
};
}
} }

View File

@@ -221,6 +221,7 @@ public class ElectronicRecordTests extends BaseRMRestTest
// created record will have record identifier inserted in its name but will be prefixed with // created record will have record identifier inserted in its name but will be prefixed with
// the name it was created as // the name it was created as
assertTrue(electronicRecord.getName().startsWith(record.getName())); assertTrue(electronicRecord.getName().startsWith(record.getName()));
assertTrue(electronicRecord.getName().contains(electronicRecord.getProperties().getRmIdentifier()));
} }
/** /**
@@ -252,6 +253,7 @@ public class ElectronicRecordTests extends BaseRMRestTest
// record will have record identifier inserted in its name but will for sure start with file name // record will have record identifier inserted in its name but will for sure start with file name
// and end with its extension // and end with its extension
assertTrue(electronicRecord.getName().startsWith(IMAGE_FILE.substring(0, IMAGE_FILE.indexOf(".")))); assertTrue(electronicRecord.getName().startsWith(IMAGE_FILE.substring(0, IMAGE_FILE.indexOf("."))));
assertTrue(electronicRecord.getName().contains(electronicRecord.getProperties().getRmIdentifier()));
} }
@Test @Test

View File

@@ -44,6 +44,7 @@ import static org.springframework.http.HttpStatus.FORBIDDEN;
import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY; import static org.springframework.http.HttpStatus.UNPROCESSABLE_ENTITY;
import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import java.util.Random; import java.util.Random;
@@ -142,6 +143,7 @@ public class NonElectronicRecordTests extends BaseRMRestTest
String file = "File " + getRandomAlphanumeric(); String file = "File " + getRandomAlphanumeric();
String shelf = "Shelf " + getRandomAlphanumeric(); String shelf = "Shelf " + getRandomAlphanumeric();
String location = "Location " + getRandomAlphanumeric(); String location = "Location " + getRandomAlphanumeric();
String name = "Record " + getRandomAlphanumeric();
Random random = new Random(); Random random = new Random();
Integer copies = random.nextInt(Integer.MAX_VALUE); Integer copies = random.nextInt(Integer.MAX_VALUE);
@@ -149,7 +151,7 @@ public class NonElectronicRecordTests extends BaseRMRestTest
// set values of all available properties for the non electronic records // set values of all available properties for the non electronic records
FilePlanComponent filePlanComponent = FilePlanComponent.builder() FilePlanComponent filePlanComponent = FilePlanComponent.builder()
.name("Record " + getRandomAlphanumeric()) .name(name)
.nodeType(NON_ELECTRONIC_RECORD_TYPE) .nodeType(NON_ELECTRONIC_RECORD_TYPE)
.properties(FilePlanComponentProperties.builder() .properties(FilePlanComponentProperties.builder()
.title(title) .title(title)
@@ -183,6 +185,8 @@ public class NonElectronicRecordTests extends BaseRMRestTest
assertEquals(location, nonElectronicRecord.getProperties().getLocation()); assertEquals(location, nonElectronicRecord.getProperties().getLocation());
assertEquals(copies, nonElectronicRecord.getProperties().getNumberOfCopies()); assertEquals(copies, nonElectronicRecord.getProperties().getNumberOfCopies());
assertEquals(size, nonElectronicRecord.getProperties().getPhysicalSize()); assertEquals(size, nonElectronicRecord.getProperties().getPhysicalSize());
assertTrue(nonElectronicRecord.getName().contains(nonElectronicRecord.getProperties().getRmIdentifier()));
assertTrue(nonElectronicRecord.getName().contains(name));
} }
/** /**

View File

@@ -85,7 +85,7 @@ public class ReadRecordTests extends BaseRMRestTest
.nodeType(CONTENT_TYPE.toString()) .nodeType(CONTENT_TYPE.toString())
.content(FilePlanComponentContent.builder().mimeType("text/plain").build()) .content(FilePlanComponentContent.builder().mimeType("text/plain").build())
.build(); .build();
private FilePlanComponent nonelectronicRecord = FilePlanComponent.builder() private FilePlanComponent nonelectronicRecord = FilePlanComponent.builder()
.properties(FilePlanComponentProperties.builder() .properties(FilePlanComponentProperties.builder()
.description(NONELECTRONIC_RECORD_NAME) .description(NONELECTRONIC_RECORD_NAME)
@@ -178,6 +178,8 @@ public class ReadRecordTests extends BaseRMRestTest
assertNotNull(recordWithContent.getContent().getEncoding()); assertNotNull(recordWithContent.getContent().getEncoding());
assertNotNull(recordWithContent.getContent().getMimeType()); assertNotNull(recordWithContent.getContent().getMimeType());
assertNotNull(recordWithContent.getAspectNames()); assertNotNull(recordWithContent.getAspectNames());
assertFalse(recordWithContent.getName().equals(ELECTRONIC_RECORD_NAME));
assertTrue(recordWithContent.getName().contains(recordWithContent.getProperties().getRmIdentifier()));
assertStatusCode(OK); assertStatusCode(OK);
//create non-electronic record //create non-electronic record
@@ -196,6 +198,8 @@ public class ReadRecordTests extends BaseRMRestTest
assertNotNull(nonElectronicRecord.getContent().getMimeType()); assertNotNull(nonElectronicRecord.getContent().getMimeType());
assertNotNull(nonElectronicRecord.getAspectNames()); assertNotNull(nonElectronicRecord.getAspectNames());
assertEquals(nonElectronicRecord.getProperties().getDescription(), NONELECTRONIC_RECORD_NAME); assertEquals(nonElectronicRecord.getProperties().getDescription(), NONELECTRONIC_RECORD_NAME);
assertFalse(nonElectronicRecord.getName().equals(NONELECTRONIC_RECORD_NAME));
assertTrue(nonElectronicRecord.getName().contains(nonElectronicRecord.getProperties().getRmIdentifier()));
assertStatusCode(OK); assertStatusCode(OK);
} }
@@ -209,11 +213,11 @@ public class ReadRecordTests extends BaseRMRestTest
{ {
FilePlanComponentAPI filePlanComponentAPI = getRestAPIFactory().getFilePlanComponentsAPI(); FilePlanComponentAPI filePlanComponentAPI = getRestAPIFactory().getFilePlanComponentsAPI();
RecordsAPI recordsAPI = getRestAPIFactory().getRecordsAPI(); RecordsAPI recordsAPI = getRestAPIFactory().getRecordsAPI();
String RECORD_ELECTRONIC = "Record " + getRandomAlphanumeric(); String RECORD_ELECTRONIC = "Record " + getRandomAlphanumeric();
String RECORD_ELECTRONIC_BINARY = "Binary Record" + getRandomAlphanumeric(); String RECORD_ELECTRONIC_BINARY = "Binary Record" + getRandomAlphanumeric();
String RELATIVE_PATH = "/" + CATEGORY_NAME + getRandomAlphanumeric() + "/folder"; String RELATIVE_PATH = "/" + CATEGORY_NAME + getRandomAlphanumeric() + "/folder";
// create the containers from the relativePath // create the containers from the relativePath
FilePlanComponent recordFolder = FilePlanComponent.builder() FilePlanComponent recordFolder = FilePlanComponent.builder()
.name(FOLDER_NAME) .name(FOLDER_NAME)
@@ -221,7 +225,7 @@ public class ReadRecordTests extends BaseRMRestTest
.relativePath(RELATIVE_PATH) .relativePath(RELATIVE_PATH)
.build(); .build();
String folderId = filePlanComponentAPI.createFilePlanComponent(recordFolder, FILE_PLAN_ALIAS).getId(); String folderId = filePlanComponentAPI.createFilePlanComponent(recordFolder, FILE_PLAN_ALIAS).getId();
// text file as an electronic record // text file as an electronic record
FilePlanComponent recordText = FilePlanComponent.builder() FilePlanComponent recordText = FilePlanComponent.builder()
.name(RECORD_ELECTRONIC) .name(RECORD_ELECTRONIC)
@@ -237,19 +241,19 @@ public class ReadRecordTests extends BaseRMRestTest
.name(RECORD_ELECTRONIC_BINARY) .name(RECORD_ELECTRONIC_BINARY)
.nodeType(CONTENT_TYPE) .nodeType(CONTENT_TYPE)
.build(); .build();
String binaryRecordId = filePlanComponentAPI.createElectronicRecord(recordBinary, IMAGE_FILE, folderId).getId(); String binaryRecordId = filePlanComponentAPI.createElectronicRecord(recordBinary, IMAGE_FILE, folderId).getId();
// binary content, therefore compare respective SHA1 checksums in order to verify this is identical content // binary content, therefore compare respective SHA1 checksums in order to verify this is identical content
try try
( (
InputStream recordContentStream = recordsAPI.getRecordContent(binaryRecordId).asInputStream(); InputStream recordContentStream = recordsAPI.getRecordContent(binaryRecordId).asInputStream();
FileInputStream localFileStream = new FileInputStream(new File(Resources.getResource(IMAGE_FILE).getFile())); FileInputStream localFileStream = new FileInputStream(new File(Resources.getResource(IMAGE_FILE).getFile()));
) )
{ {
assertEquals(DigestUtils.sha1(recordContentStream), DigestUtils.sha1(localFileStream)); assertEquals(DigestUtils.sha1(recordContentStream), DigestUtils.sha1(localFileStream));
} }
assertStatusCode(OK); assertStatusCode(OK);
// electronic record with no content // electronic record with no content
FilePlanComponent recordNoContent = FilePlanComponent.builder() FilePlanComponent recordNoContent = FilePlanComponent.builder()
.name(RECORD_ELECTRONIC) .name(RECORD_ELECTRONIC)
@@ -390,8 +394,9 @@ public class ReadRecordTests extends BaseRMRestTest
assertFalse(filePlanComponent.getIsRecordFolder()); assertFalse(filePlanComponent.getIsRecordFolder());
assertFalse(filePlanComponent.getIsCategory()); assertFalse(filePlanComponent.getIsCategory());
//assertEquals(createdComponent.getName(), filePlanComponent.getName()); //check the record name
assertTrue(filePlanComponent.getName().startsWith(createdComponent.getName())); assertTrue(filePlanComponent.getName().equals(createdComponent.getName()));
assertTrue(createdComponent.getName().contains(createdComponent.getProperties().getRmIdentifier()));
assertEquals(createdComponent.getNodeType(), filePlanComponent.getNodeType()); assertEquals(createdComponent.getNodeType(), filePlanComponent.getNodeType());
} }

View File

@@ -70,12 +70,21 @@ public class RecordCategoryTest extends BaseRMRestTest
* Given that a file plan exists * Given that a file plan exists
* When I ask the API to create a root record category * When I ask the API to create a root record category
* Then it is created as a root record category * Then it is created as a root record category
*
*
* Given that a file plan exists
* When I use the API to create a folder (cm:folder type) into the fileplan
* Then the folder is converted to rma:recordCategory
* (see RM-4572 comments)
*
*/ */
@Test @Test
( (
description = "Create root category" description = "Create root category",
dataProviderClass= TestData.class,
dataProvider = "categoryTypes"
) )
public void createCategoryTest() throws Exception public void createCategoryTest(String nodeType) throws Exception
{ {
String categoryName = "Category name " + getRandomAlphanumeric(); String categoryName = "Category name " + getRandomAlphanumeric();
String categoryTitle = "Category title " + getRandomAlphanumeric(); String categoryTitle = "Category title " + getRandomAlphanumeric();
@@ -83,7 +92,7 @@ public class RecordCategoryTest extends BaseRMRestTest
// Build the record category properties // Build the record category properties
FilePlanComponent recordCategory = FilePlanComponent.builder() FilePlanComponent recordCategory = FilePlanComponent.builder()
.name(categoryName) .name(categoryName)
.nodeType(RECORD_CATEGORY_TYPE) .nodeType(nodeType)
.properties( .properties(
FilePlanComponentProperties.builder() FilePlanComponentProperties.builder()
.title(categoryTitle) .title(categoryTitle)
@@ -109,7 +118,7 @@ public class RecordCategoryTest extends BaseRMRestTest
// Verify the returned file plan component properties // Verify the returned file plan component properties
FilePlanComponentProperties filePlanComponentProperties = filePlanComponent.getProperties(); FilePlanComponentProperties filePlanComponentProperties = filePlanComponent.getProperties();
assertEquals(filePlanComponentProperties.getTitle(), categoryTitle); assertEquals(filePlanComponentProperties.getTitle(), categoryTitle);
assertNotNull(filePlanComponentProperties.getRmIdentifier());
logger.info("Aspects: " + filePlanComponent.getAspectNames()); logger.info("Aspects: " + filePlanComponent.getAspectNames());
} }
@@ -316,6 +325,7 @@ public class RecordCategoryTest extends BaseRMRestTest
// Verify properties // Verify properties
// FIXME: Verify properties // FIXME: Verify properties
assertNotNull(createdComponent.getProperties().getRmIdentifier());
} }
catch (NoSuchElementException e) catch (NoSuchElementException e)
{ {
@@ -336,7 +346,7 @@ public class RecordCategoryTest extends BaseRMRestTest
dataProvider = "childrenNotAllowedForCategory" dataProvider = "childrenNotAllowedForCategory"
) )
@Bug (id="RM-4367") @Bug (id="RM-4367, RM-4572")
public void createTypesNotAllowedInCategory(String nodeType) throws Exception public void createTypesNotAllowedInCategory(String nodeType) throws Exception
{ {
String COMPONENT_NAME = "Component"+getRandomAlphanumeric(); String COMPONENT_NAME = "Component"+getRandomAlphanumeric();

View File

@@ -74,12 +74,21 @@ public class RecordFolderTests extends BaseRMRestTest
* Given that a record category exists * Given that a record category exists
* When I use the API to create a new record folder * When I use the API to create a new record folder
* Then it is created within the record category * Then it is created within the record category
*
* Given that a record category exists
* When I use the API to create a folder (cm:folder type)
* Then the folder is converted to rma:recordFolder within the record category
* (see RM-4572 comments)
*
*/ */
@Test @Test
( (
description = "Create a folder into a record category" description = "Create a folder into a record category.",
dataProviderClass = TestData.class,
dataProvider = "folderTypes"
) )
public void createFolderTest() throws Exception @Bug (id = "RM-4572")
public void createFolderTest(String folderType) throws Exception
{ {
String CATEGORY = CATEGORY_NAME + getRandomAlphanumeric(); String CATEGORY = CATEGORY_NAME + getRandomAlphanumeric();
@@ -88,7 +97,7 @@ public class RecordFolderTests extends BaseRMRestTest
FilePlanComponent recordFolder = FilePlanComponent.builder() FilePlanComponent recordFolder = FilePlanComponent.builder()
.name(FOLDER_NAME) .name(FOLDER_NAME)
.nodeType(RECORD_FOLDER_TYPE) .nodeType(folderType)
.properties(FilePlanComponentProperties.builder() .properties(FilePlanComponentProperties.builder()
.title(FOLDER_TITLE) .title(FOLDER_TITLE)
.build()) .build())
@@ -113,6 +122,7 @@ public class RecordFolderTests extends BaseRMRestTest
// Verify the returned file plan component properties // Verify the returned file plan component properties
FilePlanComponentProperties folderProperties = folder.getProperties(); FilePlanComponentProperties folderProperties = folder.getProperties();
assertEquals(folderProperties.getTitle(), FOLDER_TITLE); assertEquals(folderProperties.getTitle(), FOLDER_TITLE);
assertNotNull(folderProperties.getRmIdentifier());
} }
/** /**

View File

@@ -136,7 +136,7 @@ public class DeclareDocumentAsRecordTests extends BaseRMRestTest
// verify the new name has the form of "<original name> (<record Id>).<original extension>" // verify the new name has the form of "<original name> (<record Id>).<original extension>"
String recordName = filesAfterRename.get(0).onModel().getName(); String recordName = filesAfterRename.get(0).onModel().getName();
assertEquals(recordName, document.getName().replace(".", String.format(" (%s).", record.getProperties().getRecordId()))); assertEquals(recordName, document.getName().replace(".", String.format(" (%s).", record.getProperties().getRmIdentifier())));
// verify the document in collaboration site is now a record, note the file is now renamed hence folder + doc. name concatenation // verify the document in collaboration site is now a record, note the file is now renamed hence folder + doc. name concatenation
// this also verifies the document is still in the initial folder // this also verifies the document is still in the initial folder

View File

@@ -36,7 +36,7 @@ paths:
operationId: getFileplanComponent operationId: getFileplanComponent
parameters: parameters:
- $ref: '#/parameters/fileplanComponentIdWithAliasParam' - $ref: '#/parameters/fileplanComponentIdWithAliasParam'
- $ref: '#/parameters/IGNodeEntryIncludeParam' - $ref: '#/parameters/FilePlanComponentEntryIncludeParam'
- $ref: '#/parameters/relativePathParam' - $ref: '#/parameters/relativePathParam'
- $ref: '#/parameters/fieldsParam' - $ref: '#/parameters/fieldsParam'
produces: produces:
@@ -45,7 +45,7 @@ paths:
'200': '200':
description: Successful response description: Successful response
schema: schema:
$ref: '#/definitions/IGNodeEntry' $ref: '#/definitions/FilePlanComponentEntry'
'400': '400':
description: | description: |
Invalid parameter: **fileplanComponentId** is not a valid format Invalid parameter: **fileplanComponentId** is not a valid format
@@ -86,21 +86,21 @@ paths:
operationId: updateFileplanComponent operationId: updateFileplanComponent
parameters: parameters:
- $ref: '#/parameters/fileplanComponentIdWithAliasParam' - $ref: '#/parameters/fileplanComponentIdWithAliasParam'
- $ref: '#/parameters/IGNodeEntryIncludeParam' - $ref: '#/parameters/FilePlanComponentEntryIncludeParam'
- $ref: '#/parameters/fieldsParam' - $ref: '#/parameters/fieldsParam'
- in: body - in: body
name: nodeBodyUpdate name: nodeBodyUpdate
description: The node information to update. description: The node information to update.
required: true required: true
schema: schema:
$ref: '#/definitions/IGNodeBodyUpdate' $ref: '#/definitions/FilePlanComponentBodyUpdate'
produces: produces:
- application/json - application/json
responses: responses:
'200': '200':
description: Successful response description: Successful response
schema: schema:
$ref: '#/definitions/IGNodeEntry' $ref: '#/definitions/FilePlanComponentEntry'
'400': '400':
description: | description: |
Invalid parameter: the update request is invalid or **fileplanComponentId** is not a valid format or **nodeBody** is invalid Invalid parameter: the update request is invalid or **fileplanComponentId** is not a valid format or **nodeBody** is invalid
@@ -175,7 +175,7 @@ paths:
- $ref: '#/parameters/maxItemsParam' - $ref: '#/parameters/maxItemsParam'
- $ref: '#/parameters/orderByParam' - $ref: '#/parameters/orderByParam'
- $ref: '#/parameters/whereParam' - $ref: '#/parameters/whereParam'
- $ref: '#/parameters/IGNodeEntryIncludeParam' - $ref: '#/parameters/FilePlanComponentEntryIncludeParam'
- $ref: '#/parameters/relativePathParam' - $ref: '#/parameters/relativePathParam'
- $ref: '#/parameters/includeSourceParam' - $ref: '#/parameters/includeSourceParam'
- $ref: '#/parameters/fieldsParam' - $ref: '#/parameters/fieldsParam'
@@ -183,7 +183,7 @@ paths:
'200': '200':
description: Successful response description: Successful response
schema: schema:
$ref: '#/definitions/IGNodeAssociationPaging' $ref: '#/definitions/FilePlanComponentAssociationPaging'
'401': '401':
description: If authentication fails description: If authentication fails
'403': '403':
@@ -229,7 +229,7 @@ paths:
This API method also supports node creation using application/json. This API method also supports node creation using application/json.
You must specify at least a **name** and **nodeType**. You must specify at least a **name** and **nodeType**.
You can create a category like this: You can create a category like this:
```JSON ```JSON
@@ -306,7 +306,7 @@ paths:
} }
``` ```
The **relativePath** specifies the container structure to create relative to the node **nodeId**. Containers in the The **relativePath** specifies the container structure to create relative to the node **nodeId**. Containers in the
**relativePath** that do not exist are created before the node is created. The container type is decided considering **relativePath** that do not exist are created before the node is created. The container type is decided considering
the type of the parent container and the type of the node to be created. the type of the parent container and the type of the node to be created.
You can set properties when creating a new fileplan component: You can set properties when creating a new fileplan component:
@@ -324,7 +324,7 @@ paths:
Any missing aspects are applied automatically. You can set aspects explicitly, if needed, using an **aspectNames** field. Any missing aspects are applied automatically. You can set aspects explicitly, if needed, using an **aspectNames** field.
**Note:** You can create more than one child by **Note:** You can create more than one child by
specifying a list of nodes in the JSON body. For example, the following JSON specifying a list of nodes in the JSON body. For example, the following JSON
body creates two folders inside the specified **nodeId**, if the **nodeId** identifies body creates two folders inside the specified **nodeId**, if the **nodeId** identifies
a folder: a folder:
@@ -341,7 +341,7 @@ paths:
] ]
``` ```
If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example: If you specify a list as input, then a paginated list rather than an entry is returned in the response body. For example:
```JSON ```JSON
{ {
"list": { "list": {
@@ -375,7 +375,7 @@ paths:
description: If true, then a name clash will cause an attempt to auto rename by finding a unique name using an integer suffix. description: If true, then a name clash will cause an attempt to auto rename by finding a unique name using an integer suffix.
required: false required: false
type: boolean type: boolean
- $ref: '#/parameters/IGNodeEntryIncludeParam' - $ref: '#/parameters/FilePlanComponentEntryIncludeParam'
- $ref: '#/parameters/fieldsParam' - $ref: '#/parameters/fieldsParam'
- in: body - in: body
name: nodeBodyCreate name: nodeBodyCreate
@@ -395,7 +395,7 @@ paths:
'201': '201':
description: Successful response description: Successful response
schema: schema:
$ref: '#/definitions/IGNodeEntry' $ref: '#/definitions/FilePlanComponentEntry'
'400': '400':
description: | description: |
Invalid parameter: **fileplanComponentId** is not a valid format or **nodeBodyCreate** is invalid Invalid parameter: **fileplanComponentId** is not a valid format or **nodeBodyCreate** is invalid
@@ -599,11 +599,11 @@ paths:
$ref: '#/definitions/Error' $ref: '#/definitions/Error'
'/records/{recordId}/file': '/records/{recordId}/file':
post: post:
tags: tags:
- records - records
summary: File a record summary: File a record
description: | description: |
Files the record **recordId** in the target record folder. Files the record **recordId** in the target record folder.
You can specify the target record folder by providing its id **targetParentId** You can specify the target record folder by providing its id **targetParentId**
or by providing the id of a parent container **targetParentId** and a relative path **relativePath**. or by providing the id of a parent container **targetParentId** and a relative path **relativePath**.
@@ -613,11 +613,11 @@ paths:
The relativePath is made of record containers and a record folder as the last element. The relativePath is made of record containers and a record folder as the last element.
Containers that are missing from relativePath will be created before filing. Containers that are missing from relativePath will be created before filing.
If the record is already filed, a link to the target record folder is created. If the record is already filed, a link to the target record folder is created.
operationId: fileRecord operationId: fileRecord
parameters: parameters:
- $ref: '#/parameters/recordIdParam' - $ref: '#/parameters/recordIdParam'
- $ref: '#/parameters/IGNodeEntryIncludeParam' - $ref: '#/parameters/FilePlanComponentEntryIncludeParam'
- $ref: '#/parameters/fieldsParam' - $ref: '#/parameters/fieldsParam'
- in: body - in: body
name: nodeBodyFile name: nodeBodyFile
@@ -633,7 +633,7 @@ paths:
'200': '200':
description: Successful response description: Successful response
schema: schema:
$ref: '#/definitions/IGNodeEntry' $ref: '#/definitions/FilePlanComponentEntry'
'400': '400':
description: | description: |
Invalid parameter: **recordIdParam** or **targetParentId** is not a valid format, Invalid parameter: **recordIdParam** or **targetParentId** is not a valid format,
@@ -654,12 +654,12 @@ paths:
$ref: '#/definitions/Error' $ref: '#/definitions/Error'
'/files/{fileId}/declare': '/files/{fileId}/declare':
post: post:
tags: tags:
- files - files
summary: Declare as record summary: Declare as record
description: Declares the file **fileId** in the unfiled record container. description: Declares the file **fileId** in the unfiled record container.
operationId: declareRecord operationId: declareRecord
parameters: parameters:
- name: fileId - name: fileId
in: path in: path
description: The identifier of a non-record file. description: The identifier of a non-record file.
@@ -670,7 +670,7 @@ paths:
description: Flag to indicate whether the record should be hidden from the current parent folder. description: Flag to indicate whether the record should be hidden from the current parent folder.
type: boolean type: boolean
default: false default: false
- $ref: '#/parameters/IGNodeEntryIncludeParam' - $ref: '#/parameters/FilePlanComponentEntryIncludeParam'
- $ref: '#/parameters/fieldsParam' - $ref: '#/parameters/fieldsParam'
consumes: consumes:
- application/json - application/json
@@ -680,7 +680,7 @@ paths:
'200': '200':
description: Successful response description: Successful response
schema: schema:
$ref: '#/definitions/IGNodeEntry' $ref: '#/definitions/FilePlanComponentEntry'
'400': '400':
description: | description: |
Invalid parameter: **fileId** is not a valid format Invalid parameter: **fileId** is not a valid format
@@ -742,7 +742,7 @@ parameters:
information is returned on the node resolved by this path. information is returned on the node resolved by this path.
required: false required: false
type: string type: string
IGNodeEntryIncludeParam: FilePlanComponentEntryIncludeParam:
name: include name: include
in: query in: query
description: | description: |
@@ -854,14 +854,14 @@ parameters:
type: string type: string
format: date-time format: date-time
definitions: definitions:
IGNodeEntry: FilePlanComponentEntry:
type: object type: object
required: required:
- entry - entry
properties: properties:
entry: entry:
$ref: '#/definitions/IGNode' $ref: '#/definitions/FilePlanComponent'
IGNode: FilePlanComponent:
type: object type: object
required: required:
- id - id
@@ -932,7 +932,7 @@ definitions:
type: string type: string
path: path:
$ref: '#/definitions/PathInfo' $ref: '#/definitions/PathInfo'
IGNodeAssociationPaging: FilePlanComponentAssociationPaging:
type: object type: object
properties: properties:
list: list:
@@ -943,24 +943,24 @@ definitions:
entries: entries:
type: array type: array
items: items:
$ref: '#/definitions/IGNodeChildAssociationEntry' $ref: '#/definitions/FilePlanComponentChildAssociationEntry'
source: source:
$ref: '#/definitions/IGNode' $ref: '#/definitions/FilePlanComponent'
IGNodeChildAssociationEntry: FilePlanComponentChildAssociationEntry:
type: object type: object
required: required:
- entry - entry
properties: properties:
entry: entry:
$ref: '#/definitions/IGNodeChildAssociation' $ref: '#/definitions/FilePlanComponentChildAssociation'
IGNodeChildAssociation: FilePlanComponentChildAssociation:
allOf: allOf:
- $ref: '#/definitions/IGNode' - $ref: '#/definitions/FilePlanComponent'
- type: object - type: object
properties: properties:
association: association:
$ref: '#/definitions/ChildAssociationInfo' $ref: '#/definitions/ChildAssociationInfo'
IGNodeBodyUpdate: FilePlanComponentBodyUpdate:
type: object type: object
properties: properties:
name: name: