-
Type:
Story
-
Status: Closed
-
Priority:
Major
-
Resolution: Completed
-
Affects Version/s: 6.2.0 CE M5
-
Fix Version/s: 6.2.0 CE M5
-
Component/s: Portal Services, Portal Services > Legacy
-
Labels:None
-
Story Points:3
-
Git Pull Request:
Due to demand from the UI team, JSON WebService Invoker syntax will be enhanced to support manipulation of inner properties. The following requirements have to be implemented:
add variable to inner object
{"$p = /foo/get-foo-page" : { "$XXX1 = /foo/hello-world" : { "@userId" : "$p.page", "worldName" : "galaxy" }, "data.$XXX2 = /foo/hello-world" : { "@userId" : "$p.page", "worldName" : "star"} } }}
In this snippet we added variable XXX1 to the root variable p - this feature already existed. The new functionality is that now we can also add a variable to an inner property: data.XXX2, in the very same way how it is added to the root.
This snippet should work with and without variable XXX1. Also, JSONWS Invoker should respect the @JSON serialization hints of the inner object (here: 'data').
add variable to inner list, with constant value
{"$p = /foo/get-foo-page" : { "$XXX1 = /foo/hello-world" : { "@userId" : "$p.page", "worldName" : "galaxy" }, "data.$XXX2 = /foo/hello-world" : { "@userId" : "$p.page", "worldName" : "star" }, "list.$XXX3 = /foo/hello-world" : { "@userId" : "$p.page", "worldName" : "pulsar" } }}
Variable XXX3 is added to the each element of the inner list. Assigned value is however a constant and equal for each element of the list.
add variable to inner list, referencing list element value
{"$p = /foo/get-foo-page" : { "$XXX1 = /foo/hello-world" : { "@userId" : "$p.page", "worldName" : "galaxy" }, "data.$XXX2 = /foo/hello-world" : { "@userId" : "$p.page", "worldName" : "star" }, "list.$XXX3 = /foo/hello-world" : { "@userId" : "$p.list.id", "worldName" : "pulsar" } }}
Everything is the same as above, except the value for userId - this time we populate it with id value of current list element.