From 66e817f2d24e5bf4827767c92b579e56144a89e7 Mon Sep 17 00:00:00 2001 From: Nicolas Barithel Date: Thu, 26 Dec 2024 08:52:17 +0100 Subject: [PATCH] support aspectNames with multipart upload --- .../org/alfresco/rest/api/impl/NodesImpl.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/remote-api/src/main/java/org/alfresco/rest/api/impl/NodesImpl.java b/remote-api/src/main/java/org/alfresco/rest/api/impl/NodesImpl.java index db1d3c6670a..0aa7c697670 100644 --- a/remote-api/src/main/java/org/alfresco/rest/api/impl/NodesImpl.java +++ b/remote-api/src/main/java/org/alfresco/rest/api/impl/NodesImpl.java @@ -2995,6 +2995,7 @@ public Node upload(String parentFolderNodeId, FormData formData, Parameters para Boolean versionMajor = null; String versionComment = null; String relativePath = null; + String aspectNames = null; String renditionNames = null; boolean versioningEnabled = true; @@ -3050,6 +3051,10 @@ public Node upload(String parentFolderNodeId, FormData formData, Parameters para relativePath = getStringOrNull(field.getValue()); break; + case "aspectnames": + aspectNames = getStringOrNull(field.getValue()); + break; + case "renditions": renditionNames = getStringOrNull(field.getValue()); break; @@ -3101,8 +3106,10 @@ public Node upload(String parentFolderNodeId, FormData formData, Parameters para // if requested, make (get or create) path parentNodeRef = getOrCreatePath(parentNodeRef, relativePath); final QName assocTypeQName = ContentModel.ASSOC_CONTAINS; - final Set renditions = getRequestedRenditions(renditionNames); + final Set renditions = getRequestedNames(renditionNames); + final Set qnameStrAspects = getRequestedNames(aspectNames) + validateAspects(qnameStrAspects, EXCLUDED_NS, EXCLUDED_ASPECTS); validateProperties(qnameStrProps, EXCLUDED_NS, Arrays.asList()); try { @@ -3149,7 +3156,9 @@ else if (overwrite && nodeService.hasAspect(existingFile, ContentModel.ASPECT_VE // Create a new file. NodeRef nodeRef = createNewFile(parentNodeRef, fileName, nodeTypeQName, content, properties, assocTypeQName, parameters, versionMajor, versionComment); - + + addCustomAspects(nodeRef, qnameStrAspects, EXCLUDED_ASPECTS); + // Create the response final Node fileNode = getFolderOrDocumentFullInfo(nodeRef, parentNodeRef, nodeTypeQName, parameters); @@ -3235,25 +3244,25 @@ private void checkRenditionNames(Set renditionNames) } } - static Set getRequestedRenditions(String renditionsParam) + static Set getRequestedNames(String namesParam) { - if (renditionsParam == null) + if (namesParam == null) { return null; } - String[] renditionNames = renditionsParam.split(","); + String[] namesArray = namesParam.split(","); - Set renditions = new LinkedHashSet<>(renditionNames.length); - for (String name : renditionNames) + Set names = new LinkedHashSet<>(namesArray.length); + for (String name : namesArray) { name = name.trim(); if (!name.isEmpty()) { - renditions.add(name.trim()); + names.add(name.trim()); } } - return renditions; + return names; } private void requestRenditions(Set renditionNames, Node fileNode)