elixFormsAPI - update syntax and add prepare global function

This commit is contained in:
2026-02-23 10:28:54 +01:00
parent fd3d0da848
commit 98a6019e32
51 changed files with 1716 additions and 3379 deletions
@@ -15,177 +15,94 @@ http:
value: "8463"
body:
type: json
data: "{\r
\ \"userDocument\": \"{{elixBase64EftlDocument}}\", // see the pre-request script\r
\ \"userContext\": {\r
\ \"lang\": \"IT\",\r
\ \"docs\": [\r
\ {\r
\ \"name\": \"doc1\",\r
\ \"quantity\": 3,\r
\ \"price\": 123.3\r
\ },\r
\ {\r
\ \"name\": \"doc2\",\r
\ \"quantity\": 5,\r
\ \"price\": 213.3\r
\ },\r
\ {\r
\ \"name\": \"doc3\",\r
\ \"quantity\": 10,\r
\ \"price\": 321.3\r
\ }\r
\ ],\r
\ \"docsAsEntities\": [\r
\ {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc1\",\r
\ \"quantity\": 3,\r
\ \"price\": 123.3\r
\ }\r
\ },\r
\ {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc2\",\r
\ \"quantity\": 5,\r
\ \"price\": 213.3\r
\ }\r
\ },\r
\ {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc3\",\r
\ \"quantity\": 10,\r
\ \"price\": 321.3\r
\ }\r
\ }\r
\ ],\r
\ \"singleEntity\": {\r
\ \"eftlEntityType\": \"com.anthesi.elixforms.api.eftl.model.mock.EftlDoc\",\r
\ \"eftlEntity\": {\r
\ \"name\": \"doc1\",\r
\ \"quantity\": 3,\r
\ \"price\": 123.3\r
\ }\r
\ },\r
\ \"simpleList\": [\r
\ \"s1\",\r
\ \"s2\",\r
\ \"s3\"\r
\ ],\r
\ \"docsSize\": 3\r
\ }\r
}"
data: |-
{
"userDocument": "{{elixBase64EftlDocument}}", // see the pre-request script
"userContext": {
"lang": "IT",
"docs": [
{
"name": "doc1",
"quantity": 3,
"price": 123.3
},
{
"name": "doc2",
"quantity": 5,
"price": 213.3
},
{
"name": "doc3",
"quantity": 10,
"price": 321.3
}
],
"docsAsEntities": [
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc1",
"quantity": 3,
"price": 123.3
}
},
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc2",
"quantity": 5,
"price": 213.3
}
},
{
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc3",
"quantity": 10,
"price": 321.3
}
}
],
"singleEntity": {
"eftlEntityType": "com.anthesi.elixforms.api.eftl.model.mock.EftlDoc",
"eftlEntity": {
"name": "doc1",
"quantity": 3,
"price": 123.3
}
},
"simpleList": [
"s1",
"s2",
"s3"
],
"docsSize": 3
}
}
auth: inherit
runtime:
scripts:
- type: before-request
code: "// Copy-pasta your EFTL document below inside the template literals (`)\r
code: |-
const { prepareEftlDocument } = require("./elixFormsJs.js")
// Copy-pasta your EFTL document below inside the template literals (`)
prepareEftlDocument(String.raw`
[EFTL][HEADER name="trimDocument" value="true" type="boolean" /]
[VAR name="tipologiaCodice" type="string"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR]
[VAR name="isEconomico" type="boolean"][% isEconomico = true; %][/VAR]
[VAR name="tipologieNonEconomico" type="iterable"][SPLIT regex=";"][TAG]GETVALUEBYTAG,TIPOLOGIE_NON_ECONOMICO,REQUEST,IUQOID[/TAG][/SPLIT][/VAR]
var eftlDocumentToBeProcessed = `\r
[IF]
[CONDITION]
[CONTAINS varname="tipologieNonEconomico"][VALUE_OF varname="tipologiaCodice" /][/CONTAINS]
[/CONDITION]
[THEN][% isEconomico = false; %][/THEN]
[/IF]
[EFTL][HEADER name=\"trimDocument\" value=\"true\" type=\"boolean\" /]\r
[VAR name=\"tipologiaCodice\" type=\"string\"][TAG]GETVALUEBYTAG,TIPOLOGIA_CODICE,REQUEST,IUQOID[/TAG][/VAR]\r
[VAR name=\"isEconomico\" type=\"boolean\"][% isEconomico = true; %][/VAR]\r
[VAR name=\"tipologieNonEconomico\" type=\"iterable\"][SPLIT regex=\";\"][TAG]GETVALUEBYTAG,TIPOLOGIE_NON_ECONOMICO,REQUEST,IUQOID[/TAG][/SPLIT][/VAR]\r
\r
[IF]\r
\ [CONDITION]\r
\ [CONTAINS varname=\"tipologieNonEconomico\"][VALUE_OF varname=\"tipologiaCodice\" /][/CONTAINS]\r
\ [/CONDITION]\r
\ [THEN][% isEconomico = false; %][/THEN]\r
[/IF]\r
\r
[%= isEconomico %]\r
[/EFTL]\r
`;\r
\r
var base64EncodedDocument = btoa(eftlDocumentToBeProcessed);\r
\r
bru.setVar(\"elixBase64EftlDocument\", base64EncodedDocument);"
[%= isEconomico %]
[/EFTL]
`);
settings:
encodeUrl: true