fix: IACE parser handler — use MatchOutput.SuggestedHazards instead of MatchedPatterns fields

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-05-05 07:18:55 +02:00
parent d4b7943d54
commit d7b287889e
@@ -2,6 +2,7 @@ package handlers
import ( import (
"net/http" "net/http"
"strings"
"github.com/breakpilot/ai-compliance-sdk/internal/iace" "github.com/breakpilot/ai-compliance-sdk/internal/iace"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@@ -78,22 +79,32 @@ func (h *IACEHandler) ParseNarrative(c *gin.Context) {
MatchedPatterns: len(matchOutput.MatchedPatterns), MatchedPatterns: len(matchOutput.MatchedPatterns),
} }
// Add suggested hazards from matched patterns // Add suggested hazards from pattern engine output
for _, h := range matchOutput.SuggestedHazards {
// Find the first source pattern for name/priority lookup
patternName := ""
priority := 50
if len(h.SourcePatterns) > 0 {
for _, mp := range matchOutput.MatchedPatterns { for _, mp := range matchOutput.MatchedPatterns {
for _, cat := range mp.GeneratedHazardCats { if mp.PatternID == h.SourcePatterns[0] {
patternName = mp.PatternName
priority = mp.Priority
break
}
}
}
resp.SuggestedHazards = append(resp.SuggestedHazards, struct { resp.SuggestedHazards = append(resp.SuggestedHazards, struct {
Category string `json:"category"` Category string `json:"category"`
PatternID string `json:"pattern_id"` PatternID string `json:"pattern_id"`
PatternName string `json:"pattern_name"` PatternName string `json:"pattern_name"`
Priority int `json:"priority"` Priority int `json:"priority"`
}{ }{
Category: cat, Category: h.Category,
PatternID: mp.ID, PatternID: strings.Join(h.SourcePatterns, ","),
PatternName: mp.NameDE, PatternName: patternName,
Priority: mp.Priority, Priority: priority,
}) })
} }
}
c.JSON(http.StatusOK, resp) c.JSON(http.StatusOK, resp)
} }