diff --git a/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/Property.java b/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/Property.java index fdf9459bec..be5351d638 100644 --- a/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/Property.java +++ b/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/Property.java @@ -406,7 +406,7 @@ public Builder imports(String importStatements) { if (this.imports == null) { this.imports = new HashMap<>(); } - String[] importList = importStatements.split(";"); + String[] importList = importStatements.split(","); for (String importStatement : importList) { if (importStatement.trim().isEmpty()) { continue; diff --git a/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/node/NewConnectionBuilder.java b/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/node/NewConnectionBuilder.java index 02562a28d9..ac7b8a50c5 100644 --- a/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/node/NewConnectionBuilder.java +++ b/flow-model-generator/modules/flow-model-generator-core/src/main/java/io/ballerina/flowmodelgenerator/core/model/node/NewConnectionBuilder.java @@ -21,14 +21,19 @@ import io.ballerina.compiler.api.SemanticModel; import io.ballerina.compiler.syntax.tree.SyntaxKind; import io.ballerina.flowmodelgenerator.core.model.Codedata; +import io.ballerina.flowmodelgenerator.core.model.FormBuilder; +import io.ballerina.flowmodelgenerator.core.model.NodeBuilder; import io.ballerina.flowmodelgenerator.core.model.NodeKind; import io.ballerina.flowmodelgenerator.core.model.Property; import io.ballerina.flowmodelgenerator.core.model.SourceBuilder; +import io.ballerina.flowmodelgenerator.core.utils.FlowNodeUtil; +import io.ballerina.flowmodelgenerator.core.utils.ParamUtils; import io.ballerina.modelgenerator.commons.CommonUtils; import io.ballerina.modelgenerator.commons.FunctionData; import io.ballerina.modelgenerator.commons.FunctionDataBuilder; import io.ballerina.modelgenerator.commons.ModuleInfo; import io.ballerina.modelgenerator.commons.PackageUtil; +import io.ballerina.modelgenerator.commons.ParameterData; import io.ballerina.projects.Module; import io.ballerina.projects.Project; import org.ballerinalang.langserver.commons.workspace.WorkspaceManager; @@ -180,6 +185,67 @@ public void setConcreteTemplateData(TemplateContext context) { .checkError(true, CHECK_ERROR_DOC, false); } + protected void setParameterProperties(FunctionData function) { + boolean hasOnlyRestParams = function.parameters().size() == 1; + + for (ParameterData paramResult : function.parameters().values()) { + if (paramResult.kind() == ParameterData.Kind.PARAM_FOR_TYPE_INFER) { + buildInferredTypeProperty(this, paramResult, null); + continue; + } + + if (paramResult.kind().equals(ParameterData.Kind.INCLUDED_RECORD)) { + continue; + } + + String unescapedParamName = ParamUtils.removeLeadingSingleQuote(paramResult.name()); + Property.Builder> customPropBuilder = properties().custom(); + String label = paramResult.label(); + customPropBuilder + .metadata() + .label(label == null || label.isEmpty() ? unescapedParamName : label) + .description(paramResult.description()) + .stepOut() + .codedata() + .kind(paramResult.kind().name()) + .originalName(paramResult.name()) + .stepOut() + .placeholder(paramResult.placeholder()) + .defaultValue(paramResult.defaultValue()) + .typeConstraint(paramResult.type()) + .typeMembers(paramResult.typeMembers()) + .editable() + .defaultable(paramResult.optional()); + + switch (paramResult.kind()) { + case INCLUDED_RECORD_REST -> { + if (hasOnlyRestParams) { + customPropBuilder.defaultable(false); + } + unescapedParamName = "additionalValues"; + customPropBuilder.type(Property.ValueType.MAPPING_EXPRESSION_SET); + } + case REST_PARAMETER -> { + if (hasOnlyRestParams) { + customPropBuilder.defaultable(false); + } + customPropBuilder.type(Property.ValueType.EXPRESSION_SET); + } + default -> { + if (paramResult.type() instanceof List) { + customPropBuilder.type(Property.ValueType.SINGLE_SELECT); + } else { + customPropBuilder.type(Property.ValueType.EXPRESSION); + } + } + } + + customPropBuilder + .stepOut() + .addProperty(FlowNodeUtil.getPropertyKey(unescapedParamName)); + } + } + @Override protected NodeKind getFunctionNodeKind() { return NodeKind.NEW_CONNECTION; diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json index a32be7f1b8..c350e882b4 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json @@ -85,9 +85,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{token: \"\"}" }, "httpVersion": { @@ -115,9 +112,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "\"2.0\"" }, "http1Settings": { @@ -172,9 +166,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "timeout": { @@ -256,9 +247,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "cache": { @@ -286,9 +274,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "compression": { @@ -316,9 +301,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "\"AUTO\"" }, "circuitBreaker": { @@ -346,9 +328,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "retryConfig": { @@ -376,9 +355,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "responseLimits": { @@ -406,9 +382,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "secureSocket": { @@ -436,9 +409,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "proxy": { @@ -466,9 +436,6 @@ "selected": false } ], - "imports": { - "http": "ballerina/http" - }, "defaultValue": "{}" }, "validation": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mssql.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mssql.json index 5561025dca..4b57daa725 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mssql.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mssql.json @@ -282,9 +282,6 @@ "selected": false } ], - "imports": { - "sql": "ballerina/sql" - }, "defaultValue": "()" }, "type": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mysql.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mysql.json index 0589ebd6a4..1640ab3c80 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mysql.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-mysql.json @@ -256,9 +256,6 @@ "selected": false } ], - "imports": { - "sql": "ballerina/sql" - }, "defaultValue": "()" }, "type": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-oracledb.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-oracledb.json index 3ce0804eb9..7599d002c2 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-oracledb.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-oracledb.json @@ -255,9 +255,6 @@ "selected": false } ], - "imports": { - "sql": "ballerina/sql" - }, "defaultValue": "()" }, "type": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-postgresql.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-postgresql.json index 7058abc180..c37e1452a3 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-postgresql.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-postgresql.json @@ -255,9 +255,6 @@ "selected": false } ], - "imports": { - "sql": "ballerina/sql" - }, "defaultValue": "()" }, "type": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json index b41aa8f057..fd549e1189 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json @@ -171,9 +171,6 @@ "selected": false } ], - "imports": { - "sql": "ballerina/sql" - }, "defaultValue": "()" }, "type": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_local_connection.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_local_connection.json new file mode 100644 index 0000000000..22b51250c5 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_local_connection.json @@ -0,0 +1,282 @@ +{ + "source": "local_connector/main.bal", + "position": { + "line": 14, + "offset": 0 + }, + "description": "Sample diagram node", + "codedata": { + "node": "NEW_CONNECTION", + "org": "nipunaf", + "module": "mod", + "packageName": "new_connection1", + "object": "Client", + "symbol": "init", + "version": "0.1.0", + "isGenerated": true + }, + "output": { + "id": "31", + "metadata": { + "label": "New Connection", + "description": "", + "icon": "https://bcentral-packageicons.azureedge.net/images/nipunaf_new_connection1_0.1.0.png" + }, + "codedata": { + "node": "NEW_CONNECTION", + "org": "nipunaf", + "module": "mod", + "packageName": "new_connection1", + "object": "Client", + "symbol": "init", + "version": "0.1.0", + "isNew": true, + "isGenerated": true + }, + "returning": false, + "properties": { + "serviceUrl": { + "metadata": { + "label": "Service Url" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string", + "placeholder": "\"\"", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "DEFAULTABLE", + "originalName": "serviceUrl" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "BASIC_TYPE", + "selected": false + } + ], + "defaultValue": "\"\"" + }, + "allowHeaders": { + "metadata": { + "label": "Allow Headers", + "description": "The array of allowed headers by the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowHeaders" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "allowMethods": { + "metadata": { + "label": "Allow Methods", + "description": "The array of allowed methods by the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowMethods" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "allowOrigins": { + "metadata": { + "label": "Allow Origins", + "description": "The array of origins with which the response is shared by the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowOrigins" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "exposeHeaders": { + "metadata": { + "label": "Expose Headers", + "description": "The allowlisted headers, which clients are allowed to access" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "exposeHeaders" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "allowCredentials": { + "metadata": { + "label": "Allow Credentials", + "description": "Specifies whether credentials are required to access the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "boolean", + "placeholder": "false", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowCredentials" + }, + "typeMembers": [ + { + "type": "boolean", + "packageInfo": "", + "packageName": "", + "kind": "BASIC_TYPE", + "selected": false + } + ], + "defaultValue": "false" + }, + "maxAge": { + "metadata": { + "label": "Max Age", + "description": "The maximum duration to cache the preflight from client side" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "decimal", + "placeholder": "0.0d", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "maxAge" + }, + "typeMembers": [ + { + "type": "decimal", + "packageInfo": "", + "packageName": "", + "kind": "BASIC_TYPE", + "selected": false + } + ], + "defaultValue": "0.0d" + }, + "type": { + "metadata": { + "label": "Result Type", + "description": "Type of the variable" + }, + "valueType": "TYPE", + "value": "mod:Client", + "placeholder": "var", + "optional": false, + "editable": false, + "advanced": false, + "hidden": true, + "codedata": {}, + "imports": { + "mod": "nipunaf/new_connection1.mod" + } + }, + "variable": { + "metadata": { + "label": "Connection Name", + "description": "Name of the connection" + }, + "valueType": "IDENTIFIER", + "value": "modClient", + "optional": false, + "editable": true, + "advanced": false, + "hidden": false + }, + "scope": { + "metadata": { + "label": "Connection Scope", + "description": "Scope of the connection, Global or Local" + }, + "valueType": "ENUM", + "value": "Global", + "optional": false, + "editable": true, + "advanced": true, + "hidden": true + }, + "checkError": { + "metadata": { + "label": "Check Error", + "description": "Terminate on error" + }, + "valueType": "FLAG", + "value": true, + "optional": false, + "editable": false, + "advanced": true, + "hidden": true + } + }, + "flags": 0 + } +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/Ballerina.toml b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/Ballerina.toml new file mode 100644 index 0000000000..7f8ca10c3e --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/Ballerina.toml @@ -0,0 +1,8 @@ +[package] +org = "nipunaf" +name = "new_connection1" +version = "0.1.0" +distribution = "2201.12.10" + +[build-options] +observabilityIncluded = true diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/connections.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/connections.bal new file mode 100644 index 0000000000..4c6216f04e --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/connections.bal @@ -0,0 +1,3 @@ +import ballerinax/snowflake; + +snowflake:Client snowflakeCl = check new ("", "", ""); diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/data_mappings.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/data_mappings.bal new file mode 100644 index 0000000000..c497d9a069 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/data_mappings.bal @@ -0,0 +1,16 @@ + +function transform(Person person, Admission admission) returns Employee => { + name: person.name, + empId: admission.empId, + email: person.email, + location: { + city: person.address.city, + country: person.address.country + } +}; + +public function processData(string 'order, int 'type, string 'user_name, + float 'price, boolean 'is\-valid) returns string { + string result = string `${'order} -> ${'price}`; + return result; +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/main.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/main.bal new file mode 100644 index 0000000000..599a2fe4c6 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/main.bal @@ -0,0 +1,45 @@ +import ballerina/http; + +http:Client httpClient = check new ("http://localhost:9090"); + +public function main() { + int x = 32; + while x < 50 { + if (x % 2 == 0) { + int y = 12; + } else { + string z = "hello"; + do { + if z.length() == x { + Address address = {houseNo: "10", line1: "foo", line2: "bar", city: "Colombo", country: "Sri Lanka"}; + + } else { + fail error("error"); + } + } on fail { + break; + } + } + x += 2; + } +} + +function fn(int x) returns int { + return x + 1; +} + +http:Client httpClientResult = check new ("http://localhost:9091"); + +final Address[] addresses = []; +final Address var1 = {country: "", city: "", houseNo: "", line2: "", line1: ""}; + +function customFn(Address address, Person Person) returns Location { + return { + country: "", + city: "" + }; +}; + +function customFnWithImportedType(http:ClientConfiguration config, Address address) returns http:HttpServiceConfig { + return {}; +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/modules/mod/client.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/modules/mod/client.bal new file mode 100644 index 0000000000..24936f1965 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/modules/mod/client.bal @@ -0,0 +1,13 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina WSDL tool. + +import ballerina/data.xmldata; +import ballerina/http; + +public isolated client class Client { + final http:Client clientEp; + + public isolated function init(string serviceUrl = "service/url", *http:CorsConfig config) returns error? { + self.clientEp = check new (""); + } +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/modules/mod/types.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/modules/mod/types.bal new file mode 100644 index 0000000000..2a0518326e --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/modules/mod/types.bal @@ -0,0 +1,10 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina WSDL tool. + +import ballerina/data.xmldata; + +@xmldata:Namespace {uri: "http://api.foo.com/"} +public type Foo record {| + @xmldata:Sequence {minOccurs: 1, maxOccurs: 1} + int sequenceGroup; +|}; diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/service.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/service.bal new file mode 100644 index 0000000000..eaa9c681ba --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/service.bal @@ -0,0 +1,24 @@ +import ballerina/http; + +service /p1 on new http:Listener(9091) { + resource function get greeting(Input paramInput) returns json|http:InternalServerError { + do { + Input localInput = {name: "John", age: 30}; + + } on fail error e { + return http:INTERNAL_SERVER_ERROR; + } + } +} + +type Input record { + string name; + int age; +}; + +type Output record { + string name; + int age; +}; + +Input moduleInput = {name: "John", age: 30}; diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/types.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/types.bal new file mode 100644 index 0000000000..3cea78d1db --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/source/local_connector/types.bal @@ -0,0 +1,32 @@ +type Location record {| + string city; + string country; +|}; + +type Address record {| + string houseNo; + string line1; + string line2; + string city; + string country; +|}; + +type Employee record {| + string name; + string empId; + string email; + Location location; +|}; + +type Person record {| + string name; + string email; + Address address; +|}; + +type Admission record { + string empId; + string admissionDate; +}; + +type Persons Person[]; diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/openapi_client_gen/config/config1.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/openapi_client_gen/config/config1.json index cef30749b1..0e6e87bd77 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/openapi_client_gen/config/config1.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/openapi_client_gen/config/config1.json @@ -62,7 +62,6 @@ "selected": false } ], - "imports": {}, "defaultValue": "{}" }, "serviceUrl": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/new_connection11.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/new_connection11.json new file mode 100644 index 0000000000..16922da02c --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/new_connection11.json @@ -0,0 +1,298 @@ +{ + "source": "new_connection8/main.bal", + "description": "Sample diagram node", + "diagram": { + "id": "31", + "metadata": { + "label": "New Connection", + "description": "", + "icon": "https://bcentral-packageicons.azureedge.net/images/nipunaf_new_connection1_0.1.0.png" + }, + "codedata": { + "node": "NEW_CONNECTION", + "org": "nipunaf", + "module": "grs", + "packageName": "new_connection1", + "object": "Client", + "symbol": "init", + "version": "0.1.0", + "isNew": true, + "isGenerated": true + }, + "returning": false, + "properties": { + "serviceUrl": { + "metadata": { + "label": "Service Url" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string", + "placeholder": "\"\"", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "DEFAULTABLE", + "originalName": "serviceUrl" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "BASIC_TYPE", + "selected": false + } + ], + "defaultValue": "\"\"" + }, + "allowHeaders": { + "metadata": { + "label": "Allow Headers", + "description": "The array of allowed headers by the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowHeaders" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "allowMethods": { + "metadata": { + "label": "Allow Methods", + "description": "The array of allowed methods by the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowMethods" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "allowOrigins": { + "metadata": { + "label": "Allow Origins", + "description": "The array of origins with which the response is shared by the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowOrigins" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "exposeHeaders": { + "metadata": { + "label": "Expose Headers", + "description": "The allowlisted headers, which clients are allowed to access" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string[]", + "placeholder": "[]", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "exposeHeaders" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "packageName": "", + "kind": "ARRAY_TYPE", + "selected": false + } + ], + "defaultValue": "[]" + }, + "allowCredentials": { + "metadata": { + "label": "Allow Credentials", + "description": "Specifies whether credentials are required to access the service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "boolean", + "placeholder": "false", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "allowCredentials" + }, + "typeMembers": [ + { + "type": "boolean", + "packageInfo": "", + "packageName": "", + "kind": "BASIC_TYPE", + "selected": false + } + ], + "defaultValue": "false" + }, + "maxAge": { + "metadata": { + "label": "Max Age", + "description": "The maximum duration to cache the preflight from client side" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "decimal", + "placeholder": "0.0d", + "optional": true, + "editable": true, + "advanced": true, + "hidden": false, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "maxAge" + }, + "typeMembers": [ + { + "type": "decimal", + "packageInfo": "", + "packageName": "", + "kind": "BASIC_TYPE", + "selected": false + } + ], + "defaultValue": "0.0d" + }, + "type": { + "metadata": { + "label": "Result Type", + "description": "Type of the variable" + }, + "valueType": "TYPE", + "value": "grs:Client", + "placeholder": "var", + "optional": false, + "editable": false, + "advanced": false, + "hidden": true, + "codedata": {}, + "imports": { + "grs": "nipunaf/new_connection1.grs" + } + }, + "variable": { + "metadata": { + "label": "Connection Name", + "description": "Name of the connection" + }, + "valueType": "IDENTIFIER", + "value": "grsClient", + "optional": false, + "editable": true, + "advanced": false, + "hidden": false + }, + "scope": { + "metadata": { + "label": "Connection Scope", + "description": "Scope of the connection, Global or Local" + }, + "valueType": "ENUM", + "value": "Global", + "optional": false, + "editable": true, + "advanced": true, + "hidden": true + }, + "checkError": { + "metadata": { + "label": "Check Error", + "description": "Terminate on error" + }, + "valueType": "FLAG", + "value": true, + "optional": false, + "editable": false, + "advanced": true, + "hidden": true + } + }, + "flags": 0 + }, + "output": { + "new_connection8/connections.bal": [ + { + "range": { + "start": { + "line": 0, + "character": 20 + }, + "end": { + "line": 0, + "character": 20 + } + }, + "newText": "\nimport new_connection1.grs;" + }, + { + "range": { + "start": { + "line": 0, + "character": 20 + }, + "end": { + "line": 0, + "character": 20 + } + }, + "newText": "final grs:Client grsClient = check new ();" + } + ] + } +}