Eu tenho um array como mostrado abaixo que é uma saída da condição do filtro. Ele tem campos como documentItemName1,documentItemName2,documentItemName3 no mínimo que pode ter e no máximo 3.
É como se cada contentVersion documentItemToSigner não tivesse nenhum objeto com base no número de documentItemName{n} presente nele
carga útil:
[
{
"contentVersion": "068DQ000000lK0iYAE",
"documentName": "ESRA with Exhibit_A",
"documentItemName1": "Signature001",
"typeCd1": "Signature",
"typeCd2": null,
"typeCd3": null,
"subtypeCd1": "CAPTURE",
"subtypeCd2": null,
"subtypeCd3": null
},
{
"contentVersion": "068DQ000000kK0OYAU",
"documentName": "Agreement 1",
"documentItemName1": "Signature001",
"documentItemName2": "Signature002",
"typeCd1": "Signature",
"typeCd2": "Signature",
"typeCd3": null,
"subtypeCd1": "CAPTURE",
"subtypeCd2": "LABEL",
"subtypeCd3": null
},
{
"contentVersion": "068DQ000000lK0OYAU",
"documentName": "Agreement 2",
"documentItemName1": "Signature001",
"documentItemName2": "Signature002",
"documentItemName3": "Signature003",
"typeCd1": "Signature",
"typeCd2": "Signature",
"typeCd3": "Signature",
"subtypeCd1": "CAPTURE",
"subtypeCd2": "CAPTURE",
"subtypeCd3": "CAPTURE"
}
]
Tentei o script abaixo, mas não tenho certeza de como criar objetos com base no número documentItemName{no} nele.
Por exemplo: Do payload estou filtrando para este contentVersion = "068DQ000000lK0OYAU" que tem documentItemName1,documentItemName2,documentItemName3. Então, o array documentItemToSigner deve ter 3 objetos que mapeiam assim
"documentItemToSigner": [{
documentItemName: documentItemName1,
"typeCd": typeCd1,
"subtypeCd": subtypeCd1
},
{
documentItemName: documentItemName2,
"typeCd": typeCd2,
"subtypeCd": subtypeCd3
},
{
documentItemName: documentItemName3,
"typeCd": typeCd3,
"subtypeCd": subtypeCd3
}]
Por ex2: Da carga útil, se eu estiver filtrando para este contentVersion = "068DQ000000lK0iYAE" que tem apenas documentItemName1. Então, o array documentItemToSigner deve ter 1 objeto que mapeia assim
"documentItemToSigner": [{
documentItemName: documentItemName1,
"typeCd": typeCd1,
"subtypeCd": subtypeCd1
}]
"documentItemToSigner": (payload filter ((g, index) -> g.contentVersion == "068DQ000000lK0OYAU")) map ((item, index) -> {
"typeCd": item."typeCd{n}",
"subtypeCd": item."subtypeCd{n}",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": item."documentItemName{n}"
})
saída esperada:
{
"documentItemToSigner": [
{
"typeCd": "Signature",
"subtypeCd": "CAPTURE",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": "Signature001"
},
{
"typeCd": "Signature",
"subtypeCd": "LABEL",
"documentItemName": "Signature002",
"eSignLiveExtension": {
"extractInd": false
}
},
{
"typeCd": "Signature",
"subtypeCd": "CAPTURE",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": "Signature003"
}
]
}