This commit is contained in:
mr
2026-03-17 14:26:11 +01:00
parent 0fd2513278
commit 333476e2c5

View File

@@ -139,7 +139,7 @@ func (d *Workflow) ExtractFromPlantUML(plantUML multipart.File, request *tools.A
}
},
}
graphVarName := map[string]*graph.GraphItem{}
graphVarName := map[string]graph.GraphItem{}
scanner := bufio.NewScanner(plantUML)
for scanner.Scan() {
@@ -153,27 +153,29 @@ func (d *Workflow) ExtractFromPlantUML(plantUML multipart.File, request *tools.A
if err != nil {
return d, err
}
graphVarName[varName] = graphItem
if graphItem != nil {
graphVarName[varName] = *graphItem
}
continue
} else if strings.Contains(line, n+"-->") {
} else if strings.Contains(line, "-->") {
err := d.extractLink(line, graphVarName, "-->", false)
if err != nil {
fmt.Println(err)
continue
}
} else if strings.Contains(line, n+"<--") {
} else if strings.Contains(line, "<--") {
err := d.extractLink(line, graphVarName, "<--", true)
if err != nil {
fmt.Println(err)
continue
}
} else if strings.Contains(line, n+"--") {
} else if strings.Contains(line, "--") {
err := d.extractLink(line, graphVarName, "--", false)
if err != nil {
fmt.Println(err)
continue
}
} else if strings.Contains(line, n+"-") {
} else if strings.Contains(line, "-") {
err := d.extractLink(line, graphVarName, "-", false)
if err != nil {
fmt.Println(err)
@@ -190,6 +192,7 @@ func (d *Workflow) ExtractFromPlantUML(plantUML multipart.File, request *tools.A
d.generateResource(d.GetResources(tools.STORAGE_RESOURCE), request)
d.generateResource(d.GetResources(tools.COMPUTE_RESOURCE), request)
d.generateResource(d.GetResources(tools.WORKFLOW_RESOURCE), request)
d.Graph.Items = graphVarName
return d, nil
}
@@ -204,17 +207,11 @@ func (d *Workflow) generateResource(datas []resources.ResourceInterface, request
return nil
}
func (d *Workflow) extractLink(line string, graphVarName map[string]*graph.GraphItem, pattern string, reverse bool) error {
func (d *Workflow) extractLink(line string, graphVarName map[string]graph.GraphItem, pattern string, reverse bool) error {
splitted := strings.Split(line, pattern)
if len(splitted) < 2 {
return errors.New("links elements not found")
}
if graphVarName[splitted[0]] != nil {
return errors.New("links elements not found -> " + strings.Trim(splitted[0], " "))
}
if graphVarName[splitted[1]] != nil {
return errors.New("links elements not found -> " + strings.Trim(splitted[1], " "))
}
link := &graph.GraphLink{
Source: graph.Position{
ID: graphVarName[splitted[0]].ID,