This commit is contained in:
mr
2026-04-29 07:47:44 +02:00
parent 6a3ce4a35b
commit c03b43f844
11 changed files with 194 additions and 58 deletions

View File

@@ -21,6 +21,7 @@ var ressourceCols = []oclib.LibDataEnum{
}
var SearchMu sync.RWMutex
var SearchStreamExtend = map[string][]string{}
var SearchStream = map[string]chan []byte{}
var SearchStreamSeen = map[string][]string{}
@@ -31,6 +32,7 @@ func EmitNATS(user string, groups []string, message tools.PropalgationMessage) {
SearchMu.Lock()
SearchStream[user] = make(chan []byte, 128)
SearchStreamSeen[user] = make([]string, 128)
SearchStreamExtend[user] = make([]string, 128)
SearchMu.Unlock()
tools.NewNATSCaller().SetNATSPub(tools.PROPALGATION_EVENT, tools.NATSResponse{
FromApp: "oc-catalog",
@@ -76,14 +78,21 @@ func ListenNATS() {
p.SetNotInCatalog(true)
return
}
SearchMu.Lock()
wrapped, merr := json.Marshal(map[string]interface{}{
"dtype": p.GetType(),
"data": p,
})
if a := SearchStreamExtend[resp.User]; len(a) > 0 {
wrapped, merr = json.Marshal(map[string]interface{}{
"dtype": p.GetType(),
"data": oclib.GetExtend(p, p.Extend(a...), map[tools.DataType]map[string]interface{}{}),
})
}
if merr != nil {
return
}
SearchMu.Lock()
if SearchStreamSeen[resp.User] != nil && slices.Contains(SearchStreamSeen[resp.User], p.GetID()) {
SearchStream[resp.User] <- wrapped // TODO when do we update it in our catalog ?
}