diff --git a/backend/go-app/codegen.go b/backend/go-app/codegen.go index 2d4f09bc..889c20e7 100644 --- a/backend/go-app/codegen.go +++ b/backend/go-app/codegen.go @@ -366,7 +366,7 @@ func generateYaml(swagger *openapi3.Swagger, newmd5 string) (WorkflowApp, []stri securitySchemes := swagger.Components.SecuritySchemes if securitySchemes != nil { - log.Printf("%#v", securitySchemes) + //log.Printf("%#v", securitySchemes) api.Authentication = Authentication{ Required: true, @@ -386,7 +386,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") + //log.Printf("HANDLE BEARER AUTH") extraParameters = append(extraParameters, WorkflowAppActionParameter{ Name: "apikey", Description: "The apikey to use", @@ -402,7 +402,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") + //log.Printf("HANDLE APIKEY AUTH") extraParameters = append(extraParameters, WorkflowAppActionParameter{ Name: "apikey", Description: "The apikey to use", @@ -789,11 +789,11 @@ func handleGet(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []Wor optionalParameters := []WorkflowAppActionParameter{} if len(path.Get.Parameters) > 0 { for _, param := range path.Get.Parameters { - if param.Value.Schema.Ref == "" { + //log.Printf("TYPE: %#v", param.Value.Schema) + if param.Value.Schema == nil { continue } - log.Printf("TYPE: %#v", param.Value.Schema) curParam := WorkflowAppActionParameter{ Name: param.Value.Name, Description: param.Value.Description, diff --git a/backend/go-app/main.go b/backend/go-app/main.go index 80449235..37f5135e 100644 --- a/backend/go-app/main.go +++ b/backend/go-app/main.go @@ -5181,7 +5181,7 @@ func handleSwaggerValidation(body []byte) (ParsedOpenApi, error) { if err != nil { log.Printf("Yaml error: %s", err) } else { - log.Printf("Successfully parsed YAML!") + //log.Printf("Successfully parsed YAML!") } } else { isJson = true @@ -5193,8 +5193,8 @@ func handleSwaggerValidation(body []byte) (ParsedOpenApi, error) { } if strings.HasPrefix(version.Swagger, "3.") || strings.HasPrefix(version.OpenAPI, "3.") { - log.Println("Handling v3 API") - swagger, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData(body) + //log.Println("Handling v3 API") + _, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData(body) if err != nil { return ParsedOpenApi{}, err } @@ -5203,18 +5203,18 @@ func handleSwaggerValidation(body []byte) (ParsedOpenApi, error) { hasher.Write(body) idstring = hex.EncodeToString(hasher.Sum(nil)) - log.Printf("Swagger v3 validation success with ID %s!", idstring) - log.Printf("Paths: %d", len(swagger.Paths)) + //log.Printf("Swagger v3 validation success with ID %s!", idstring) + //log.Printf("Paths: %d", len(swagger.Paths)) if !isJson { - log.Printf("FIXME: NEED TO TRANSFORM FROM YAML TO JSON for %s", idstring) + //log.Printf("FIXME: NEED TO TRANSFORM FROM YAML TO JSON for %s", idstring) } //return nil //return ParsedOpenApi{}, err } else { //strings.HasPrefix(version.Swagger, "2.") || strings.HasPrefix(version.OpenAPI, "2.") { // Convert - log.Println("Handling v2 API") + //log.Println("Handling v2 API") var swagger openapi2.Swagger //log.Println(string(body)) err = json.Unmarshal(body, &swagger) @@ -5225,7 +5225,7 @@ func handleSwaggerValidation(body []byte) (ParsedOpenApi, error) { log.Printf("Yaml error: %s", err) return ParsedOpenApi{}, err } else { - log.Printf("Valid yaml!") + //log.Printf("Valid yaml!") } } @@ -5246,9 +5246,9 @@ func handleSwaggerValidation(body []byte) (ParsedOpenApi, error) { hasher.Write(swaggerdata) idstring = hex.EncodeToString(hasher.Sum(nil)) if !isJson { - log.Printf("FIXME: NEED TO TRANSFORM FROM YAML TO JSON for %s?", idstring) + //log.Printf("FIXME: NEED TO TRANSFORM FROM YAML TO JSON for %s?", idstring) } - log.Printf("Swagger v2 -> v3 validation success with ID %s!", idstring) + //log.Printf("Swagger v2 -> v3 validation success with ID %s!", idstring) ctx := context.Background() err = setOpenApiDatastore(ctx, idstring, parsed) @@ -5544,7 +5544,7 @@ func verifySwagger(resp http.ResponseWriter, request *http.Request) { return } - log.Printf("Should generate yaml") + //log.Printf("Should generate yaml") api, pythonfunctions, err := generateYaml(swagger, newmd5) if err != nil { log.Printf("Failed building and generating yaml: %s", err) diff --git a/backend/go-app/walkoff.go b/backend/go-app/walkoff.go index 6e0de95a..b62ce5dd 100644 --- a/backend/go-app/walkoff.go +++ b/backend/go-app/walkoff.go @@ -2959,7 +2959,6 @@ func getSpecificApps(resp http.ResponseWriter, request *http.Request) { // FIXME - continue the search here with github repos etc. // Caching might be smart :D - log.Printf("Body: %s", string(body)) ctx := context.Background() workflowapps, err := getAllWorkflowApps(ctx) if err != nil { @@ -2978,7 +2977,7 @@ func getSpecificApps(resp http.ResponseWriter, request *http.Request) { appName := strings.ToLower(app.Name) appDesc := strings.ToLower(app.Description) if strings.Contains(appName, search) || strings.Contains(appDesc, search) { - log.Printf("Name: %s, Generated: %s, Activated: %s", app.Name, strconv.FormatBool(app.Generated), strconv.FormatBool(app.Activated)) + //log.Printf("Name: %s, Generated: %s, Activated: %s", app.Name, strconv.FormatBool(app.Generated), strconv.FormatBool(app.Activated)) returnValues = append(returnValues, app) } } @@ -2992,7 +2991,6 @@ func getSpecificApps(resp http.ResponseWriter, request *http.Request) { } returnData := fmt.Sprintf(`{"success": true, "reason": %s}`, string(newbody)) - log.Printf("Return: %s", returnData) resp.WriteHeader(200) resp.Write([]byte(returnData)) } @@ -3293,6 +3291,13 @@ func loadSpecificApps(resp http.ResponseWriter, request *http.Request) { } func iterateOpenApiGithub(fs billy.Filesystem, dir []os.FileInfo, extra string, onlyname string) error { + + ctx := context.Background() + workflowapps, err := getAllWorkflowApps(ctx) + appCounter := 0 + if err != nil { + log.Printf("Failed to get existing generated apps") + } for _, file := range dir { if len(onlyname) > 0 && file.Name() != onlyname { continue @@ -3317,7 +3322,8 @@ func iterateOpenApiGithub(fs billy.Filesystem, dir []os.FileInfo, extra string, // Check the file filename := file.Name() if strings.Contains(filename, "yaml") || strings.Contains(filename, "yml") { - log.Printf("File: %s", filename) + appCounter += 1 + //log.Printf("File: %s", filename) //log.Printf("Found file: %s", filename) tmpExtra := fmt.Sprintf("%s%s/", extra, file.Name()) @@ -3347,7 +3353,7 @@ func iterateOpenApiGithub(fs billy.Filesystem, dir []os.FileInfo, extra string, //log.Printf("%s", string(readFile)) swagger, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData([]byte(parsedOpenApi.Body)) if err != nil { - log.Printf("Swagger validation error in loop: %s", err) + log.Printf("Swagger validation error in loop (%s): %s", filename, err) continue } @@ -3355,10 +3361,10 @@ func iterateOpenApiGithub(fs billy.Filesystem, dir []os.FileInfo, extra string, strings.Replace(swagger.Info.Title, " ", "", -1) } - log.Printf("Should generate yaml") + //log.Printf("Should generate yaml") api, _, err := generateYaml(swagger, parsedOpenApi.ID) if err != nil { - log.Printf("Failed building and generating yaml in loop: %s", err) + log.Printf("Failed building and generating yaml in loop (%s): %s", filename, err) continue } @@ -3369,20 +3375,38 @@ func iterateOpenApiGithub(fs billy.Filesystem, dir []os.FileInfo, extra string, api.Generated = true api.Activated = false - ctx := context.Background() - err = setWorkflowAppDatastore(ctx, api, api.ID) - if err != nil { - log.Printf("Failed setting workflowapp in loop: %s", err) - continue - } else { - log.Printf("Added %s:%s to the database from OpenAPI repo", api.Name, api.AppVersion) + found := false + for _, app := range workflowapps { + if app.ID == api.ID { + found = true + break + } else if app.Name == api.Name && app.AppVersion == api.AppVersion { + found = true + break + } } - return nil + if !found { + err = setWorkflowAppDatastore(ctx, api, api.ID) + if err != nil { + log.Printf("Failed setting workflowapp in loop: %s", err) + continue + } else { + log.Printf("Added %s:%s to the database from OpenAPI repo", api.Name, api.AppVersion) + } + } else { + //log.Printf("Skipped upload of %s (%s)", api.Name, api.ID) + } + + //return nil } } } + if appCounter > 0 { + log.Printf("Preloaded %d OpenApi apps in %s!", appCounter, extra) + } + return nil } diff --git a/frontend/src/Apps.js b/frontend/src/Apps.js index b4bfb87c..bf5adb80 100644 --- a/frontend/src/Apps.js +++ b/frontend/src/Apps.js @@ -186,7 +186,7 @@ const Apps = (props) => { } var imageline = data.large_image.length === 0 ? - Image missing + {data.title} : {data.title} @@ -356,7 +356,7 @@ const Apps = (props) => { - {selectedAction.parameters !== undefined ? + {selectedAction.parameters !== undefined && selectedAction.parameters !== null ?
Arguments {selectedAction.parameters.map(data => {