fix: implement source filter for /messages and /messages/new endpoints
The ?source= query parameter was documented but never implemented. Both endpoints now properly filter by source when specified.
This commit is contained in:
parent
7cef0dee97
commit
d8a99b5bd2
20
main.go
20
main.go
|
|
@ -279,6 +279,18 @@ func handleMessages(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filter by source if specified
|
||||||
|
sourceFilter := r.URL.Query().Get("source")
|
||||||
|
if sourceFilter != "" {
|
||||||
|
var filtered []UnifiedMessage
|
||||||
|
for _, msg := range messages {
|
||||||
|
if msg.Source == sourceFilter {
|
||||||
|
filtered = append(filtered, msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
messages = filtered
|
||||||
|
}
|
||||||
|
|
||||||
json.NewEncoder(w).Encode(messages)
|
json.NewEncoder(w).Encode(messages)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -294,9 +306,17 @@ func handleMessagesNew(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filter by source if specified
|
||||||
|
sourceFilter := r.URL.Query().Get("source")
|
||||||
|
|
||||||
// Filter by orchestration state and record new messages
|
// Filter by orchestration state and record new messages
|
||||||
var filtered []UnifiedMessage
|
var filtered []UnifiedMessage
|
||||||
for _, msg := range messages {
|
for _, msg := range messages {
|
||||||
|
// Skip if source filter is set and doesn't match
|
||||||
|
if sourceFilter != "" && msg.Source != sourceFilter {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
// Record that we've seen this message
|
// Record that we've seen this message
|
||||||
source, sourceID, _ := parseMessageID(msg.ID)
|
source, sourceID, _ := parseMessageID(msg.ID)
|
||||||
orch.RecordSeen(msg.ID, source, sourceID, "INBOX")
|
orch.RecordSeen(msg.ID, source, sourceID, "INBOX")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue