From 611dcae8b32bc9297079d958f7fbedc8951d0ec8 Mon Sep 17 00:00:00 2001 From: frikky Date: Sat, 30 May 2020 14:06:13 +0200 Subject: [PATCH] Started fixing requestbody in openapi3 --- backend/go-app/codegen.go | 6 ++++-- backend/go-app/walkoff.go | 1 - frontend/src/AppCreator.js | 28 +++++++++++++++++++--------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/backend/go-app/codegen.go b/backend/go-app/codegen.go index 368ae854..f39ba2fd 100644 --- a/backend/go-app/codegen.go +++ b/backend/go-app/codegen.go @@ -1127,11 +1127,13 @@ func handlePost(swagger *openapi3.Swagger, api WorkflowApp, extraParameters []Wo Parameters: extraParameters, } + if path.Post.RequestBody != nil { + log.Printf("FUNCTION: %#v", path.Post.RequestBody) + } + action.Returns.Schema.Type = "string" baseUrl := fmt.Sprintf("%s%s", api.Link, actualPath) - //log.Println(path.Parameters) - // Parameters: []WorkflowAppActionParameter{}, // FIXME - add data for POST stuff firstQuery = true diff --git a/backend/go-app/walkoff.go b/backend/go-app/walkoff.go index 3ddf336e..af100687 100644 --- a/backend/go-app/walkoff.go +++ b/backend/go-app/walkoff.go @@ -2744,7 +2744,6 @@ func getWorkflowAppConfig(resp http.ResponseWriter, request *http.Request) { resp.Write([]byte(`{"success": false}`)) return } - log.Printf("API: %#v", parsedApi) //log.Printf("Parsed API: %#v", parsedApi) if len(parsedApi.ID) > 0 { diff --git a/frontend/src/AppCreator.js b/frontend/src/AppCreator.js index c27008da..db545fed 100644 --- a/frontend/src/AppCreator.js +++ b/frontend/src/AppCreator.js @@ -272,7 +272,7 @@ const AppCreator = (props) => { return response.json() }) .then((responseJson) => { - setIsAppLoaded(true) + setIsAppLoaded(true) if (!responseJson.success) { alert.error("Failed to get the app") } else { @@ -346,10 +346,8 @@ const AppCreator = (props) => { setDescription(data.info.description) document.title = "Apps - "+data.info.title - console.log(data.info["x-logo"]) if (data.info !== null && data.info !== undefined && data.info["x-logo"] !== undefined) { setFileBase64(data.info["x-logo"]) - console.log("IMG: ", data.inf0["x-logo"]) } if (data.info.contact != undefined) { @@ -360,8 +358,6 @@ const AppCreator = (props) => { setBaseUrl(data.servers[0].url) } - - // This is annoying (: var securitySchemes = data.components.securityDefinitions if (securitySchemes === undefined) { @@ -396,6 +392,8 @@ const AppCreator = (props) => { } } + console.log(data) + // FIXME - headers? var newActions = [] for (let [path, pathvalue] of Object.entries(data.paths)) { @@ -412,6 +410,7 @@ const AppCreator = (props) => { "errors": [], } + for (var key in methodvalue.parameters) { const parameter = methodvalue.parameters[key] if (parameter.in === "query") { @@ -450,7 +449,6 @@ const AppCreator = (props) => { const host = splitBase[2] const schemes = [splitBase[0]] const basePath = "/"+(splitBase.slice(3, )).join("/") - console.log("IMAGE: ", fileBase64) const data = { "swagger": "3.0", @@ -557,19 +555,32 @@ const AppCreator = (props) => { } if (item.body.length > 0) { - console.log("HANDLE BODY!") + const required = false newitem = { "in": "body", "name": "body", "multiline": true, "description": "Generated by shuffler.io OpenAPI", - "required": false, + "required": required, "example": item.body, "schema": { "type": "string", }, } + // FIXME - add application/json if JSON example? + data.paths[item.url][item.method.toLowerCase()]["requestBody"] = { + "description": "Generated by Shuffler.io", + "required": required, + "content": { + "example": { + "example": "test", + }, + }, + } + + console.log(data.paths[item.url][item.method.toLowerCase()]) + data.paths[item.url][item.method.toLowerCase()].parameters.push(newitem) } } @@ -615,7 +626,6 @@ const AppCreator = (props) => { setErrorCode(responseJson.reason) alert.error("Failed to verify: ") } else { - // Return? alert.success("Successfully uploaded openapi") //window.location = "/apps" }