Files
oc-discovery/daemons/nats.go

48 lines
1.1 KiB
Go
Raw Normal View History

2026-01-30 16:57:36 +01:00
package daemons
2026-01-28 17:22:29 +01:00
import (
"context"
"encoding/json"
"fmt"
2026-01-30 16:57:36 +01:00
"oc-discovery/daemons/node"
2026-01-28 17:22:29 +01:00
"cloud.o-forge.io/core/oc-lib/tools"
)
2026-01-30 16:57:36 +01:00
func ListenNATS(n node.Node) {
2026-01-28 17:22:29 +01:00
tools.NewNATSCaller().ListenNats(map[tools.NATSMethod]func(tools.NATSResponse){
tools.PROPALGATION_EVENT: func(resp tools.NATSResponse) {
var propalgation tools.PropalgationMessage
err := json.Unmarshal(resp.Payload, &propalgation)
var dt *tools.DataType
if propalgation.DataType > 0 {
dtt := tools.DataType(propalgation.DataType)
dt = &dtt
}
if err == nil {
switch propalgation.Action {
case tools.PB_CREATE:
case tools.PB_UPDATE:
case tools.PB_DELETE:
2026-01-30 16:57:36 +01:00
n.StreamService.ToPartnerPublishEvent(
2026-01-28 17:22:29 +01:00
context.Background(),
propalgation.Action,
2026-01-28 17:31:34 +01:00
dt, resp.User,
2026-01-28 17:22:29 +01:00
propalgation.Payload,
)
case tools.PB_SEARCH:
m := map[string]interface{}{}
json.Unmarshal(propalgation.Payload, &m)
2026-01-30 16:57:36 +01:00
n.PubSubService.SearchPublishEvent(
2026-01-28 17:22:29 +01:00
context.Background(),
dt,
fmt.Sprintf("%v", m["type"]),
2026-01-28 17:31:34 +01:00
resp.User,
2026-01-28 17:22:29 +01:00
fmt.Sprintf("%v", m["search"]),
)
}
}
},
})
}