MCPcopy Create free account
hub / github.com/Mnexa-AI/e2a / scanProtectionEvents

Function scanProtectionEvents

internal/identity/screening.go:134–161  ·  view source on GitHub ↗
(rows rowScanner)

Source from the content-addressed store, hash-verified

132}
133
134func scanProtectionEvents(rows rowScanner) ([]ProtectionEvent, error) {
135 var out []ProtectionEvent
136 for rows.Next() {
137 var ev ProtectionEvent
138 var subjectAddr, detector *string
139 var categories, spans, raw []byte
140 if err := rows.Scan(
141 &ev.ID, &ev.MessageID, &ev.AgentID, &ev.Direction, &ev.Source, &ev.Reason, &ev.Action,
142 &subjectAddr, &detector, &ev.Score, &categories, &spans, &raw, &ev.CreatedAt,
143 ); err != nil {
144 return nil, fmt.Errorf("scan screening event: %w", err)
145 }
146 if subjectAddr != nil {
147 ev.SubjectAddr = *subjectAddr
148 }
149 if detector != nil {
150 ev.Detector = *detector
151 }
152 ev.Categories = jsonOrNil(categories)
153 ev.Spans = jsonOrNil(spans)
154 ev.Raw = jsonOrNil(raw)
155 out = append(out, ev)
156 }
157 if err := rows.Err(); err != nil {
158 return nil, fmt.Errorf("iterate screening events: %w", err)
159 }
160 return out, nil
161}
162
163// nullString returns nil for empty strings so they persist as SQL NULL.
164func nullString(s string) any {

Calls 4

jsonOrNilFunction · 0.85
NextMethod · 0.80
ScanMethod · 0.80
ErrMethod · 0.80

Tested by

no test coverage detected