From 1a241183efe0aa39a66ea6ccc32c97350b0bc180 Mon Sep 17 00:00:00 2001 From: mr Date: Fri, 6 Feb 2026 11:09:46 +0100 Subject: [PATCH] Listen nats struct --- go.mod | 2 +- go.sum | 2 ++ infrastructure/nats.go | 10 +++++++++- main.go | 6 ++++-- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index ad613ba..28fc4c9 100755 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.24 toolchain go1.24.0 require ( - cloud.o-forge.io/core/oc-lib v0.0.0-20260203150531-ef916fe2d995 + cloud.o-forge.io/core/oc-lib v0.0.0-20260205143023-b9e7ce20b6d9 github.com/beego/beego/v2 v2.3.4 github.com/smartystreets/goconvey v1.7.2 ) diff --git a/go.sum b/go.sum index e65de72..229bf44 100755 --- a/go.sum +++ b/go.sum @@ -10,6 +10,8 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20260203083753-4f28b9b589d6 h1:N+0xkioACl3PN cloud.o-forge.io/core/oc-lib v0.0.0-20260203083753-4f28b9b589d6/go.mod h1:vHWauJsS6ryf7UDqq8hRXoYD5RsONxcFTxeZPOztEuI= cloud.o-forge.io/core/oc-lib v0.0.0-20260203150531-ef916fe2d995 h1:ZDRvnzTTNHgMm5hYmseHdEPqQ6rn/4v+P9f/JIxPaNw= cloud.o-forge.io/core/oc-lib v0.0.0-20260203150531-ef916fe2d995/go.mod h1:T0UCxRd8w+qCVVC0NEyDiWIGC5ADwEbQ7hFcvftd4Ks= +cloud.o-forge.io/core/oc-lib v0.0.0-20260205143023-b9e7ce20b6d9 h1:NoeL4aA2/z2MEqU3YWbafz6vXkRf4DZNaYSKFpv6R2k= +cloud.o-forge.io/core/oc-lib v0.0.0-20260205143023-b9e7ce20b6d9/go.mod h1:T0UCxRd8w+qCVVC0NEyDiWIGC5ADwEbQ7hFcvftd4Ks= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/beego/beego/v2 v2.3.4 h1:HurQEOGIEhLlPFCTR6ZDuQkybrUl2Ag2i6CdVD2rGiI= github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4= diff --git a/infrastructure/nats.go b/infrastructure/nats.go index a30eb21..e3f51e6 100644 --- a/infrastructure/nats.go +++ b/infrastructure/nats.go @@ -5,6 +5,7 @@ import ( "fmt" oclib "cloud.o-forge.io/core/oc-lib" + "cloud.o-forge.io/core/oc-lib/config" "cloud.o-forge.io/core/oc-lib/models/resources" "cloud.o-forge.io/core/oc-lib/tools" ) @@ -29,15 +30,19 @@ func ListenNATS() { tools.CATALOG_SEARCH_EVENT: func(resp tools.NATSResponse) { p, err := resources.ToResource(int(resp.Datatype), resp.Payload) if err == nil { - SearchStream[resp.User] <- p + SearchStream[resp.User] <- p // TODO when do we update it in our catalog ? } }, tools.CREATE_RESOURCE: func(resp tools.NATSResponse) { + if resp.FromApp == config.GetAppName() { + return + } p := map[string]interface{}{} err := json.Unmarshal(resp.Payload, &p) if err == nil { access := oclib.NewRequestAdmin(oclib.LibDataEnum(resp.Datatype), nil) if data := access.LoadOne(fmt.Sprintf("%v", p["id"])); data.Data != nil { + delete(p, "id") access.UpdateOne(p, fmt.Sprintf("%v", p["id"])) } else { access.StoreOne(p) @@ -45,6 +50,9 @@ func ListenNATS() { } }, tools.REMOVE_RESOURCE: func(resp tools.NATSResponse) { + if resp.FromApp == config.GetAppName() { + return + } p := map[string]interface{}{} access := oclib.NewRequestAdmin(oclib.LibDataEnum(resp.Datatype), nil) err := json.Unmarshal(resp.Payload, &p) diff --git a/main.go b/main.go index 89e0f82..d47b196 100755 --- a/main.go +++ b/main.go @@ -1,9 +1,11 @@ package main import ( + "oc-catalog/infrastructure" _ "oc-catalog/routers" oclib "cloud.o-forge.io/core/oc-lib" + beego "github.com/beego/beego/v2/server/web" ) const appname = "oc-catalog" @@ -11,6 +13,6 @@ const appname = "oc-catalog" func main() { // Init the oc-lib oclib.InitAPI(appname) + infrastructure.ListenNATS() + beego.Run() } - -// TODO VERIFY IF LOOP OF GET VALUE is ENOUGH TO REFRESH