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 (
"net/http"
"strings"
"github.com/breakpilot/ai-compliance-sdk/internal/iace"
"github.com/gin-gonic/gin"
@@ -78,21 +79,31 @@ func (h *IACEHandler) ParseNarrative(c *gin.Context) {
MatchedPatterns: len(matchOutput.MatchedPatterns),
}
// Add suggested hazards from matched patterns
for _, mp := range matchOutput.MatchedPatterns {
for _, cat := range mp.GeneratedHazardCats {
resp.SuggestedHazards = append(resp.SuggestedHazards, struct {
Category string `json:"category"`
PatternID string `json:"pattern_id"`
PatternName string `json:"pattern_name"`
Priority int `json:"priority"`
}{
Category: cat,
PatternID: mp.ID,
PatternName: mp.NameDE,
Priority: mp.Priority,
})
// 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 {
if mp.PatternID == h.SourcePatterns[0] {
patternName = mp.PatternName
priority = mp.Priority
break
}
}
}
resp.SuggestedHazards = append(resp.SuggestedHazards, struct {
Category string `json:"category"`
PatternID string `json:"pattern_id"`
PatternName string `json:"pattern_name"`
Priority int `json:"priority"`
}{
Category: h.Category,
PatternID: strings.Join(h.SourcePatterns, ","),
PatternName: patternName,
Priority: priority,
})
}
c.JSON(http.StatusOK, resp)