Listen nats struct

This commit is contained in:
mr
2026-02-06 11:09:46 +01:00
parent 07abce0e06
commit 1a241183ef
4 changed files with 16 additions and 4 deletions

2
go.mod
View File

@@ -5,7 +5,7 @@ go 1.24
toolchain go1.24.0 toolchain go1.24.0
require ( 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/beego/beego/v2 v2.3.4
github.com/smartystreets/goconvey v1.7.2 github.com/smartystreets/goconvey v1.7.2
) )

2
go.sum
View File

@@ -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-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 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-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/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 h1:HurQEOGIEhLlPFCTR6ZDuQkybrUl2Ag2i6CdVD2rGiI=
github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4= github.com/beego/beego/v2 v2.3.4/go.mod h1:5cqHsOHJIxkq44tBpRvtDe59GuVRVv/9/tyVDxd5ce4=

View File

@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
oclib "cloud.o-forge.io/core/oc-lib" 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/models/resources"
"cloud.o-forge.io/core/oc-lib/tools" "cloud.o-forge.io/core/oc-lib/tools"
) )
@@ -29,15 +30,19 @@ func ListenNATS() {
tools.CATALOG_SEARCH_EVENT: func(resp tools.NATSResponse) { tools.CATALOG_SEARCH_EVENT: func(resp tools.NATSResponse) {
p, err := resources.ToResource(int(resp.Datatype), resp.Payload) p, err := resources.ToResource(int(resp.Datatype), resp.Payload)
if err == nil { 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) { tools.CREATE_RESOURCE: func(resp tools.NATSResponse) {
if resp.FromApp == config.GetAppName() {
return
}
p := map[string]interface{}{} p := map[string]interface{}{}
err := json.Unmarshal(resp.Payload, &p) err := json.Unmarshal(resp.Payload, &p)
if err == nil { if err == nil {
access := oclib.NewRequestAdmin(oclib.LibDataEnum(resp.Datatype), nil) access := oclib.NewRequestAdmin(oclib.LibDataEnum(resp.Datatype), nil)
if data := access.LoadOne(fmt.Sprintf("%v", p["id"])); data.Data != nil { if data := access.LoadOne(fmt.Sprintf("%v", p["id"])); data.Data != nil {
delete(p, "id")
access.UpdateOne(p, fmt.Sprintf("%v", p["id"])) access.UpdateOne(p, fmt.Sprintf("%v", p["id"]))
} else { } else {
access.StoreOne(p) access.StoreOne(p)
@@ -45,6 +50,9 @@ func ListenNATS() {
} }
}, },
tools.REMOVE_RESOURCE: func(resp tools.NATSResponse) { tools.REMOVE_RESOURCE: func(resp tools.NATSResponse) {
if resp.FromApp == config.GetAppName() {
return
}
p := map[string]interface{}{} p := map[string]interface{}{}
access := oclib.NewRequestAdmin(oclib.LibDataEnum(resp.Datatype), nil) access := oclib.NewRequestAdmin(oclib.LibDataEnum(resp.Datatype), nil)
err := json.Unmarshal(resp.Payload, &p) err := json.Unmarshal(resp.Payload, &p)

View File

@@ -1,9 +1,11 @@
package main package main
import ( import (
"oc-catalog/infrastructure"
_ "oc-catalog/routers" _ "oc-catalog/routers"
oclib "cloud.o-forge.io/core/oc-lib" oclib "cloud.o-forge.io/core/oc-lib"
beego "github.com/beego/beego/v2/server/web"
) )
const appname = "oc-catalog" const appname = "oc-catalog"
@@ -11,6 +13,6 @@ const appname = "oc-catalog"
func main() { func main() {
// Init the oc-lib // Init the oc-lib
oclib.InitAPI(appname) oclib.InitAPI(appname)
infrastructure.ListenNATS()
beego.Run()
} }
// TODO VERIFY IF LOOP OF GET VALUE is ENOUGH TO REFRESH