Added reference/component parsing of OpenAPI

This commit is contained in:
frikky
2021-04-11 10:34:48 +02:00
parent 9190ba6ba1
commit e72ba27fb6
8 changed files with 225 additions and 52 deletions
+18 -18
View File
@@ -728,9 +728,8 @@ func handleRegisterVerification(resp http.ResponseWriter, request *http.Request)
Userdata := users[0]
// FIXME: Not for cloud!
Userdata.Verified = true
err = shuffle.SetUser(ctx, &Userdata)
err = shuffle.SetUser(ctx, &Userdata, true)
if err != nil {
log.Printf("Failed adding verification for user %s: %s", Userdata.Username, err)
resp.WriteHeader(401)
@@ -740,7 +739,7 @@ func handleRegisterVerification(resp http.ResponseWriter, request *http.Request)
resp.WriteHeader(200)
resp.Write([]byte(fmt.Sprintf(`{"success": true, "reason": "%s"}`, defaultMessage)))
log.Printf("%s SUCCESSFULLY FINISHED REGISTRATION", Userdata.Username)
log.Printf("[INFO] %s SUCCESSFULLY FINISHED REGISTRATION", Userdata.Username)
}
func handleSetEnvironments(resp http.ResponseWriter, request *http.Request) {
@@ -928,7 +927,7 @@ func createNewUser(username, password, role, apikey string, org shuffle.OrgMini)
newUser.Id = ID.String()
newUser.VerificationToken = verifyToken.String()
err = shuffle.SetUser(ctx, newUser)
err = shuffle.SetUser(ctx, newUser, true)
if err != nil {
log.Printf("Error adding User %s: %s", username, err)
return err
@@ -941,14 +940,14 @@ func createNewUser(username, password, role, apikey string, org shuffle.OrgMini)
if err != nil {
log.Printf("Failed updating org with user %s", newUser.Username)
} else {
log.Printf("Successfully updated org with user %s!", newUser.Username)
log.Printf("[INFO] Successfully updated org with user %s!", newUser.Username)
}
}
err = increaseStatisticsField(ctx, "successful_register", username, 1, org.Id)
if err != nil {
log.Printf("Failed to increase total apps loaded stats: %s", err)
}
//err = increaseStatisticsField(ctx, "successful_register", username, 1, org.Id)
//if err != nil {
// log.Printf("Failed to increase total apps loaded stats: %s", err)
//}
return nil
}
@@ -1152,7 +1151,7 @@ func handleUpdateUser(resp http.ResponseWriter, request *http.Request) {
foundUser.Username = t.Username
}
err = shuffle.SetUser(ctx, foundUser)
err = shuffle.SetUser(ctx, foundUser, true)
if err != nil {
log.Printf("Error patching user %s: %s", foundUser.Username, err)
resp.WriteHeader(401)
@@ -1287,7 +1286,7 @@ func handleInfo(resp http.ResponseWriter, request *http.Request) {
userInfo.Orgs = newStringOrgs
err = shuffle.SetUser(ctx, &userInfo)
err = shuffle.SetUser(ctx, &userInfo, true)
if err != nil {
log.Printf("Error patching User for activeOrg: %s", err)
} else {
@@ -1304,7 +1303,7 @@ func handleInfo(resp http.ResponseWriter, request *http.Request) {
userInfo.ActiveOrg = shuffle.OrgMini{
Id: userInfo.Orgs[0],
}
err = shuffle.SetUser(ctx, &userInfo)
err = shuffle.SetUser(ctx, &userInfo, true)
if err != nil {
log.Printf("Error patching User for activeOrg: %s", err)
}
@@ -1423,7 +1422,7 @@ func handlePasswordReset(resp http.ResponseWriter, request *http.Request) {
Userdata.Password = string(hashedPassword)
Userdata.ResetTimeout = 0
Userdata.ResetReference = ""
err = shuffle.SetUser(ctx, &Userdata)
err = shuffle.SetUser(ctx, &Userdata, true)
if err != nil {
log.Printf("Error adding User %s: %s", Userdata.Username, err)
resp.WriteHeader(200)
@@ -1630,7 +1629,7 @@ func handleLogin(resp http.ResponseWriter, request *http.Request) {
}
Userdata.Session = sessionToken
err = shuffle.SetUser(ctx, &Userdata)
err = shuffle.SetUser(ctx, &Userdata, true)
if err != nil {
log.Printf("Failed updating user when setting session: %s", err)
resp.WriteHeader(500)
@@ -1641,7 +1640,7 @@ func handleLogin(resp http.ResponseWriter, request *http.Request) {
loginData = fmt.Sprintf(`{"success": true, "cookies": [{"key": "session_token", "value": "%s", "expiration": %d}]}`, sessionToken, expiration.Unix())
}
log.Printf("%s SUCCESSFULLY LOGGED IN with session %s", data.Username, Userdata.Session)
log.Printf("[INFO] %s SUCCESSFULLY LOGGED IN with session %s", data.Username, Userdata.Session)
resp.WriteHeader(200)
resp.Write([]byte(loginData))
@@ -4204,6 +4203,7 @@ func verifySwagger(resp http.ResponseWriter, request *http.Request) {
swaggerLoader.IsExternalRefsAllowed = true
swagger, err := swaggerLoader.LoadSwaggerFromData(body)
if err != nil {
log.Println(string(body))
log.Printf("[ERROR] Swagger validation error: %s", err)
resp.WriteHeader(500)
resp.Write([]byte(`{"success": false, "reason": "Failed verifying openapi"}`))
@@ -4389,7 +4389,7 @@ func verifySwagger(resp http.ResponseWriter, request *http.Request) {
user.PrivateApps[foundNumber] = api
}
err = shuffle.SetUser(ctx, &user)
err = shuffle.SetUser(ctx, &user, true)
if err != nil {
log.Printf("[ERROR] Failed adding verification for user %s: %s", user.Username, err)
resp.WriteHeader(500)
@@ -5083,7 +5083,7 @@ func runInit(ctx context.Context) {
}
}
err = shuffle.SetUser(ctx, &user)
err = shuffle.SetUser(ctx, &user, true)
if err != nil {
log.Printf("Failed to reset user")
} else {
@@ -5132,7 +5132,7 @@ func runInit(ctx context.Context) {
Name: activeOrgs[0].Name,
}
err = shuffle.SetUser(ctx, &user)
err = shuffle.SetUser(ctx, &user, true)
if err != nil {
log.Printf("Failed updating user %s with org", user.Username)
} else {
+1 -1
View File
@@ -458,7 +458,7 @@ func handleNewOutlookRegister(resp http.ResponseWriter, request *http.Request) {
})
// Set apikey for the user if they don't have one
err = shuffle.SetUser(ctx, Userdata)
err = shuffle.SetUser(ctx, Userdata, true)
if err != nil {
log.Printf("Failed setting user data for %s: %s", Userdata.Username, err)
resp.WriteHeader(401)
+19 -12
View File
@@ -2051,7 +2051,7 @@ func handleExecution(id string, workflow shuffle.Workflow, request *http.Request
//log.Println(body)
//if string(body)[0] == "\"" && string(body)[string(body)
log.Printf("Body: %s", string(body))
log.Printf("[INFO] Body: %s", string(body))
}
var execution shuffle.ExecutionRequest
@@ -2093,9 +2093,9 @@ func handleExecution(id string, workflow shuffle.Workflow, request *http.Request
return shuffle.WorkflowExecution{}, fmt.Sprintf("Startnode %s was not found in actions", workflow.Start), errors.New(fmt.Sprintf("Startnode %s was not found in actions", workflow.Start))
}
} else if len(execution.Start) > 0 {
log.Printf("[ERROR] START ACTION %s IS WRONG ID LENGTH %d!", execution.Start, len(execution.Start))
return shuffle.WorkflowExecution{}, fmt.Sprintf("Startnode %s was not found in actions", execution.Start), errors.New(fmt.Sprintf("Startnode %s was not found in actions", execution.Start))
//log.Printf("[INFO] !")
//log.Printf("[ERROR] START ACTION %s IS WRONG ID LENGTH %d!", execution.Start, len(execution.Start))
//return shuffle.WorkflowExecution{}, fmt.Sprintf("Startnode %s was not found in actions", execution.Start), errors.New(fmt.Sprintf("Startnode %s was not found in actions", execution.Start))
}
if len(execution.ExecutionId) == 36 {
@@ -2245,10 +2245,10 @@ func handleExecution(id string, workflow shuffle.Workflow, request *http.Request
//log.Println(string(mappedData))
if len(workflowExecution.Start) == 0 {
if len(workflowExecution.Start) == 0 && len(workflowExecution.Workflow.Start) > 0 {
workflowExecution.Start = workflowExecution.Workflow.Start
}
log.Printf("[INFO] New startnode: %s", workflowExecution.Start)
//log.Printf("[INFO] New startnode: %s", workflowExecution.Start)
childNodes := findChildNodes(workflowExecution, workflowExecution.Start)
@@ -2411,13 +2411,20 @@ func handleExecution(id string, workflow shuffle.Workflow, request *http.Request
}
}
}
//childNodes := findChildNodes(workflowExecution, workflowExecution.Start)
if !startFound {
log.Printf("[ERROR] Startnode %s doesn't exist!!", workflowExecution.Start)
return shuffle.WorkflowExecution{}, fmt.Sprintf("Workflow action %s doesn't exist in workflow", workflowExecution.Start), errors.New(fmt.Sprintf(`Workflow start node "%s" doesn't exist. Exiting!`, workflowExecution.Start))
if len(workflowExecution.Start) == 0 && len(workflowExecution.Workflow.Start) > 0 {
workflowExecution.Start = workflow.Start
} else if len(workflowExecution.Workflow.Actions) > 0 {
workflowExecution.Start = workflowExecution.Workflow.Actions[0].ID
} else {
log.Printf("[ERROR] Startnode %s doesn't exist!!", workflowExecution.Start)
return shuffle.WorkflowExecution{}, fmt.Sprintf("Workflow action %s doesn't exist in workflow", workflowExecution.Start), errors.New(fmt.Sprintf(`Workflow start node "%s" doesn't exist. Exiting!`, workflowExecution.Start))
}
}
//log.Printf("EXECUTION START: %s", workflowExecution.Start)
// Verification for execution environments
workflowExecution.Results = defaultResults
workflowExecution.Workflow.Actions = newActions
@@ -3364,7 +3371,7 @@ func deleteWorkflowApp(resp http.ResponseWriter, request *http.Request) {
}
user.PrivateApps = privateApps
err = shuffle.SetUser(ctx, &user)
err = shuffle.SetUser(ctx, &user, true)
if err != nil {
log.Printf("[ERROR] Failed removing %s app for user %s: %s", app.Name, user.Username, err)
resp.WriteHeader(401)
@@ -4197,7 +4204,7 @@ func iterateOpenApiGithub(fs billy.Filesystem, dir []os.FileInfo, extra string,
if !found {
err = shuffle.SetWorkflowAppDatastore(ctx, api, api.ID)
if err != nil {
log.Printf("Failed setting workflowapp in loop: %s", err)
log.Printf("[WARNING] Failed setting workflowapp in loop: %s", err)
continue
} else {
appCounter += 1
@@ -4584,7 +4591,7 @@ func iterateAppGithubFolders(fs billy.Filesystem, dir []os.FileInfo, extra strin
err = shuffle.SetWorkflowAppDatastore(ctx, workflowapp, workflowapp.ID)
if err != nil {
log.Printf("Failed setting workflowapp: %s", err)
log.Printf("[WARNING] Failed setting workflowapp in intro: %s", err)
continue
}