Listen nats struct
This commit is contained in:
2
go.mod
2
go.mod
@@ -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
2
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-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=
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
6
main.go
6
main.go
@@ -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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user