...
Implement the functionality to support multiple nodes removal using list-node xpath.
REST layer (incl openapi update)
- uri:
- (CPS) DELETE /dataspaces/{dataspaceName}/anchor/{anchorName}/list-node
- (NCMP) DELETE /cm-handle/{cmHandle}/list-node
...
- xpath - list node xpath (same as list-node element but with no key attribute definition)
i.e. /root/parent/list-node
...
REST layer (DataRestController.java)
- Create new method deleteListNodeElements(final String dataspaceName, final String anchorName, final String listNodeXpath)
- Call cpsDataService.deleteListNodeData()
- return 200
REST layer (cpsData.yml)
- Add patch
REST layer (DataRestControllerSpec.groovy)
- Ensure appropriate REST responses on invocation
Service layer (CpsDataService.java)
- Create new abstract method deleteNodeTree()
Service layer (CpsDataServiceImpl.java)
- Override abstract method deleteNodeTree()
- Validate the xpath of the list-nodes String
- call cpsDataPersistenceService.deleteListDataNodes()
- notificationService.processDataUpdatedEvent(dataspaceName, anchorName)
Service layer (CpsDataServiceImplSpec.groovy)
- delete list-node data fragment under existing node
- delete list-node data fragment under non existing node
Persistence layer (CpsDataPersistenceService.java)
- Create new abstract method deleteListDataNodes()
Persistence layer (CpsDataPersistenceServiceImpl.java)
- Override abstract method deleteListDataNodes()
- Use method getFragmentByXpath() to get the parentEntity of the List-Node
- Use parentEntity and a method parameter String listNodeXpath as arguments for method removeListNodeDescendants()
Persistence layer (CpsDataPersistenceServiceSpec.groovy)
- Delete list node content successfully
- Error thrown when listNodeXpath does not exist
Service layer
- validate xpath referenced list-node element (?)
Persistence layer
...
Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
...