diff --git a/source/java/org/alfresco/rest/api/model/NodeTarget.java b/source/java/org/alfresco/rest/api/model/NodeTarget.java new file mode 100644 index 0000000000..afe2c2cca9 --- /dev/null +++ b/source/java/org/alfresco/rest/api/model/NodeTarget.java @@ -0,0 +1,47 @@ +package org.alfresco.rest.api.model; + +import org.alfresco.service.cmr.repository.NodeRef; + +/** + * A target object. + * @author Gethin James + */ +public class NodeTarget extends Target +{ + String targetParentId; + String name; + + public NodeTarget() + { + } + + public String getTargetParentId() + { + return targetParentId; + } + + public void setTargetParentId(String targetParentId) + { + this.targetParentId = targetParentId; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + @Override + public String toString() + { + final StringBuilder sb = new StringBuilder("NodeTarget{"); + sb.append("targetParentId=").append(targetParentId); + sb.append(", name='").append(name).append('\''); + sb.append('}'); + return sb.toString(); + } +} diff --git a/source/java/org/alfresco/rest/api/nodes/NodesEntityResource.java b/source/java/org/alfresco/rest/api/nodes/NodesEntityResource.java index 5f6784bb74..97d4088ef2 100644 --- a/source/java/org/alfresco/rest/api/nodes/NodesEntityResource.java +++ b/source/java/org/alfresco/rest/api/nodes/NodesEntityResource.java @@ -20,6 +20,8 @@ package org.alfresco.rest.api.nodes; import org.alfresco.rest.api.Nodes; import org.alfresco.rest.api.model.Node; +import org.alfresco.rest.api.model.NodeTarget; +import org.alfresco.rest.framework.Action; import org.alfresco.rest.framework.BinaryProperties; import org.alfresco.rest.framework.WebApiDescription; import org.alfresco.rest.framework.WebApiParam; @@ -120,4 +122,20 @@ public class NodesEntityResource implements { nodes.deleteNode(nodeId); } + + @Action("copy") + @WebApiDescription(title = "Copy Node", description="Copy one or more nodes (files or folders) to a new target folder, with option to rename.") + public Node copyById(String nodeId, NodeTarget target, Parameters parameters) + { + return nodes.copyNode(nodeId, target.getTargetParentId(), target.getName(), parameters); + } + + @Action("move") + @WebApiDescription(title = "Move Node", description="Moves one or more nodes (files or folders) to a new target folder, with option to rename.") + public Node moveById(String nodeId, NodeTarget target, Parameters parameters) + { + return nodes.moveNode(nodeId, target.getTargetParentId(), target.getName(), parameters); + } + } +