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
|
||||
}
|
||||
|
||||
// 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)
|
||||
}
|
||||
|
||||
|
|
@ -294,9 +306,17 @@ func handleMessagesNew(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
|
||||
// Filter by source if specified
|
||||
sourceFilter := r.URL.Query().Get("source")
|
||||
|
||||
// Filter by orchestration state and record new messages
|
||||
var filtered []UnifiedMessage
|
||||
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
|
||||
source, sourceID, _ := parseMessageID(msg.ID)
|
||||
orch.RecordSeen(msg.ID, source, sourceID, "INBOX")
|
||||
|
|
|
|||
Loading…
Reference in New Issue