diff --git a/backend/go-app/codegen.go b/backend/go-app/codegen.go index 56786024..85ced51b 100644 --- a/backend/go-app/codegen.go +++ b/backend/go-app/codegen.go @@ -293,8 +293,8 @@ func makePythoncode(swagger *openapi3.Swagger, name, url, method string, paramet urlInline := "" //log.Printf("URL: %s", url) if !strings.HasPrefix(strings.ToLower(url), "http") { - urlParameter = ", baseurl" - urlInline = "{baseurl}" + urlParameter = ", url" + urlInline = "{url}" } if len(parameters) > 0 { @@ -319,6 +319,9 @@ func makePythoncode(swagger *openapi3.Swagger, name, url, method string, paramet } } + // Extra param for url if it's changeable + // Extra param for authentication scheme(s) + data := fmt.Sprintf(` async def %s(self%s%s%s%s%s): headers={} url=f"%s%s" @@ -354,7 +357,7 @@ func generateYaml(swagger *openapi3.Swagger, newmd5 string) (WorkflowApp, []stri } api.AppVersion = "1.0.0" - api.Environment = "cloud" + api.Environment = "Shuffle" api.SmallImage = "" api.LargeImage = "" api.Sharing = false @@ -387,6 +390,7 @@ func generateYaml(swagger *openapi3.Swagger, newmd5 string) (WorkflowApp, []stri api.Authentication.Parameters[0].Name = securitySchemes["BearerAuth"].Value.Name api.Authentication.Parameters[0].In = securitySchemes["BearerAuth"].Value.In api.Authentication.Parameters[0].Scheme = securitySchemes["BearerAuth"].Value.Scheme + log.Printf("HANDLE BEARER AUTH") extraParameters = append(extraParameters, WorkflowAppActionParameter{ Name: "apikey", Description: "The apikey to use", @@ -402,6 +406,7 @@ func generateYaml(swagger *openapi3.Swagger, newmd5 string) (WorkflowApp, []stri api.Authentication.Parameters[0].Name = securitySchemes["ApiKeyAuth"].Value.Name api.Authentication.Parameters[0].In = securitySchemes["ApiKeyAuth"].Value.In api.Authentication.Parameters[0].Scheme = securitySchemes["ApiKeyAuth"].Value.Scheme + log.Printf("HANDLE APIKEY AUTH") extraParameters = append(extraParameters, WorkflowAppActionParameter{ Name: "apikey", Description: "The apikey to use", @@ -437,6 +442,8 @@ func generateYaml(swagger *openapi3.Swagger, newmd5 string) (WorkflowApp, []stri }) } } + + // Adds a link parameter if it's not already defined if len(api.Link) == 0 { extraParameters = append(extraParameters, WorkflowAppActionParameter{ Name: "url", @@ -454,6 +461,7 @@ func generateYaml(swagger *openapi3.Swagger, newmd5 string) (WorkflowApp, []stri pythonFunctions := []string{} for actualPath, path := range swagger.Paths { + //log.Printf("%#v", path) //log.Printf("%#v", actualPath) @@ -762,11 +770,14 @@ func handleGet(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []Wor action := WorkflowAppAction{ Description: path.Get.Description, Name: fmt.Sprintf("%s %s", "Get", path.Get.Summary), + Label: fmt.Sprintf(path.Get.Summary), NodeType: "action", Environment: api.Environment, Parameters: extraParameters, } + log.Printf("FUNCTION: %#v", action) + action.Returns.Schema.Type = "string" baseUrl := fmt.Sprintf("%s%s", api.Link, actualPath) diff --git a/backend/go-app/main.go b/backend/go-app/main.go index da40013b..b702c10e 100644 --- a/backend/go-app/main.go +++ b/backend/go-app/main.go @@ -5242,6 +5242,7 @@ func validateSwagger(resp http.ResponseWriter, request *http.Request) { resp.Write([]byte(`{"success": false}`)) } +// Creates an app from the app builder func verifySwagger(resp http.ResponseWriter, request *http.Request) { cors := handleCors(resp, request) if cors { diff --git a/backend/go-app/walkoff.go b/backend/go-app/walkoff.go index 539b78f7..bf35e344 100644 --- a/backend/go-app/walkoff.go +++ b/backend/go-app/walkoff.go @@ -107,6 +107,7 @@ type WorkflowAppAction struct { Description string `json:"description" datastore:"description"` ID string `json:"id" datastore:"id" yaml:"id,omitempty"` Name string `json:"name" datastore:"name"` + Label string `json:"label" datastore:"label"` NodeType string `json:"node_type" datastore:"node_type"` Environment string `json:"environment" datastore:"environment"` Sharing bool `json:"sharing" datastore:"sharing"` diff --git a/frontend/src/AngularWorkflow.js b/frontend/src/AngularWorkflow.js index 9acc86cc..a32e3ea4 100644 --- a/frontend/src/AngularWorkflow.js +++ b/frontend/src/AngularWorkflow.js @@ -1859,8 +1859,18 @@ const AngularWorkflow = (props) => { {filteredApps.map(app=> { // FIXME - add label to apps, as this might be slow with A LOT of apps var newAppname = app.name - newAppname = newAppname.replace("_", " ") - newAppname = newAppname.charAt(0).toUpperCase()+newAppname.substring(1) + newAppname = newAppname.replace("_", " ").charAt(0).toUpperCase()+newAppname.substring(1) + const maxlen = 24 + if (newAppname.length > maxlen) { + newAppname = newAppname.slice(0, maxlen)+".." + } + + // Description fucks this up - fix overflow :) + //const maxdesclen = 5 + //var desc = app.description + //if (newAppname.length > maxdesclen) { + // desc = desc.slice(0, maxdesclen)+".." + //} const image = "url("+app.large_image+")" return( @@ -1881,13 +1891,13 @@ const AngularWorkflow = (props) => {