You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by Nitin Nizhawan <nn...@adobe.com> on 2016/08/02 14:41:58 UTC
[Content Manipulation][SlingPostServlet] Performing Multiple
operations using Sling Post Servlet
Hi All,
I have a requirement where I need to remove certain properties of a given node and also add some new child nodes to the same node, e.g. I need to transform node as in [1] to [2]. I am planning to use content manipulation operations of sling post servlet [3].
For adding child nodes, import operation seems to work but for removing properties it seems I need to use default modify operation with "@Delete" suffix as the "@Delete" suffix does not work when specified within content JSON of import operation.
Also, I would not like to touch properties which I do not intend to modify. E.g. in [1] I would not like to write to prop1 and prop2, so I do not have option to rewrite entire node.
So, I need to use two post requests to perform this complete transformation.
e.g.
/path/to/node
1. {"prop3@Delete":""}
2. {":operation":"import", ":contentType":"json",":content":"{childnode1:{cp1:'',cp2:''},childnode2:{cp3:'',cp4:''}}",":replace":true}
This seems to work but this does not happen atomically i.e. ajax in #1 may succeed and #2 may fail, which would lead to an inconsistent node structure for me. So, is there a way to perform both these operations in one sling post request?
[1]
+ node
- prop1
- prop2
- prop3
[2]
+ node
- prop1
- prop2
+ childnode1
- cp1
- cp2
+ childnode2
-cp3
-cp4
[3] https://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html
Thanks
Nitin