diff --git a/backend/go-app/codegen.go b/backend/go-app/codegen.go index d37954a9..abe03fa8 100644 --- a/backend/go-app/codegen.go +++ b/backend/go-app/codegen.go @@ -361,6 +361,7 @@ func generateYaml(swagger *openapi3.Swagger, newmd5 string) (WorkflowApp, []stri api.Tested = false api.PrivateID = newmd5 api.Generated = true + api.Activated = true // Setting up security schemes extraParameters := []WorkflowAppActionParameter{} diff --git a/backend/go-app/main.go b/backend/go-app/main.go index 54cd69ba..ba9a5477 100644 --- a/backend/go-app/main.go +++ b/backend/go-app/main.go @@ -5194,24 +5194,21 @@ func handleSwaggerValidation(body []byte) (ParsedOpenApi, error) { if strings.HasPrefix(version.Swagger, "3.") || strings.HasPrefix(version.OpenAPI, "3.") { //log.Println("Handling v3 API") - _, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData(body) + swaggerv3, err := openapi3.NewSwaggerLoader().LoadSwaggerFromData(body) if err != nil { return ParsedOpenApi{}, err } - hasher := md5.New() - 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)) - - if !isJson { - //log.Printf("FIXME: NEED TO TRANSFORM FROM YAML TO JSON for %s", idstring) + swaggerdata, err = json.Marshal(swaggerv3) + if err != nil { + log.Printf("Failed unmarshaling v3 data: %s", err) + return ParsedOpenApi{}, err } - //return nil - //return ParsedOpenApi{}, err + hasher := md5.New() + hasher.Write(swaggerdata) + idstring = hex.EncodeToString(hasher.Sum(nil)) + } else { //strings.HasPrefix(version.Swagger, "2.") || strings.HasPrefix(version.OpenAPI, "2.") { // Convert //log.Println("Handling v2 API") @@ -5245,24 +5242,19 @@ func handleSwaggerValidation(body []byte) (ParsedOpenApi, error) { hasher := md5.New() 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("Swagger v2 -> v3 validation success with ID %s!", idstring) - - ctx := context.Background() - err = setOpenApiDatastore(ctx, idstring, parsed) - if err != nil { - log.Printf("Failed uploading openapi2 to datastore: %s", err) - return ParsedOpenApi{}, err - } - } if len(swaggerdata) > 0 { body = swaggerdata } + //parsed := ParsedOpenApi{} + if !isJson { + //yaml.l + log.Printf("Parsing from YAML to json!") + body = swaggerdata + } + // Parsing it to swagger 3 parsed = ParsedOpenApi{ ID: idstring, @@ -5695,14 +5687,6 @@ func verifySwagger(resp http.ResponseWriter, request *http.Request) { return } - log.Println(len(user.PrivateApps)) - c, err := request.Cookie("session_token") - if err == nil { - //log.Printf("Should've deleted cache for %s with token %s", user.Username, c.Value) - //err = memcache.Delete(request.Context(), c.Value) - //err = memcache.Delete(request.Context(), user.ApiKey) - } - parsed := ParsedOpenApi{ ID: api.ID, Body: string(body), @@ -5836,7 +5820,7 @@ func runInit(ctx context.Context) { if err != nil { log.Printf("Failed loading repo %s into memory: %s", err) } else { - log.Printf("Finished getting data.. Now looking for updates") + log.Printf("Finished git clone. Looking for updates to the repo.") dir, err := fs.ReadDir("") if err != nil { log.Printf("Failed reading folder: %s", err) diff --git a/backend/go-app/walkoff.go b/backend/go-app/walkoff.go index b62ce5dd..67d4835d 100644 --- a/backend/go-app/walkoff.go +++ b/backend/go-app/walkoff.go @@ -2704,7 +2704,6 @@ func getWorkflowAppConfig(resp http.ResponseWriter, request *http.Request) { } location := strings.Split(request.URL.String(), "/") - log.Printf("%#v", location) var fileId string if location[1] == "api" { if len(location) <= 4 { @@ -2732,14 +2731,22 @@ func getWorkflowAppConfig(resp http.ResponseWriter, request *http.Request) { return } + log.Printf("Getting app %s", fileId) parsedApi, err := getOpenApiDatastore(ctx, fileId) if err != nil { + log.Printf("OpenApi doesn't exist for: %s - err: %s", fileId, err) resp.WriteHeader(401) resp.Write([]byte(`{"success": false}`)) return } - parsedApi.Success = true + //log.Printf("Parsed API: %#v", parsedApi) + if len(parsedApi.ID) > 0 { + parsedApi.Success = true + } else { + parsedApi.Success = false + } + data, err := json.Marshal(parsedApi) if err != nil { resp.WriteHeader(422) @@ -3393,6 +3400,13 @@ func iterateOpenApiGithub(fs billy.Filesystem, dir []os.FileInfo, extra string, continue } else { log.Printf("Added %s:%s to the database from OpenAPI repo", api.Name, api.AppVersion) + + // Set OpenAPI datastore + err = setOpenApiDatastore(ctx, parsedOpenApi.ID, parsedOpenApi) + if err != nil { + log.Printf("Failed uploading openapi to datastore in loop: %s", err) + continue + } } } else { //log.Printf("Skipped upload of %s (%s)", api.Name, api.ID) diff --git a/frontend/src/AppCreator.js b/frontend/src/AppCreator.js index 5e85376b..24ab8353 100644 --- a/frontend/src/AppCreator.js +++ b/frontend/src/AppCreator.js @@ -81,7 +81,7 @@ const AppCreator = (props) => { const [actionsModalOpen, setActionsModalOpen] = useState(false); const [authenticationOption, setAuthenticationOption] = useState(authenticationOptions[0]); const [parameterName, setParameterName] = useState(""); - const [parameterLocation, setParameterLocation] = useState(apikeySelection[0]); + const [parameterLocation, setParameterLocation] = useState(apikeySelection.length > 0 ? apikeySelection[0] : ""); const [urlPath, setUrlPath] = useState(""); //const [urlPathQueries, setUrlPathQueries] = useState([{"name": "test", "required": false}]); const [urlPathQueries, setUrlPathQueries] = useState([]); @@ -161,7 +161,7 @@ const AppCreator = (props) => { .then((responseJson) => { setIsAppLoaded(true) if (!responseJson.success) { - alert.error("Failed to verify") + alert.error("Failed to get the app") } else { const data = JSON.parse(responseJson.body) console.log("LOADED IMAGE: ", data.image) @@ -263,9 +263,12 @@ const AppCreator = (props) => { break } else if (value.type === "apiKey") { setAuthenticationOption("API key") - setParameterName(value.name) + setParameterName(value.name) + + value.in = value.in.charAt(0).toUpperCase() + value.in.slice(1); setParameterLocation(value.in) if (!apikeySelection.includes(value.in)) { + console.log("APIKEY SELECT: ", apikeySelection) alert.error("Might be error in setting up API key authentication") } break @@ -593,6 +596,9 @@ const AppCreator = (props) => { setActions(actions) } + console.log("Option: ", authenticationOption) + console.log("Location: ", parameterLocation) + console.log("Name: ", parameterName) const apiKey = authenticationOption === "API key" ?
{description}
+{description}
+URL: {selectedApp.link}
: null} -ID: {selectedApp.id}
- {selectedApp.privateId !== undefined && selectedApp.privateId.length > 0 ?PrivateID: {selectedApp.privateId}
: null} + {selectedApp.link.length > 0 ?URL: {selectedApp.link}
: null} +ID: {selectedApp.id}
+ {selectedApp.privateId !== undefined && selectedApp.privateId.length > 0 ?PrivateID: {selectedApp.privateId}
: null}