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